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?
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.
Ü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.
Schick einfach 2 mal 8 Bit hintereinander ohne den /CS dazwischen abzuschalten. Der 7612 kann das ab, mach ich schon seit vielen Jahren so.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.