Forum: Mikrocontroller und Digitale Elektronik 8 bit Datenbus einlesen


von Rene Z. (renezimmermann)


Angehängte Dateien:

Lesenswert?

Hallo,
wie auf dem Bild zu sehen habe ich einen 8 bit Datenbus (leider nur 
D0-D4 aufgezeichnet da nur 8 Kanäle vorhanden). Nachdem /CS auf Low 
gegangen ist werden mit der steigenden Flanke von WR die Daten 
eingelesen. Solange die Daten dann verarbeitet werden bleibt Busy auf 
High. Erst wenn Busy wieder auf Low geht wird das nächste Byte 
übertragen.

Ich dachte WR auf einen ext. Interrupt des Atmega zu legen und in der 
ISR die Daten einzulesen wenn /CS Low ist. Meine Fragen wären:
1. Ist das zeitlich mit einem Atmega @ 16 Mhz zu machen wenn mit GCC 
programmiert?
2. Wenn nicht, wie speichere ich die Daten in einem Latch zwischen?

Gruß Rene

von Frickelfritze (Gast)


Lesenswert?

Ich kann mich nicht mit dem Gedanken anfreunden mit einen
Signal das WR (vermutlich Write) heisst Daten von einem
Bus zu lesen.

von Hosenmatz (Gast)


Lesenswert?

Frickelfritze schrieb:
> Ich kann mich nicht mit dem Gedanken anfreunden mit einen
> Signal das WR (vermutlich Write) heisst Daten von einem
> Bus zu lesen.

Das ist angewandte Dialektik, mein Lieber: Wo ein Schreiber ist muss 
auch ein Leser sein. Jedenfalls in diesem Metier.

von Draco (Gast)


Lesenswert?

Es kommt ja drauf an wie die Freq. des Signals ist?! Wo liegt das 
Problem?

von Frickelfritze (Gast)


Lesenswert?

Hosenmatz schrieb:
> Das ist angewandte Dialektik, mein Lieber

Ich nenne das dann mal lieber babylonische Geistesverwirrung.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Rene Z. schrieb:
> 1. Ist das zeitlich mit einem Atmega @ 16 Mhz zu machen wenn mit GCC
> programmiert?

 a) Fallende Flanke feuert ISR, in der ISR sofort Daten einlesen->
 Kein Problem.

 b) Fallende Flanke feuert ISR, in der ISR auf steigende Flanke warten->
 Kein Problem aber ISR kann Programablauf blockieren.

 c) Steigende Flanke feuert ISR, in der ISR sofort Daten einlesen->
 Wenn die ISR möglichst kurz gehalten wird um unnötiges pushen der
 Register zu vermeiden, dauert es zwischen 8 und max. 20 Takte bis
 zum einlesen der Daten, das sind 0,5us bis 1,3us.
 Das ist dann die min. Hold Time für Daten (tHOLD after WRhi).

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Rene Z. schrieb:
> wie auf dem Bild zu sehen habe ich einen 8 bit Datenbus

Und was ist die Quelle? Ist das irgendein Prozessorsystem, das darüber 
irgendwelche existierende Peripherie ansteuert, die Du nachbilden 
willst?

von Rene Z. (renezimmermann)


Lesenswert?

Frickelfritze schrieb:
> Ich kann mich nicht mit dem Gedanken anfreunden mit einen
> Signal das WR (vermutlich Write) heisst Daten von einem
> Bus zu lesen.

Nenne es wie du willst, im Datenblatt des angeschlossenen VFD Displays 
steht Write und ich habe das mal so übernommen.

Die Frequenz ist ungefähr 2 kHz, steht ja auch oben. Oh man jetzt 
dämmerts mir. Kleiner Denkfehler meinerseits.

Gruß Rene

von Rene Z. (renezimmermann)


Lesenswert?

Rufus Τ. F. schrieb:
> Und was ist die Quelle? Ist das irgendein Prozessorsystem, das darüber
> irgendwelche existierende Peripherie ansteuert, die Du nachbilden
> willst?

Richtig, ein 8032 System steuert ein VFD Display an. Dieses möchte ich 
durch ein HD44780 kompatibles Lcd ersetzen.

von Draco (Gast)


Lesenswert?

Rene Z. schrieb:
> Die Frequenz ist ungefähr 2 kHz, steht ja auch oben. Oh man jetzt
> dämmerts mir. Kleiner Denkfehler meinerseits.
>
> Gruß Rene

Das stand bis jetzt nirgends um welche Freq es sich handelt, auch nicht 
das es sich um Display handelt. Bis jetzt stand nur 8 Bit, dein 
einzelnes Byte im Diagramm und das wars ;-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ah. Die genannte "Frequenz" von 2 kHz bezieht sich auf das /WR-Signal?

Dann dürfte das ganze problemlos umsetzbar sein.

Viel Erfolg & Spaß dabei.

von Hosenmatz (Gast)


Lesenswert?

Frickelfritze schrieb:
> Hosenmatz schrieb:
>> Das ist angewandte Dialektik, mein Lieber
>
> Ich nenne das dann mal lieber babylonische Geistesverwirrung.

Schon klar. Ich lese Dich hier schon länger.

Aber es geht darum, von welchem Standpunkt aus man eine Bezeichnung für 
einen Vorgang wählt. Von dem aus, der den Vorgang auslöst, oder dem, der 
Subjekt des Vorganges ist.

von Georg (Gast)


Lesenswert?

Frickelfritze schrieb:
> Ich nenne das dann mal lieber babylonische Geistesverwirrung

Ein RAM bekommt seine Daten ja auch mit einem /WR-Impuls - was ist daran 
so schwer zu verstehen? Noch nie einen Bus gesehen? Ist ja bloss gut, 
dass das RAM oder der Peripheriebaustein nicht so verwirrt sind wie du.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.