Problem med ADuc831 og externe adresser

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
Jeg håber, at det er den rette gruppe!

Jeg har en ADuc831, som driller mig lidt.

For at skrive til et LCD-display har jeg lavet noget adresse- og
datadekodning på P0 og P2.
Ligemeget hvad jeg skriver ud til adressen F0xx er alle portben høje, men
der er aktivitet på ALE.

Som jeg har forstået det, skal der ikke indstilles til externe data ved
hjælp af nogle ben på IC-en!
Hvad skal jeg gøre for at læse/skrive data vha en extern adresse?

Mvh Kurt



Re: Problem med ADuc831 og externe adresser

Quoted text here. Click to load it

Hej
Flash/EE Program Memory

The ADuC831 provides 62 kBytes of Flash/EE program memory

to run user code. The user can choose to run code from this

internal memory or run code from an external program memory.

If the user applies power or resets the device while the EA pin is

pulled low, the part will execute code from the external program

space, otherwise the part defaults to code execution from its

internal 62 kBytes of Flash/EE program memory. Unlike the

ADuC812, where code execution can overflow from the internal

code space to external code space once the PC becomes greater

than 1FFFH, the ADuC831 does not support the rollover from

F7FFH in internal code space to F800H in external code space.

Instead the 2048 bytes between F800H and FFFFH will appear

as NOP instructions to user code.



Du skal enten køre dit display med alm. I/O pins, eller bruge extern flash
også.

Jeg vil foreslå du bruger I/O pins til at kontrollere displayet, hvis du har
lyst, har jeg kode der må passe rimelig godt, den kører i al fald på aduc848
og 836

Kasper



Re: Problem med ADuc831 og externe adresser
Quoted text here. Click to load it
Det var dog irriterende!
Så vil jeg vælge at bruge portene i stedet, jeg har eller snøret al
hardvaren til dekodningen op på protoboard, men det kan da pilles af igen.

Og jatak, du må gerne sende mig din kode; man siger vel aldrig nej til
gratis hjælp.

Tak for hjælpen.
Kurt



Re: Problem med ADuc831 og externe adresser
Hej Kurt.


Quoted text here. Click to load it
Jo, det tror jeg det er.

Quoted text here. Click to load it
Sådan kan det jo gå.

Quoted text here. Click to load it
Det lyder underligt. Har du sat en latch på port 0 ?
Hvordan måler du denne spænding (voltmeter/scop) ?

Quoted text here. Click to load it
Sådan mener jeg også det er.

Quoted text here. Click to load it
Jeg mener at 8051's arkitektur gør at hvis du addresserer extern RAM, skal
du bruge:

(koden her kopierer fra et sted i ekstern RAM til et andet)
void io2ram(xdata U8 *dst, xdata U8 *src, U16 size)
{
  while(size--)
    {
      *dst++ = *src++;
    }
}
Det der er vigtigt her er at du bruger xdata.
(jeg kan ikke huske hvordan man gør det med Keil)
Du kan læse om de forskellige områder her:
http://sdcc.sourceforge.net/doc/sdccman.html/node59.html

Dokumentationen kommer fra SDCC, der er en gratis compiler til 8051. Jeg har
selv haft meget glæde af denne compiler, da den er gratis og laver noget
fornuftig kode.
 - du kan evt læse dens dokumentation igennem.
http://sdcc.sourceforge.net/doc/sdccman.html/

Quoted text here. Click to load it
Mvt
Toke




Site Timeline