Guten Tag, ich arbeite mit dem TLC5940 und dem Hardware SPI eines STM32F411RE und der HAL-Firmware. Jetzt fordert mein Datenblatt das ich nach der Datenübertragung noch einen einzelnen Puls SCK sende(ohne Daten an MOSI). Aber leider regelt die Firmware die Pulse an SCK ja selbstständig und mit GPIO_Write habe ich keinen Zugriff darauf. Hätte jemand eine Idee wie ich diesen Puls erzeuge? MfG.
Also "ohne Daten" gibts ja nicht. Entweder Eins oder Null muss sein (ein floatender Eingang fängt sich einfach aus der Umgebung zufällig einen Wert).
Das Problem ist: Ich habe den Hardware SPI in Betrieb mit der HAL-Firmware. Sende ich nun Daten, werden diese über MOSI ausgegeben während auf SCK ein Takt erzeugt wird. -> Funktioniert. Jetzt will ich nach dem senden von Daten, auf dem SCK Pin noch einen einzelnen Puls erzeugen(Takt). Allerdings ohne Daten auf dem MOSI Pin. Also unabhängig zum SPI. Da dieser SCK Pin aber als Alternate Function usw. definiert ist, ist das gar nicht so leicht... MfG.
Ich hab jetzt das DBL nicht gelesen, aber kann es sein, dass du an der falschen Stelle Probleme löst ? Es ist seh ungewöhnlich, dass man einem Slave noch Clocks "nachschieben" muss nach dem transfer. Wo steht das denn im Datenblatt ? Kann es sein, dass du die flaschen Flanken-Einstellungen gewählt hast ?
Also, im Flowchart schön zu sehen(grüner Kasten, unten Links bei Is FirstCycleFlag = 1): http://www.ti.com/lit/sw/slvc106/slvc106.pdf Im Datenblatt: http://www.ti.com/lit/ds/symlink/tlc5940.pdf Zitat(S. 18 oben): The first GS data input cycle after dot correction requires an additional SCLK pulse after the XLAT signal to complete the grayscale update cycle. All GS data in the input shift register is replaced with status information data (SID) after updated the grayscale register. MfG.
Einfach ein dummy-Byte hinterher schieben. Die zusätzlichen 7 Takte verschwenden nur ein bischen Zeit....
:
Bearbeitet durch User
Max D. schrieb: > Einfach ein dummy-Byte hinterher schieben. > Die zusätzlichen 7 Takte verschwenden nur ein bischen Zeit.... Entweder so, oder SCK am Ende als Output definieren und kurz toggeln geht auch.
♪Geist schrieb: > SCK am Ende als Output definieren und kurz toggeln Dann darf er erstmal SPI abschalten und togglen und wieder anschalten (und am Ende lädt das HAL noch alle Konfigs dafür neu). Nicht optimal.
Ok die Lösung mit dem Dummy-Byte habe ich jetzt implementiert. Hatte Angst das dann etwas "overflowt" etc. Konnte das zwar auch noch nicht prüfen aber scheint zu klappen. MfG.
Rudii schrieb: > Hatte > Angst das dann etwas "overflowt" etc. Es "overflowed" auch was, und zwar purzeln die 7 überflüssigen Bits "ungenutzt" hinten aus der daisychain (bzw. dem einzelnen Chip) raus wenn der nächste Datensatz geladen wird. Ist in dieser Applikation aber kein Problem (solange die verschwendete Zeit für die unnützen Bits kein Problem ist).
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.