Forum Rule: Always post complete source code & details to reproduce any issue!
Page 1 of 2 1 2 LastLast
Results 1 to 25 of 36

Thread: MicroMod Teensy Custom Carrier - USB Comms

  1. #1
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204

    MicroMod Teensy Custom Carrier - USB Comms

    Hi, I've got stuck on this and think i might be missing something really basic on how to communicate with USB on Micro-Mod.

    I built a custom carrier for an audio effect project, powers up fine taking power through usb-c to supply micro-mod with converted 3v3.

    TeensyMM runs fine doing its thing with the rest of the board as far as I've tested it flashing lights and making noises but I can't get any usb comms for firmware update or serial outputs.

    For USB I've connected :
    - GND and VBUS
    - CC1 & CC2 pulled low through a 5.1K resistor
    - USB_DP & USB_DN connected to d+(mm pin 3) and d-(mm pin 5)

    It might just be bad soldering, I've checked a couple of time but
    - is there anything else I need to do to get normal USB comms that I'm missing?
    - does the schematic and pcb look ok for basic usb comms?

    cheers Paul
    USB connector schematic
    Click image for larger version. 

Name:	usb-c schematic.jpg 
Views:	21 
Size:	62.8 KB 
ID:	26208
    USB connector pcb
    Click image for larger version. 

Name:	usb-c connector.jpg 
Views:	25 
Size:	101.9 KB 
ID:	26210
    Board
    Click image for larger version. 

Name:	usb-c micromod.jpg 
Views:	33 
Size:	129.9 KB 
ID:	26211

  2. #2
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    I have the same problem. I've made a prototype carrier board with USB micro B. I'm getting either no recognition of the TeensyMM, USB unrecognised or the "SE Blank RT Family" problem. Putting the TeensyMM back into a Sparkfun ATP board, everything works fine. I don't think it's the traces at fault or a badly soldered one - I have five PCBs. I'm trying to troubleshoot but I think it's something wrong with the design. Any help or insights appreciated:

    Project M

  3. #3
    Senior Member
    Join Date
    Apr 2014
    Location
    Germany
    Posts
    9,444
    Could you both post the layout (the USB traces should be visible) ?

  4. #4
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    9,770
    For what it is worth, I made a prototype, with a Micro-B USB connection and switched to USB host setup closer to Teensy, although my first prototype has some issues, including
    I screwed up with the diptrace pattern for the USB connector and the pins were wrong. Did not provide enough capacitor for the USB host (although it appears to work).

    So for testing, I hacked up a USB connector to fix the pin order and it is working. I keep meaning to play some more with the board and maybe order new set... But too many other things to play with.

  5. #5
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    Detail of USB micro B to MicroMod. There is a USBLC6 IC to protect the MicroMod - I removed this and bypassed it which made no difference.
    Click image for larger version. 

Name:	Screenshot 2021-10-22 222346.jpg 
Views:	38 
Size:	191.1 KB 
ID:	26266

  6. #6
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    9,770
    Sorry again I am not much of a hardware expert. But do dabble with my own stuff.

    If it were me (and it was earlier with my own board...) I would try to do things like Measure voltages and the like. That is are you providing 3.3v to the MicroMod? As the teensy requires it. Hopefully with enough current and the like.
    I used the same VR as the Sparkfun boards do (except different case type) as to make sure of compatibility. Although on my first generation, I screwed up the pads for these, so I have it rigged with an external Pololu DC/DC converter

    Before I do my next build I will also make sure I have all of the 3.3v pins connected as well as most/all GND pins...

    Also I would double check that all of the other necessary signals are routed to MMOD as well. I tried to route as much of the signals as possible, not sure which ones could be left off...

  7. #7
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    Quote Originally Posted by Frank B View Post
    Could you both post the layout (the USB traces should be visible) ?
    Thanks for having a look at it - it's a usb c connector.

    zoomed in on usb and mm

    Click image for larger version. 

