Hallo. Ich verwende einen STM32F405 und müsste eine Komponente per SPI anbinden. Mein Problem ist, dass die Komponente nur < 5khz SPI-Clock verträgt. Selbst mit max. Prescaler komme ich beim SPI2 auf ca. 170khz SPI Clock. Zusätzlich habe ich den CAN-Bus im Einsatz. D.h. das ich den APB1 Takt nicht einfach runtersetzen ohne mir den CAN Bus langsamer zu machen und das geht auch nicht. Eine Software-Lösung möchte ich eigentlich nicht implementieren. Dann setze ich mir ja noch lieber einen 8Bitter drauf, der den SPI bedient und per UART die Ergebnisse an den STM32 meldet. Jetzt suche ich entweder nach einer "In-Controller"-Lösung, um langsamer zu werden oder nach einem kleinen Stück Hardware, weil ich natürlich gerne eine einfache Lösung suche. Vielen Dank, Pepe.
Man kann sich mit nem Timer und zwei bis drei kleinen Funktionen recht leicht eine Software-SPI schreiben. Gerade, wenn du nur senden willst, ist es nicht sehr kompliziert.
Probier mal den USART Synchronous Mode. Mit dem USART solltest Du so geringe Baudraten einstellen können. Gruß, Stefan
@Stefan: Hatte ich auch schon überlegt, aber bei USART hab ich doch ein Start/StopBit. Dann würde mir ja ein/zwei Bits fehlen. @DiPi "Software" wollte ich eigentlich vermeiden. Auch wenn's mit einem Clock-Timer schon mal schöner ist als komplett mit Software.
Sehe ich als kein Problem an: "The SCLK pin is the output of the USART transmitter clock. No clock pulses are sent to the SCLK pin during start bit and stop bit." Gruß, Stefan
Der CAN-Bus hängt am APB1, genauso wie SPI2 und SPI3. SPI1 hängt aber am APB2, den kannst du dann runter takten.
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.