Skip to main content
Visitor II
January 18, 2024
Question

Help Needed: Issues Programming and Communicating via USB after PCB Redesign (STM32F429ZIT6)

  • January 18, 2024
  • 3 replies
  • 3163 views

Hello everyone

I've hit a bit of a snag with my PCB redesign (V2) featuring an STM32F429ZIT6. While the initial version (V1) worked like a charm, some layout changes and component swaps (SN74ABT16245ADL to two SN74HCT245DWR) in V2 are causing issues with programming via DFU and USB communication.

Here's a quick rundown of my troubleshooting so far:

  • JTAG/SWD Programming: Successful via STCubeProgramer Stlink, so no problems there.

  • PCB Assembly: Hand-soldered all PCBs, and continuity tests for USB lines and power tracks look solid.

  • DFU Programming: Jumper on BOOT0 enabled, but no luck with DFU. I'm testing on a Linux machine, using lsusb to check for the DFU or USB device in normal mode.

Attached Schematic: I've included the schematic for your reference.

Now, I'm seeking fresh perspectives and additional help:

  • Crystal Signals: What should I expect on the crystal signals to ensure they're operating correctly? Any recommended frequency checks?

  • Fuse Flags: Are there specific "fuse" settings that need enabling for DFU capability on a fresh chip? I want to make sure everything is configured as it should be.

  • Additional Debugging Tips: Any other suggestions for new ways to debug and narrow down the issue would be greatly appreciated.

The V1 worked seamlessly, and I'm a bit stumped with the V2 hiccup. Your insights would mean a lot!

Cheers!

    This topic has been closed for replies.

    3 replies

    Super User
    January 18, 2024

    Just - sure, you didnt swap D+ / - ?

    What telling you linux, when connect the usb ? ( see terminal -> dmesg )

    +

    debug (swd) is working ok ?

    edsousa84Author
    Visitor II
    January 18, 2024

    Hello @AScha.3 thanks for your input.

    As far as I can tell no I did not swap the D+ and D- (I have used the exact same circuit as the previous version)
    The D+ line is connected to the PA12 (Pin 104) and then connects to the pin 3 of the mini usb connector.
    The D- line is connected to the PA11 (Pin 103) and then connects to the pin 2 of the mini usb connector.

    dmesg does not issue anything about the USB device (it simply does not detect it).

    dmesg output on a working V1 board:

     

     

    $ sudo dmesg
    [90327.020890] usb 3-1: USB disconnect, device number 73
    [90328.639326] usb 3-1: new full-speed USB device number 74 using xhci_hcd
    [90328.789052] usb 3-1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00
    [90328.789058] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [90328.789059] usb 3-1: Product: STM32 BOOTLOADER
    [90328.789061] usb 3-1: Manufacturer: STMicroelectronics
    [90328.789062] usb 3-1: SerialNumber: 354B324D3331
    $

     

     

     

     dmesg on a non working board:

     

     

    $ sudo dmesg
    $

     

     
    I did not try to debug the firmware yet. I will try it as soon as I possibly can (good idea)

    Super User
    January 18, 2024

    dmesg -> nothing.  So nothing at the usb port , no connect to D+ , thats pulled hi , to start enumeration.

    Check, if with boot0 hi, reset/startup: then  is D+ pulled up on your board ( about 3v + ) --- and at the plug ?

    +

    still unknown : debug (swd) is working ok ?

    Graduate II
    January 22, 2024

    Hello

    Try to pulldown PB2 pin or connect it to Gnd, it seems to be BOOT1.

    Datasheet:

    JTP1_2-1705939448009.png

    Ref.manual:

    JTP1_0-1705939371053.png

    Br JTP

    Technical Moderator
    March 11, 2024

    Hello @edsousa84 

    You can probe the clock source via MCO. It could indicate a problem with the external oscillator.