Name:	usbcmm.jpg 
Views:	24 
Size:	160.6 KB 
ID:	26267

    whole board

    Click image for larger version. 

Name:	mmfullboard.jpg 
Views:	16 
Size:	154.5 KB 
ID:	26268

  8. #8
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    Quote Originally Posted by KurtE View Post
    Sorry again I am not much of a hardware expert. But do dabble with my own stuff.

    If it were me (and it was earlier with my own board...) I would try to do things like Measure voltages and the like. That is are you providing 3.3v to the MicroMod? As the teensy requires it. Hopefully with enough current and the like.
    I used the same VR as the Sparkfun boards do (except different case type) as to make sure of compatibility. Although on my first generation, I screwed up the pads for these, so I have it rigged with an external Pololu DC/DC converter

    Before I do my next build I will also make sure I have all of the 3.3v pins connected as well as most/all GND pins...

    Also I would double check that all of the other necessary signals are routed to MMOD as well. I tried to route as much of the signals as possible, not sure which ones could be left off...
    Thanks I'll have a check on voltage and current levels, good idea.

    I'm just using a small 3v3 ldo and was thinking I'd get something larger for next rev. Teensy is running quite happily and doing other stuff as expected but I'll double check levels.

    I've got the mm connected up as :

    Click image for larger version. 

Name:	schem.jpg 
Views:	29 
Size:	92.0 KB 
ID:	26269

    cheers paul

  9. #9
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    9,770
    Quote Originally Posted by houtson View Post
    Thanks I'll have a check on voltage and current levels, good idea.

    I'm just using a small 3v3 ldo and was thinking I'd get something larger for next rev. Teensy is running quite happily and doing other stuff as expected but I'll double check levels.

    I've got the mm connected up as :

    Click image for larger version. 

Name:	schem.jpg 
Views:	29 
Size:	92.0 KB 
ID:	26269

    cheers paul
    Note: mine is sort of a mess to read:
    Click image for larger version. 

