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
>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;)
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.
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...
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ß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.