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

DS89C430, pointer to constants dont work.

Hi all,

i've a really strange issue with a DALLAS DS89C430 full 8051 compatible chip.

I've an app. with external program memory, and external sram (both 70ns acccess time, clock is 25mhz).

When i compile my code with C51 7.1 or 7.5, everithing work, i can see a led blinking, i can see chars coming out from the UART0, filling SBUF0, but everytime in my source code i use something like *p++ , or a=tab[5], it don't work, or better, strange chars are read out, not the cortrect one.

If i put in the same socket a DS87C520, slower but similar chip, WITH THE SAME CODE, everything works correctly. Anyway, i don't think is a memory access issue, since i've measured with the scope, the memories give data correctly inside the PSEN time.

So, seems an op codes compatibility issue, or a bad adressing, or even, a wrong place adressing.

I would be happy even for some suggestion, Infinite thanks.

Angelo

Parents
  • hi again,

    saturday morning, some progress, put up a 4Mhz clock. As i was quite sure, nothing change. Pointer don't work. About the poiter value (sorry for previous message, i was wrong using code pointer, now i set it as xdata pointer in the code), tha value now id "0140h", correct, just at the start of the XDATA section into ram (seen in the m51 file). So I'm pointing to the right place. But printf function still don't work.

    So seems there is no problem for the circuit around. I've put up again a DS87C520, it work just fine.

    I'm starting to think that maybe there is some problem with the optimization... i really don't know what other toest to do... i'me really wandering whi none else has met same issues with DS89C43/40/50 series.

Reply
  • hi again,

    saturday morning, some progress, put up a 4Mhz clock. As i was quite sure, nothing change. Pointer don't work. About the poiter value (sorry for previous message, i was wrong using code pointer, now i set it as xdata pointer in the code), tha value now id "0140h", correct, just at the start of the XDATA section into ram (seen in the m51 file). So I'm pointing to the right place. But printf function still don't work.

    So seems there is no problem for the circuit around. I've put up again a DS87C520, it work just fine.

    I'm starting to think that maybe there is some problem with the optimization... i really don't know what other toest to do... i'me really wandering whi none else has met same issues with DS89C43/40/50 series.

Children