Forum: Mikrocontroller und Digitale Elektronik 14Bit über SPi an DAC schicken


von Ron (Gast)


Lesenswert?

Hallo.

Ich sitze gerade vor folgendem Problem:

Ich habe einen Fujitsu-Controller (MB96340).Von einem Sensor lese ich 
über I2C einen 12Bit Wert in den Controller ein,der als Integer 
gespeichtert wird.
Diesen Wert möchte ich nun über SPI (USART des Controllers als SPI 
genutzt) an den DA-Wandler DAC7612 schicken.Die SPI-Kommunikation ist in 
Hardware realisiert womit 8Bit Werte per write-Befehl gesendet werden.

An den DAC können 14Bit-Werte geschickt werden,wobei die Bits 13 und 12 
die interne Adresse des DAC darstellen und die restlichen 12Bit den 
Wert,den ich über I2C eingelesen habe (MSB first).

Meine Frage ist,wie ich das nun anstellen kann,dass nur 14Bit und keine 
kompletten 16Bit an den DAC gesendet werden?

von Klaus (Gast)


Lesenswert?

Entweder "zu Fuß" über Bit-toggeln anstelle der UART Funktionalität.
Oder die letzten beiden Bits als "inaktiv" wie der Ruhepegel der Tx 
Leitung und einfach probieren ob der Empfänger das so frisst.

von Bensch (Gast)


Lesenswert?

Üblicherweise werden in einem Schieberegister nur die letzten Bits 
gehalten, alles was davor reingeschoben wurde, ist wurscht. Also kann 
man hier auch 16 Bit reinschieben, wobei die beiden ersten egal sind.

Sollte aber auch irgendwo im Datenblatt stehen.

von Dieter Werner (Gast)


Lesenswert?

Schick einfach 2 mal 8 Bit hintereinander ohne den /CS dazwischen 
abzuschalten.
Der 7612 kann das ab, mach ich schon seit vielen Jahren so.

von Ron (Gast)


Lesenswert?

Vielen Dank erstmal für die Antworten.

@ Dieter Werner:

Ich hab 2 mal 8Bit mit einem write_SPI()-Befehl geschickt.Das ganze 
scheint auch soweit zu funktionieren.
Den CS zieh ich wie im Datenblatt beschrieben auf low und nach den 
Datentransfers wieder auf high.

Was mich gerade nur wundert: Im ersten Byte das ich sende gebe ich die 
Adresse 10 (A1:1   A0:0) an,womit die Daten ja eigentlich in DAC A 
gelegt werden sollen.Trotzdem treten in DAC B irgendwelche schwankenden 
Werte auf.

Auch im DAC A treten schwankende Werte auf,d.h. mein erwarteter Wert 
steht wird nicht permanent am Analogausgang A ausgegeben.

Jemand eine Idee woran das liegen kann?

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.