Hallo, ich arbeite gerade an ein CAN Board für den STM32F407 und wollte mir die Möglichkeit offen halten über USART1 und CAN2 die Firmware zuändern. Nachdem lesen der Application Note AN2606 sind ein paar Fragen meinerseits offen zum Kapitel 9.2 (Seite: 51) Link zur App Note: https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf Auszug AppNote: >BOOT0 pin high and the BOOT1 pin low during reset Ist soweit verständlich. Auszug AppNote: >If USART1 is used to connect to the bootloader: the USART3_RX (PC11 and >PB11), CAN2_RX (PB05), OTG_FS_DM (PA11) and OTG_FS_DP (PA12) pins >have to be kept at a high or low level and must not be left floating during >the detection phase Frage 1: PC11, PB11, PA11 und PA12 lege ich auf ein GND oder VDD mit Pull-Up/-Down Widerstand, aber was mache ich mit PB5, wenn ein CAN Transceiver am RX Pin angeschlossen ist? Pullup oder Pulldown Widerstand? Auszug AppNote: >If CAN2 is used to connect to the bootloader: the USART1_RX (PA10), >USART3_RX (PC11 and PB11), OTG_FS_DM (PA11) and OTG_FS_DP (PA12) >pins have to be kept at a high or low level and must not be left floating >during the detection phase. Frage 2: Was mache ich mit PA10, wenn ein FT232RL an der RX Leitung angeschlossen ist? Pullup oder Pulldown Widerstand?
Eigentlich werden CAN2_RX (PB05) und USART1_RX (PA10) schon vom CAN Transceiver bzw. vom FT232RL getrieben, so dass man eigentlich auf einen PullUp verzichten kann - kannst aber dennoch einen PullUp im zweistelligen kOhm-Bereich einplanen, um diese Signale auch schon während der Reset-Phase zu definieren, in der die angeschlossenen Baustein womöglich noch nicht "enabled" sind.
>so dass man eigentlich auf einen PullUp verzichten kann - kannst aber >dennoch einen PullUp im zweistelligen kOhm-Bereich einplanen, um diese >Signale auch schon während der Reset-Phase zu definieren Ich teile deine Auffassung. Gibt es hierzu eine technische Begründung, wieso Pullup- und nicht PullDown-Widerstand?
PullUp, weil bei beiden Signalen (CAN_RX und UART_RX) ein high der inaktive Zustand ist.
>PullUp, weil bei beiden Signalen (CAN_RX und UART_RX) ein high der >inaktive Zustand ist. Danke, das verstehe ich somit. Ich hab vergessen zu Fragen, wie es sich für OTG_FS_DM (PA11) and OTG_FS_DP (PA12) verhält. Beide Leitungen einen Pullup?
Zunächst einmal hat ein Host-USB-Port an D+ und D- einen 1k5 PullDown-widerstand. Bei USB-Peripheriegeräten ist bei Low-Speed Geräten an OTG_FS_DM ein 1k5 PullUp, bei Full- und High-Speed-Geräten ist dieser an OTG_FS_DP. Den jeweils anderen Pin würde ich einen 47k PullDown-Widerstand verpassen. Und dann sollte kein USB-Kabel gesteckt sein, wenn der Bootloader läuft, da sonst der PullUp mit dem PullDown des Hosts den Pegel wieder gerade ungefähr in Mitte bringt und damit undefiniert 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.