Name:	screenshot.jpg 
Views:	24 
Size:	165.4 KB 
ID:	26270
    My screwed up one is up at: https://github.com/KurtE/Teensy3.1-B...aster/MicroMod
    Should update with my WIP...


    One signal that jumped out at me was wondering if you need to have the RESET pin connected... I am guessing yes.

  10. #10
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    Success!

    It was that I hadn't connected USB VIN to pin 9 on the mm connector - I was using it to convert to 3v3 but I didn't connect it direct to the MM thinking it's 5v and teensy 4 doesn't like 5v.

    Having a look at the schematics and your board it looked like it should be connected and as soon as I did it all worked fine.

    On the RESET pins, I don't need it on the board (its like on/off on a T4) and it seems to be fine not connected.

    thanks all, Paul

  11. #11
    Senior Member brtaylor's Avatar
    Join Date
    Mar 2016
    Location
    Portland, OR
    Posts
    718
    Quote Originally Posted by houtson View Post
    Success!

    It was that I hadn't connected USB VIN to pin 9 on the mm connector - I was using it to convert to 3v3 but I didn't connect it direct to the MM thinking it's 5v and teensy 4 doesn't like 5v.

    Having a look at the schematics and your board it looked like it should be connected and as soon as I did it all worked fine.

    On the RESET pins, I don't need it on the board (its like on/off on a T4) and it seems to be fine not connected.

    thanks all, Paul
    Am I correct in reading this as you don't have a separate 5V to 3.3V regulator and are using the MMOD USB VIN as the only power source? Would you then get 3.3V output via MMOD pins 2 and 74?

    Thanks much!

  12. #12
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    No.
    You need to give the MM 3v3 from your carrier board but for the USB to work you also need to connect USB_VIN.
    Sorry if it wasn't clear.
    Cheers, Paul

  13. #13
    Senior Member brtaylor's Avatar
    Join Date
    Mar 2016
    Location
    Portland, OR
    Posts
    718
    Quote Originally Posted by houtson View Post
    No.
    You need to give the MM 3v3 from your carrier board but for the USB to work you also need to connect USB_VIN.
    Sorry if it wasn't clear.
    Cheers, Paul
    Gotcha, thanks! I'm working on a board design and would like USB to work. Was going to leave unconnected - thanks a lot for the hint!

  14. #14
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    If usb c also make sure you connect cc1 and cc2 at the usb socket (to GND through 5.1k res). cheers Paul

  15. #15
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    Other than GND, 3V3 and VBUS power and the USB, are there any other mandatory connections? I haven't connected BATT_VIN/3, this is only needed if an ADC is being used? I think this pin can be used as something else anyway? I should probably be asking this on Sparkfun's forum, but feel there's better chance here. Thanks.

  16. #16
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    I tried the Blink program and there's no flashing LED, so the TeensyMM simply isn't running.

    By the way, this is the extent of technical support on Sparkfun's dedicated Micromod forum: https://forum.sparkfun.com/viewtopic...t=batt#p224540
    Last edited by UHF; 10-23-2021 at 05:21 AM.

  17. #17
    Senior Member brtaylor's Avatar
    Join Date
    Mar 2016
    Location
    Portland, OR
    Posts
    718
    Quote Originally Posted by UHF View Post
    I haven't connected BATT_VIN/3, this is only needed if an ADC is being used? I think this pin can be used as something else anyway?
    Based on what I can see, that maps to Pin 22 on the Teensy 4.1, so it appears to just be an analog input. But I'm only in the design phase currently.

  18. #18
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    9,770
    I am pretty sure it is simply supposed to have a voltage divider input, which you would
    normally pass in 1/3 external voltage…. As mentioned it just connects up to an analog pin…

    For my board was not sure that would be sufficient so I did differently.
    That is I wish to handle a 3S lipo and pass the voltage in... But 3.3 *3 ~10v..
    Last edited by KurtE; 10-23-2021 at 05:34 PM.

  19. #19
    Senior Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    204
    Quote Originally Posted by UHF View Post
    Other than GND, 3V3 and VBUS power and the USB, are there any other mandatory connections? I haven't connected BATT_VIN/3, this is only needed if an ADC is being used? I think this pin can be used as something else anyway? I should probably be asking this on Sparkfun's forum, but feel there's better chance here. Thanks.
    On my board I use BATT_VIN/3 as a general IO and all seems to work fine (including the other analogue inputs). I'm fairly sure as KurtE says it's just intended for battery level monitoring as part of the mm standard.

    I'd another look at your schematics and couldn't see anything wrong, maybe double check you're getting volts where you expect to on the connector?

    cheers Paul

  20. #20
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    If I apply 5V directly to the PCB, sometimes the TeensyMM operates and the LED blinks. Is there some start-up conditions not being met? I think all my GNDs are GNDed. Capacitance problem?

  21. #21
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    Hello, I'm still hitting a brickwall with this. I get the following log produced by Teensyduino 1.55 when I plug USB in:

    Code:
    20:53:41.537 (ports 2): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    20:53:41.537 (ports 2): nothing new, skipping HID & Ports enum
    20:53:41.554 (ports 2): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    20:53:41.554 (ports 2): nothing new, skipping HID & Ports enum
    20:53:41.747 (loader): handle 57c
    20:53:41.750 (loader): Device came online, code_size = 100
    20:53:41.751 (loader): Board is: NXP IMXRT1062 ROM
    20:53:41.753 (loader): begin operation
    20:53:41.809 (loader): File "C:\Users\simon\AppData\Local\Temp\arduino_build_127510\Momentum.ino.hex", 315392 bytes
    20:53:41.813 (loader): File "Momentum.ino.hex". 315392 bytes
    20:53:41.816 (loader): set background IMG_ONLINE
    20:53:41.822 (loader): nxp_write: success
    20:53:41.827 (loader): nxp_write: success
    20:53:41.829 (loader): HAB open mode, bootcfg=80018
    20:53:41.833 (loader): Opps, NXP ROM in open mode, but we do not yet have code for this case :(
    20:53:41.836 (loader): start ignoring usb:0/140000/0/A
    20:53:41.839 (loader): end operation, total time = 0.084 seconds
    20:53:41.845 (loader): redraw timer set, image 79 to show for 3000 ms
    20:53:44.838 (loader): redraw, image 9
    Plus the image on the GUI:
    Name:  Screenshot 2021-10-26 205703.jpg
Views: 132
Size:  13.6 KB

    I have Boot and Reset on my PCB. Reset does nothing but Boot gives this on TD1.55 and the PROG LED lights up:

    Code:
    20:58:27.927 (ports 2): WM_DEVICECHANGE DBT_DEVICEREMOVECOMPLETE
    20:58:27.927 (ports 2): nothing new, skipping HID & Ports enum
    20:58:27.938 (ports 2): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    20:58:27.939 (ports 2): nothing new, skipping HID & Ports enum
    20:58:28.106 (loader): stop ignoring usb:0/140000/0/A
    20:58:28.381 (ports 2): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    20:58:28.381 (ports 2): nothing new, skipping HID & Ports enum
    20:58:28.382 (ports 2): WM_DEVICECHANGE DBT_DEVICEARRIVAL
    20:58:28.383 (ports 2): found_usb_device, id=\\?\usb#vid_16c0&pid_0478#000cf22b#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    20:58:28.383 (ports 2): found_usb_device, loc=usb:0/140000/0/A    Port_#0010.Hub_#0001
    20:58:28.383 (ports 2): found_usb_device, hwid=USB\VID_16C0&PID_0478&REV_0106
    20:58:28.383 (ports 2): found_usb_device, devinst=00000004
    20:58:28.383 (ports 2): add: loc=usb:0/140000/0/A, class=HID, vid=16C0, pid=0478, ver=0106, serial=000cf22b, dev=\\?\usb#vid_16c0&pid_0478#000cf22b#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    20:58:28.383 (ports 2): hiddev_from_devinst_list: iface=0
    20:58:28.383 (ports 2): found_usb_device complete
    20:58:28.384 (ports 2): usb_add: usb:0/140000/0/A  [no_device] (Teensy) Bootloader
    20:58:28.422 (ports 2): WM_DEVICECHANGE DBT_DEVNODES_CHANGED
    20:58:28.422 (ports 2): update_usb_device, devinst list change, old had 1, new has 2
    20:58:28.422 (ports 2): hiddev_from_devinst_list: iface=0
    20:58:28.423 (ports 2): hid, found devinst=00000008
    20:58:28.423 (ports 2): hid, path=\\?\hid#vid_16c0&pid_0478#6&7c3a5f6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    20:58:28.423 (ports 2): hid,  opened handle
    20:58:28.423 (ports 2):  devinst=00000008, location=usb:0/140000/0/A
    20:58:28.423 (ports 2):  vid=16C0, pid=0478, ver=0106, usepage=FF9C, use=0026
    20:58:28.423 (ports 2):  devpath=\\?\hid#vid_16c0&pid_0478#6&7c3a5f6&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
    20:58:28.424 (ports 2): usb_add: usb:0/140000/0/A  hid#vid_16c0&pid_0478 (Teensy MicroMod) Bootloader
    20:58:28.607 (loader): Device came online, code_size = 16515072
    20:58:28.609 (loader): Board is: Teensy MicroMod (IMXRT1062), version 1.06
    20:58:28.662 (loader): File "C:\Users\simon\AppData\Local\Temp\arduino_build_127510\Momentum.ino.hex", 315392 bytes
    20:58:28.666 (loader): File "Momentum.ino.hex". 315392 bytes, 2% used
    20:58:28.671 (loader): set background IMG_ONLINE
    20:58:28.725 (loader): File "C:\Users\simon\AppData\Local\Temp\arduino_build_127510\Momentum.ino.hex", 315392 bytes
    20:58:28.729 (loader): File "Momentum.ino.hex". 315392 bytes, 2% used
    20:58:28.736 (loader): elf appears to be for Teensy MicroMod (IMXRT1062) (16515072 bytes)
    20:58:28.739 (loader): elf binary data matches hex file
    20:58:28.742 (loader): elf file is for Teensy MicroMod (IMXRT1062)
    20:58:28.745 (loader): using hex file
    20:58:28.748 (loader): begin operation
    20:58:28.817 (loader): flash, block=0, bs=1024, auto=1
    20:58:28.822 (loader): flash, block=1, bs=1024, auto=1
    20:58:30.625 (loader): flash, block=2, bs=1024, auto=1
    20:59:03.008 (loader): program: write error
    20:59:03.010 (loader): HID/win32: HidD_GetPreparsedData ok, device still online :-)
    20:59:03.015 (loader): end operation, total time = 34.264 seconds
    20:59:03.019 (loader): set background IMG_DOWNLOAD_ERROR
    20:59:03.022 (loader): redraw timer set, image 11 to show for 4000 ms
    20:59:07.036 (loader): redraw, image 10
    20:59:07.038 (loader): set background IMG_ONLINE
    and it sits like this for a minute:

    Name:  2.jpg
