Forum: Mikrocontroller und Digitale Elektronik AD-W. - Shiftregister - Atmega8 - SPI


von Dominik (Gast)


Angehängte Dateien:

Lesenswert?

Hi!

Ich probiere momentan, ein Schieberegister vom Typ CMOS 4006 zwischen
meinen AD-Wandler TLC549 und meinen µC Atmega8 zu setzen.

Die akt. Verdrahtung:
PC0 -> Inverter -> Slaveselect (active low) vom AD-W.
PB2 -> Takteingang des AD-W. sowie des Sch.reg.
Datenausgang des AD-W. -> D1 (CMOS4006)
D1+4 (CMOS4006) -> D2
PB4 (MISO) -> D2+4 des Sch.rg.
PB5 (Takt SPI) -> Takteingang des Sch.reg.

Die Lesezugriffe überlappen sich nicht. Alles mit 5V versorgt und mit
Stützkondensatoren ausgestattet, Inverter ist CMOS 4069. µC liegt an 8
Mhz Quarz mit 2x 22pF.

Meine Idee: Über PB2 manuell 1 Mhz ausgeben, um das Ergebnis der
AD-Umwandlung ins Schieberegister zu bringen. Dann per SPI-Interface
vom Sch.reg. in den µC mit ebenfalls 1 Mhz.

Später soll das SPI-Interface mit 8 Mhz laufen und mehrere
Ad-W./Sch.reg. parallel mit dem 1 Mhz Takt betrieben werden.

Beide Bauteile für sich getrennt laufen hervorragend. Den TLC549 hatte
ich bereits am SPI-Interface mit 1 Mhz, das Sch.reg. habe ich (siehe
anderen Forenbeitrag) mit manuellem Takt und Schalter etc. auf Funktion
getestet.

Nun hab ich auch schon mal probiert, das Taktsignal (1 Mhz manuell)
invertiert an das Sch.reg. zu geben und das CPHA-Bit für das
SPI-Interface zu setzen, da im Datenblatt des 4006 steht, dass die
Daten während der "negative going edge" ein-/ausgelesen werden.

Alles in allem bekomme ich kein richtiges Ergebnis. Der AD-Wandler
liegt an einem Opamp, der wiederum als Verstärker für einen
Ultraschallempfänger dient. In Hyperterminal sollte ich also
Zeichenwirrwarr empfangen (AD-W. direkt an µC). Raus kommt aber stets
das gleiche Zeichen.

Vielen Dank für eure Antworten
Dominik

von TravelRec. (Gast)


Lesenswert?

Es könnte durchaus sein, daß das von Dir verwendete Schieberegister zu
langsam ist, da es ein Standard-CMOS-Teil ist. Die Baureihe 74HC... ist
um mehrere Vielfache schneller. Andererseits könnte auch Dein Programm
bzw. das Timing zwischen den Bauteilen einen Fehler aufweisen. Klappt
es, wenn Du die Abtastrate noch weiter ´runterfährst?

von Peter D. (peda)


Lesenswert?

Bevor ich mir das reinzieh, erstmal die Frage, was soll das ganze
Geraffel mit dem SRG ?

Warum soll man die ADCs nicht direkt auslesen ?

Und mal mal nen Schaltplan, damit man durchsieht.


TravelRec. hat natürlich recht, 1MHz bei 5V ist schon kritisch bei den
CD4000-ern, da muß man schon ganz genau die Timings beachten
(Datenvorhaltezeit, Pulsdauer, Durchlaufzeiten usw.), ohne Datenblatt
lesen läuft da garnichts und 8MHz kannste voll knicken.


Wenn es nur darum geht, die ADCs gleichzeitig auszulesen, dann nimm
einen gemeinsamen Takt und getrennte Datenleitungen und mach das SPI in
Software.
Viele ADCs haben auch ein extra Startbit, d.h. man kann die Wandlung
gleichzeitig starten und dann hübsch der Reihe nach auslesen.


Peter

von Dominik (Gast)


Lesenswert?

Hi!

Vielen Dank für eure Antworten. Mir war nicht klar, dass das
CMOS-Register so langsam ist. Tatsächlich sind im Datenblatt 5 Mhz bei
5V typisch erwähnt.

Aber ich werde wohl erstmal tatsächlich die Wandler direkt ansprechen,
ohne das SPI-Interface. (Dass ich darauf nicht früher gekommen bin
Brett vorm Kopf)

Gibt es irgendwo eine Übersicht über die verschiedenen Familien? Zur
CMOS 4000 hatte ich schon was gefunden, zur 74HC jetzt aber nur eine
kurze Liste mit einigen Datenblättern, wo ich nicht einmal weiß, ob die
vollständig ist. Was gibt es denn sonst noch für IC-Familien?

Dominik

von TravelRec. (Gast)


Lesenswert?

Sämtliche 74HCxxxx -Datenblätter findest Du z.B. auf
www.alldatasheet.com . Es gibt inzwischen auch etliche 74HC4000er
Bausteine, die pin- und funktionskompatibel zu den LowSpeed CMOS sind,
aber halt 10x schneller. Allerdings bietet die normale 74HCxxxx Serie
bessere und funktionellere Bausteine, als die übernommenen 4000er.

von Dominik (Gast)


Lesenswert?

Danke!

Dominik

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.