This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Use 80251's 1KB internal data memory with C51 compiler?

Hi,

I have recently inherited a project that was originally done using an 8051. A few years ago the hardware was changed to use an 80C251SB but development continued using the C51 compiler.

There is no external data memory in the device. Is it possible to use the 80C251SB's larger internal data memory with the C51 compiler? We have uVision3 with C51 compiler version 8.09.

My bosses want to add PID and serial communication to the device (serial hardware is there but has never been used) and it looks like I've only got about 20 bytes left to work with.

Parents
  • "serial hardware is there but has never been used" gives an indication that the original hardware already has everything needed for serial communication, but that the original project didn't had the time to implement any support for it (or they run out of memory and decided to skip the support).

Reply
  • "serial hardware is there but has never been used" gives an indication that the original hardware already has everything needed for serial communication, but that the original project didn't had the time to implement any support for it (or they run out of memory and decided to skip the support).

Children
  • gives an indication

    oh glory day when we can post based on knowledge, not 'indications'

    there is another 'indication' in the original post "20 bytes left" with no telling if it is code or data.

    Erik

  • there is another 'indication' in the original post "20 bytes left" with no telling if it is code or data.

    Data. I thought that was clear from the post topic. I want to know if I can use the larger internal data memory of the 251, using C51. I've got plenty of space still for code.

  • I thought that was clear from the post topic.

    It was. Sadly though some contributors are not well known for their ability to read and understand a post especially if it mentions a piece of hardware they don't like/understand/use. The red mist descends as an apoplectic burst of unsubstantiated opinion spews forth.

    Never having used a 251 I cannot answer your question with certainty but suspect that you cannot access more than the 256 bytes of data/idata space with the C51 toolchain. You would probably be best to address the question directly to Keil support for an authoratitive answer.

  • Sadly though some contributors are not well known for their ability to read and understand a post

    Mr. smoked sardine:
    you should, by now, have noticed how many threads have gone astray becuse somebody "understood a post". Then, on the other hand, maybe you are just too busy looking for ways to criticize.

    anyhow, I'm glad you got another chance to get your bile out and am greatly surprised that you, for the first time, actually included something marginally useful for the OP

    Erik

  • Hi Jack, thanks for the response.

    You would probably be best to address the question directly to Keil support for an authoratitive answer.

    Keil support tells me that the architecture is too different, and that I need to use the C251 compiler to use that memory.

    This is disappointing but not surprising.

  • from my earlier post:
    "replacing the discontinued 251 is a no brainer.

    Erik

  • replacing the discontinued 251 is a no brainer.

    Yes, it looks like it is easy to replace, just not on the board that I have in front of me. :-)

    What would you suggest as a good replacement? I need to suggest something to the bosses.

  • Yes, it looks like it is easy to replace, just not on the board that I have in front of me

    How much boardwork can you do? do you need a specific package? do you need full pin compatibility with the original chip?

    I have several suggestions depending on the answers to the above.

    If all could change I would go for a PLCC or TQFP chip (maybe even 3V3) to ensure that you did not hit obsolesence again in a short time.

    Erik

  • How much boardwork can you do? do you need a specific package? do you need full pin compatibility with the original chip?

    There is resistance to changing anything in the hardware, as the design was outsourced (we don't do any of that here), so it would be least unpopular to suggest something that is pin compatible with the original chip.

    What we have is the N80C251SB16 in the 44-pin PLCC package. 5V.

    I'm looking through Atmel's website now. There are a lot of options to look at.

    Thanks for your help!

  • Replying to myself (a bad sign)...

    What we have is the N80C251SB16 in the 44-pin PLCC package. 5V.

    I'm looking through Atmel's website now. There are a lot of options to look at.

    Lots to look at, but very little to choose from in the PLCC package. :-(

    It looks like I may have to be unpopular.

  • "It looks like I may have to be unpopular."

    Maybe reconsider the option of getting a C251 compiler...?

  • There is e.g. the P89V51Rx2 which will give you 750 C51 accessible extra bytes of RAM, or be greedy and go for the P89C668 which will give you 8k C51 accessible extra bytes of RAM. Both of these are available in PLCC and are 6 clockers that can double your processing speed with the same crystal, if you change the crystal, you can go to 20MHz @ 6 clocks or 33MHz @ 12 clocks.

    Erik

  • Thank you everyone for your suggestions!

    I need to talk with my bosses now. The C251 compiler is still an option, as are the replacement chips. I've had feedback from my direct boss (stick with C51, replace the microcontroller) but she won't be making the decision.

  • you should, by now, have noticed how many threads have gone astray becuse somebody "understood a post".

    Actually, this thread was going astray because you hadn't read and/or understood a perfectly clear post.

    There were two pieces of information clearly stated in the OPs first post which, in your haste to criticise both his choice of processor and his posting ability, you completely ignored.