Hardware SPI vs. BIT BANGING AD Wandler

#3399223
Lesenswert?

Hallo zusammen,

ich möchte einen ADS1211 AD Wandler ansteuern (Datenblatt im Anhang).

Einige zeilen Code hab ich hierfür auch schon. (Auch im Anhang)
Ziel ist es: Wert einlesen und Seriell ausgeben

Jedoch komm ich mit dem Empfang der Hardware SPI nicht klar, denn
1. Hat nur ein 8 Bit Datenregister (24 BIT werden benötigt)
2. Gibt nur Clocks aus, wenn man Daten sendet

wenn nun die HW ständig Dummy Daten sendet, wie empfängt dann die 
Einheit, bzw wohin speichert sie die Empfangsdaten?
es gibt ja nur ein Daten Register das SPDR... SPCR SPSR dienen ja nur 
der Konfiguration

Momentan mache ich das ganze mit Bit-Banging, hat diese Methode 
abgesehen von der Geschwindigkeit und größerem Programmieraufwand sonst 
noch andere Nachteile gegenüber der HW-SPI?

Vielen Dank

Matthias Lindner
Angehängte Dateien:
Gast #3399246
Lesenswert?

>Jedoch komm ich mit dem Empfang der Hardware SPI nicht klar, denn
>1. Hat nur ein 8 Bit Datenregister (24 BIT werden benötigt)

Ja, und? Drei Bytes empfangen und einen 24Bit Wert draus
machen ist keine Raketentechnik.

>2. Gibt nur Clocks aus, wenn man Daten sendet

Macht dein Software SPI genauso.

>wenn nun die HW ständig Dummy Daten sendet, wie empfängt dann die
>Einheit, bzw wohin speichert sie die Empfangsdaten?

In SPDR. Du musst den Wert halt abholen und zwischenspeichern
wenn das Dummy Byte gesendet wurde.

>Momentan mache ich das ganze mit Bit-Banging, hat diese Methode
>abgesehen von der Geschwindigkeit und größerem Programmieraufwand sonst
>noch andere Nachteile gegenüber der HW-SPI?

Du kannst tun was immer du möchtest solange es für dich funktioniert;)
Gast #3399283
Lesenswert?

Matthias Lindner schrieb:

> ich möchte einen ADS1211 AD Wandler ansteuern (Datenblatt im Anhang).

Das solltest du einfach selber lesen, nicht hier posten...

> Jedoch komm ich mit dem Empfang der Hardware SPI nicht klar, denn
> 1. Hat nur ein 8 Bit Datenregister (24 BIT werden benötigt)

Dann muß man halt drei mal 8 Bits empfangen.

> 2. Gibt nur Clocks aus, wenn man Daten sendet

Nein. Du hast nichtmal die Grundlagen von SPI begriffen. Irgendwer ist 
Master. DER gibt die Clocks aus. Und seine Daten. Dafür bekommt er 
gleichzeitig vom Slave irgendwelche von dessen Daten. Welche genau: Das 
steht im Datenblatt des Slave.

> wenn nun die HW ständig Dummy Daten sendet, wie empfängt dann die
> Einheit, bzw wohin speichert sie die Empfangsdaten?

Genau das ist, was programmieren ausmacht. Irgendwo im Datenblatt steht 
GARANTIERT auch, wie die Datenworte voneinander getrent werden können, 
vermutlich gibt es sogar eine Art Kennung, die die Information 
bereitstellt, daß überhaupt ein Datenwort verfügbar ist. Mit diesen 
Informationen dann ein Stück Programm bauen, was die dämlichen drei 
Bytes im richtigen Moment beginnt auszulesen und dann hinterher zu einer 
benutzbaren Einheit zusammenbaut ist DEIN VERDAMMTER JOB.

> Momentan mache ich das ganze mit Bit-Banging

Wohl, weil es dafür irgendwo einen fertigen Code für's Copy&Paste gab, 
welches du für Programmieren zu halten scheinst...
#3399328
Lesenswert?

holger schrieb:
>>wenn nun die HW ständig Dummy Daten sendet, wie empfängt dann die
>>Einheit, bzw wohin speichert sie die Empfangsdaten?
>
> In SPDR. Du musst den Wert halt abholen und zwischenspeichern
> wenn das Dummy Byte gesendet wurde.

OK, dann ist das geklärt... Vielen Dank für die Antwort ( SPI ist eben 
zäh zu Simulieren)


@c-hater


>Nein. Du hast nichtmal die Grundlagen von SPI begriffen.

OK geb ich zu, da muss ich nochmal nacharbeiten

>Copy & Paste:
Zu dem Chip gibts garnix im Netz, Wenn es was zum kopieren geben würde, 
warum sollte ich euch dann mit dem langweilen??? ausserdem steht das 
auch nicht zur Debatte! Es geht mir nur rein darum ob Bit Banging hier 
die erste Wahl ist!!

@Eumel
Danke, hätte ich jetzt fast vergessen!! Hab "CLI" gleich nachgepflegt!!

Gruß

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