cancel
Showing results for 
Search instead for 
Did you mean: 

What happens if I have a digital logic clock but my STM32MP1 is in "analog bypass mode"?

ADeck
Associate III

I have a custom board I made with the STM32MP1 and I seemed to have royally messed up the clock circuit. I have an ASDMB-24.000MHZ-LC-T clock chip generating a square wave clock but HSE_OUT is being pulled high which puts the STM32MP1 into analog-bypass mode. The chip does not seem to be booting to the point where I can access USB or UART DFU mode. UART lines are both low and I would expect the TX line to be high until a start bit is sent. I am assuming this is because the chip is not getting clocked properly. Looking to the experts to tell me if this really is the case or if I am chasing a red herring and it should work OK on analog-bypass with a square wave clock. I have attached a photo of the clock signal, best I have right now but I can get a better one later if it's required.

I plan on attempting to perform some board surgery to cut the trace pulling the HSE_OUT high and tie it low but was looking for some input before I go do that.

PA13 is low as well which I would expect to be pulsing at 5HZ waiting for USB/UART DFU.

0693W000005C05yQAC.jpg 

1 ACCEPTED SOLUTION

Accepted Solutions
PatrickF
ST Employee

Hi,

Here is some investigations you could try.

I assume all supplies and NRST, NRST_CORE are ok. Are you using VDD=3.3V or 1.8V ?

Maybe try to add small capacitor (e.g. 100pF) in serie between your oscillator and OSC_IN pin to become AC coupled.

Did you check the BOOT[2:0] pins config?

In 'DFU' mode, UART TX pin is not driven until specific 0x7F character is received on related RX pin (list on wiki or AN5031), so it is normal to have both pins low (in fact it is high-z) as you do not drive RX.

If there is no HSE clock detected, USB will not work.

If activated by BootROM (in case or errors or in Engineering mode), PA13 is driven as open drain, so need an external pull-up to see toggling.

Could you try BOOT[2:0]= 0b100 (Engineering mode), which should not use HSE and toggle PA13 at about 5kHz.

I hope yo will find some useful information in

AN5031

https://wiki.st.com/stm32mpu

Regards.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

View solution in original post

5 REPLIES 5
Uwe Bonnes
Principal III

Maybe the tr/tf of your signal is to fast, see table 30 tr/tf(HSE) in the datasheet. Can you put a resistor in the HSE_IN line so that tr/tf gets slower?

Thanks for the suggestion! I compared my clock signal to the one on the DK2 board and they are nearly identical. I will double check the tr/tf numbers this evening though.

The only difference that I can tell is coming from the HSE_OUT being pulled high on my board, setting the processor to analog bypass mode.

PatrickF
ST Employee

Hi,

Here is some investigations you could try.

I assume all supplies and NRST, NRST_CORE are ok. Are you using VDD=3.3V or 1.8V ?

Maybe try to add small capacitor (e.g. 100pF) in serie between your oscillator and OSC_IN pin to become AC coupled.

Did you check the BOOT[2:0] pins config?

In 'DFU' mode, UART TX pin is not driven until specific 0x7F character is received on related RX pin (list on wiki or AN5031), so it is normal to have both pins low (in fact it is high-z) as you do not drive RX.

If there is no HSE clock detected, USB will not work.

If activated by BootROM (in case or errors or in Engineering mode), PA13 is driven as open drain, so need an external pull-up to see toggling.

Could you try BOOT[2:0]= 0b100 (Engineering mode), which should not use HSE and toggle PA13 at about 5kHz.

I hope yo will find some useful information in

AN5031

https://wiki.st.com/stm32mpu

Regards.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

This post was very helpful. I did not realize that the PA13 is open drain, nor did I realize the UART lines wont become active. I put the board into USB/DFU mode by setting the boot pins to 0b000 and put a pull-up on PA13 and it started toggling! Cube Programmer can now talk to the board which must mean it's clocking despite being set to analog bypass mode. Great news! Going to get a uboot build complete and then try the DRAM test out.

Thanks for all the help!

Good to see you are progressing on your stressful bring-up !

Please click on 'Select as Best' if my reply solved your issue or answered your question.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.