Views: 129
Size:  15.5 KB


    Again, any help is appreciated. I've tried various things. I contemplated that the PCB maker screwed something up (one board didn't have VBUS soldered on the connector) but I'll give them the benefit of the doubt.

  22. #22
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    Hello, I've spent some time troubleshooting my problem with USB and I've come to the conclusion that there's nothing wrong with the PCB or the track routing. I'm suspecting it's the power-on sequence. I'm using an AMS1117-3V3 regulator that simply supplies 3V3 as soon as it receives 5v from the USB. Is this the wrong type of regulator? Am I supposed to use a TLV75733P / AP7361C-33 that enables 3V3 when the MCU tells it? According to the Power Up Sequence on this page https://www.pjrc.com/store/ic_mkl02_t4.html, I think I'm doing it wrongly. Thanks.

  23. #23
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    25,238
    Quote Originally Posted by UHF View Post
    I'm using an AMS1117-3V3 regulator that simply supplies 3V3 as soon as it receives 5v from the USB. Is this the wrong type of regulator?
    That should work.


    Am I supposed to use a TLV75733P / AP7361C-33 that enables 3V3 when the MCU tells it?
    No, you should not need a special regulator with enable signal, because MicroMod has this 2-transistor circuit which allows the 3.3V power to pass according to the required startups sequence.

    Click image for larger version. 

