Hallo,
ich habe mehrere SPI-Slaves an einem SPI-Kanal, natürlich mit getrennten
CS-Pins.
Diese Slaves brauchen eine Weile um ihre Daten zu verarbeiten. In dieser
Zeit kann man prüfen ob sie fertig sind, indem man den CS-Pin auf low
stellt. Wenn am MISO dann ein "low" ausgegeben wird, kann man ihn
auslesen, bei einem "high" rechnet er noch.
Jetzt kann ich das leider momentan nicht testen, aber kann mir jemand
sagen ob ich problemlos am GPIO-Register (GPIOx->IDR) lesen kann ob der
MISO Pin high oder low ist, oder ist durch den alternate mode für SPI
der Pin komplett von dieser Funktion getrennt, so dass man vorher SPI
deaktivieren müsste und den Mode wieder zurückstellen (und später wieder
auf alternate mode stellen)?
Das SPI würde ich so einstellen, dass es auch wenn gerade nicht gelesen
wird den State behält ("Master Keep Io State Enable"), da ich sonst
öfter Probleme hatte.
Gast
#7161210
RM0399, 12.3.12 Alternate function configuration: "When the I/O port is programmed as alternate function: ... •The Schmitt trigger input is activated •The weak pull-up and pull-down resistors are activated or not depending on the value in the GPIOx_PUPDR register •The data present on the I/O pin are sampled into the input data register every AHB clock cycle •A read access to the input data register gets the I/O state Figure 80 shows the Alternate function configuration of the I/O port bit."
Super, danke. Mir war fast klar, dass das irgendwo steht, habe es nur nicht gefunden. Dann funktioniert das ja wie geplant.
Gast
#7161313
Ich denke bei fast allen uC's ist es möglich den Pin-Input zu lesen unabhängig der Funktion (sogar wenn der Pin als output konfiguriert ist).
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.