I tend to do development work with a '84 since you don't have to keep
erasing and waiting, etc. I have done this in the past with the final
target being a C54. The latest project I got it working fine with the
C84 and then changed the processor to C54, compiled and burned a window
part (C54), but the thing wouldn't work...tried also with a target of
a C71, again...would not work. Am I missing something here? I would think
that as long as you stayed within the memory bounds, etc...it should
target and burn and run in any of these parts. I suppose I could shrug
it off and use a C84 part, but its more expensive, and being a good engineer
I wanna found out why this is happening. Any thoughts?
I'm about to buy the PIC-MDS System PIC developement system from
Sirius MicroSystems and was wondering if anyone had any comments
on the system or Sirius MicroSystems. Good or Bad...
Thanks in advance....
-Tim
*********** Tim Payne *************
Ham Radio Station - N9ABK
Internet: .....timpayneKILLspam@spam@minn.net
********************************************
Harrison Cooper wrote:
>
> I tend to do development work with a '84 since you don't have to keep
> erasing and waiting, etc. I have done this in the past with the final
> target being a C54. The latest project I got it working fine with the
> C84 and then changed the processor to C54, compiled and burned a window
> part (C54), but the thing wouldn't work...tried also with a target of
> a C71, again...would not work. Am I missing something here? I would think
> that as long as you stayed within the memory bounds, etc...it should
> target and burn and run in any of these parts. I suppose I could shrug
> it off and use a C84 part, but its more expensive, and being a good engineer
> I wanna found out why this is happening. Any thoughts?
>
> hcooperKILLspamcorp.es.com
The 2 level verses 8 level stack will knock you over every time it it is
exceeded. Perhaps this is the problem. I guess it depends on what you
mean by etc. There are other nasties, however why not forget the 54 and
go for a 61? These are closer to the 84 and I think you will find, will
be less problems for future development.
PICSTART and Newfound PIC Programmers Firmware Upgrades.
SLI, the serial LCD that auto detects baud rates from 100 to 125K bps.
SimmStick(tm) A PIC proto PCB the size of a 30 pin Simm Memory Module.
Send a blank message to EraseMEhelpspam_OUTTakeThisOuTdontronics.com for more info.
In a message dated 97-04-24 10:47:47 EDT, you write:
<<
I tend to do development work with a '84 since you don't have to keep
erasing and waiting, etc. I have done this in the past with the final
target being a C54. The latest project I got it working fine with the
C84 and then changed the processor to C54, compiled and burned a window
part (C54), but the thing wouldn't work...tried also with a target of
a C71, again...would not work. Am I missing something here? I would think
that as long as you stayed within the memory bounds, etc...it should
target and burn and run in any of these parts. I suppose I could shrug
it off and use a C84 part, but its more expensive, and being a good engineer
I wanna found out why this is happening. Any thoughts?
hcooperspam_OUTcorp.es.com
>>
Hello!
Have you changed the restart vectors for the C54? The vectors are at
different locations. The C54's vector is at 0x1ff and the C84's
vectors(plural) are at 0x00 and 0x04 for the respective reset and interupt
vector. Also there are a few internal differences. (interupts and A4 on the
C84) You will also need to reassemble the source code with the C54 as the
target processor.
>target being a C54. The latest project I got it working fine with the
>C84 and then changed the processor to C54, compiled and burned a window
>part (C54), but the thing wouldn't work...tried also with a target of
<snip>
"Doesn't work" might be fine for Microsoft to blame somebody else, but not
descriptive enough here.
Check the electrical specs on your parts and the operation of your circuit.
The '5x has 0=.15Vcc, 1=.35Vcc. Most if not all newer ones have 0=.15Vcc,
1=.85Vcc. That leaves a much bigger gray area between them.
Andy
==================================================================
Andy Kunz - Montana Design - 409 S 6th St - Phillipsburg, NJ 08865
Hardware & Software for Industry & R/C Hobbies
"Go fast, turn right, and keep the wet side down!"
==================================================================
In message <@spam@199704241441.IAA03943KILLspamvidiot2.corp.es.com> KILLspamPICLISTKILLspamMITVMA.MIT.EDU
writes:
> I tend to do development work with a '84 since you don't have to keep
> erasing and waiting, etc. I have done this in the past with the final
> target being a C54. The latest project I got it working fine with the
> C84 and then changed the processor to C54, compiled and burned a window
> part (C54), but the thing wouldn't work...tried also with a target of
> a C71, again...would not work. Am I missing something here? I would think
> that as long as you stayed within the memory bounds, etc...it should
> target and burn and run in any of these parts. I suppose I could shrug
> it off and use a C84 part, but its more expensive, and being a good engineer
> I wanna found out why this is happening. Any thoughts?
>
> RemoveMEhcooperTakeThisOuTcorp.es.com
>
Harrison,
I don't know what you're doing in your code, but I seem to remember
that the adc on a C71 needs to be switched off before the port will
operate properly. (I may be thinking of the C73 though).
Harrison Cooper wrote:
>I tend to do development work with a '84 since you don't have to keep
>erasing and waiting, etc. I have done this in the past with the final
>target being a C54. The latest project I got it working fine with the
>C84 and then changed the processor to C54, compiled and burned a window
>part (C54), but the thing wouldn't work...tried also with a target of
>a C71, again...would not work. Am I missing something here? I would think
>that as long as you stayed within the memory bounds, etc...it should
>target and burn and run in any of these parts. I suppose I could shrug
>it off and use a C84 part, but its more expensive, and being a good engineer
>I wanna found out why this is happening. Any thoughts?
As was pointed out, you cannot go directly from an '84 to a '54 without
changing:
1. The Reset Vector
2. The Depth of the Stack Calls (Maximum of 2 in the '54 as opposed to 8 in
the '84)
3. Bank 1 Register accesses (there is no "RP0" bit in the '54) have to be
changed to "tris" and "option" instructions.
4. File Register relocation (in the '84 file Registers start at 0x00C and
in the '54 file Registers start at 0x007) and smaller size.
Putting the application in the '71 probably didn't work because RA0-RA3 boot
up as Analog Inputs (This has to be changed before they can be used for
anything else).
Don MacKenzie suggested putting the application on the '61, which should be
possible without any change to the code.
If you have a price sensitive application I would suggest the 554, which you
will have to relocate your file registers (They start at address 0x020), but
the parts cost the same as the '54.
Relocating file register addresses can be done pretty easily - Define the
file registers using a "CBLOCK" statement and change the "CBLOCK" starting
address based on the PIC the code is going to be burned into.
Good Luck,
myke
"My ancestors didn't spend millions of years clawing their way to the top of
the food chain, just so I could become a vegetarian"
> I got it working fine with the C84 and then changed the processor
> to C54, compiled and burned a window part (C54), but the thing
> wouldn't work...
Harrison:
There are a number of differences between the '54 and the '84:
1. The '54's reset vector is at 01FF; the '84's is at 0000.
2. The '54 has a 2-level stack; the '84 has an 8-level stack.
3. On the '54, subroutine entry poiints must be located between
addresses [0000- 00FF]; there's no such restriction on the
'84.
4. On the '54, computed jumps ("ADDWF PC", etc,) can only jump
to locations on Page 0 (0000 -00FF); on the '84, they can be
used to jump anywhere in teh memory space.
5. On the '54, registers 07 through 1F are General-Purpose File
Registers; on the '84, the General-Purpose File Registers
range from 0C through 2F (or 4F if you're using an 'F84).
6. The '54 has no weak pullups on port B, no interrupts, and no
onboard data EEPROM (of course).
7. The FSR, STATUS, and OPTION registers are different.
8. The 16C84 has more code space (of course).
The above is probably not complete; it's just a list of the
items I could think of off the top of my head.
> tried also with a target of a C71, again...would not work.
The 16C71 is much more similar to the '84 than the '54 is...
Butthere are still a couple of differences. The most important
one is that the 16C71's ADCON1 register (which controls the A/D
Port Configuration) defaults pins RA0, RA1, RA2, and RA3 to
ANALOG inputs.