Name:	screenshot.png 
Views:	12 
Size:	90.2 KB 
ID:	26353

  24. #24
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    25,238
    I would like to understand why this isn't working. Hopefully we can come up with better guidance for making PCBs for MicroMod...

    Looking at your PCB layout image from msg #5, I'm struggling to see how 3.3V and GND are really connected. Is this a 4 layer board with ground and power planes not shown? Or maybe it has flood fills not shown?

    Especially for 3.3V power, how does it get from the regulator to the two 3.3V inputs on MicroMod?

    Click image for larger version. 

Name:	a.png 
Views:	12 
Size:	779.9 KB 
ID:	26354

    Can you show actual images of all the layers? Or share the gerber files for precise viewing of the actual layers?

  25. #25
    Senior Member
    Join Date
    Apr 2019
    Posts
    174
    Yes, it's four layer: signal, GND, 3V3, signal. I've tested the voltages and GNDs on the M.2. I've removed and bypassed USBLC6 and soldered a new USB micro connector direct to pads 4 and 6 as seen in the photo. I can get brief Serial messages and then USB disconnects. It's flaky and I see no reason. Here are the gerbers, it was intended as open source eventually. Many thanks for wasting your time with this!

    Click image for larger version. 

Name:	20211101_220923.jpg 
Views:	17 
Size:	171.2 KB 
ID:	26356

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •