Forum: Mikrocontroller und Digitale Elektronik Hardware SPI vs. BIT BANGING AD Wandler


von Matthias L. (lindner8712)


Angehängte Dateien:

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

von holger (Gast)


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;)

von Eumel (Gast)


Lesenswert?

Matthias Lindner schrieb:
> 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?

Ja, die CPU ist blockiert während man SPI benutzt.

von c-hater (Gast)


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...

von Matthias L. (lindner8712)


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ß

von Dirk F. (dirkf)


Lesenswert?

Hi,
habe früher mal ein Projekt mit dem ADS1211 am PIC18 gemacht.
Ist ganz schön kompliziert das Teil.
Bin dann auf den ADS1256 ungestiegen, ist viel einfacher und besser, 
aber den gibts leider nicht mehr im DIP Gehäuse.
LG Dirk

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.