Verzögerung der Input-Latches beim AVR

OP #789526
Lesenswert?

Ich bin dabei, ein möglichst schnelles externes RAM Interface für
AVRs aber auch andere Mikrocontroller zu entwickeln.
Dazu benutze ich 7 Portpins von einem Port, da mir SPI zu langsam
ist. Schreiben in den RAM ist vom Timing her schon klar aber beim
Lesen habe ich das Problem des Input-Latches im AVR.
Da ich mir aber nur zu 90% sicher bin frage ich hier mal an:
1
out   PORTC,r16
2
in  r17,PINC

Kann ich mir zu 100% sicher sein, dass ich in r17 die Pegel einlese,
die VOR dem out-Befehl am Port angelegen haben? Dabei interessieren
mich nur die Bits, die als Eingang definiert sind.

Gruß Jörg
#789534
Lesenswert?

Joerg Wolfram wrote:
> Ich bin dabei, ein möglichst schnelles externes RAM Interface für
> AVRs aber auch andere Mikrocontroller zu entwickeln.

Du weißt aber schon, daß man auch AVRs mit RAM-Interface nehmen kann?


> Kann ich mir zu 100% sicher sein, dass ich in r17 die Pegel einlese,
> die VOR dem out-Befehl am Port angelegen haben?

Natürlich nicht, jeder Interrupt kann Dir dazwischen hauen.


Peter
OP #789571
Lesenswert?

Danke für die schnellen Antworten!

Das mit dem Interrupt ist ne Sache, die ich fast vergessen hätte.
Zumindest für universelle Verwendung. Im konkreten Anwendungsfall
will ich über eine Erweiterung (CPLD und SRAM), die an den Parallelport 
meines BASIC-Computers angeschlossen werden soll, die Grafikauflösung
"aufbohren". Da die Videoausgabe bereits im Interrupt läuft und
auch nicht unterbrochen werden kann, besteht die Problematik nicht.

Mit 3 Takten je Nibble und 20MHz sollten dann 320x200 in 8 (16 
theoretisch)
Farben möglich sein, ohne die eigentliche Hardware umzubauen.
1
out    PORTA,r16  ;cmd for increment address and read low nibble
2
in     r17,PINA   ;read high nibble from last byte
3
out    PORTC,r17  ;out to video port
4
out    PORTA,r18  ;cmd for read high nibble
5
in     r17,PINA   ;read low nibble
6
out    PORTC,r17  ;out to video port
7
...

Gruß Jörg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren