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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.