Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 22 of 22

Thread: MINI54 Bringup

  1. #1
    Junior Member
    Join Date
    Sep 2014
    Posts
    13

    MINI54 Bringup

    I'm trying to bring up my first board design using pre-programmed MINI54 chips, and so far I'm not having much luck. I've attached a schematic of the connections between the MINI54ZAN and the MK20256VLH7 annotated with the DC voltages I'm measuring.

    I added a 10K pullup from PROG to VDD, and PROG was pulled high, so the 0.14V shown in the annotation is from a floating pin. Based on the Teensy schematic, I would think P5.2 (pin 13) of the MINI54 would have to have a pullup enabled. The fact that it doesn't has me worried. I also added a pullup to RESET_B and confirmed that it is getting actively pulled low.

    I'm wondering if something specific needs to be done with the MINI54 /RESET pin (pin 2) during initial bringup. I see now that there is a test point on the Teensy board. Is there a MINI54 bringup sequence I need to follow? I'd welcome another set of eyes.
    Attached Files Attached Files

  2. #2
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    Here's a little more info. The 0.097V on the RESET_B line is due to it periodically attempting to drive high before snapping back low. This happens every 56us. I've observed this same behavior on 3 of 3 boards I looked at, so it's not anomalous. Still suspecting I need to do something with pin 2 of the MINI54 to break out of reset.Click image for larger version. 

Name:	RESET_B_line.JPG 
Views:	183 
Size:	58.8 KB 
ID:	3277

  3. #3
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    13,800
    This is normal when the MK20 is completely blank.

    The default watchdog timeout is very short. The MK20 repeatedly starts up, but immediately hard faults. Every location is filled with an invalid instruction, causing the first instruction to fault. The default fault handler has an invalid instruction, so the CPU goes into hard fault mode, where it's completely stopped. Then, a short time later, the watchdog time reboots the chip. The reset line is bidirection open-collector, so the MK20 pulls the line low while it's resetting. Then it goes high, and the process repeats as the CPU tries to start up again.

    You can check if the MINI54 is alive and working by holding PROG low. While PROG is low, the MINI54 keeps RESET low. As long as you keep holding PROG low (eg, keep pressing the button), you should see reset held low without any activity. If you see that behavior, the MINI54 is alive and working properly. If you see RESET continue to do this while PROG is low, then the MINI54 is not running.

  4. #4
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    Thanks for the quick reply. Holding PROG low didn't change the RESET_B behavior. As I mentioned, PROG is not pulled up by the MINI54 as I would expect, so I also tried adding a 10K pullup to PROG. That also did not change the RESET_B behavior when PROG was pulled low. I was able to probe pin 2 of the MINI54 and see that it is high, so I don't think the MINI54 is stuck in reset.

    Regarding the process of getting the MK20 into a valid starting state, I have included the 10-pin ARM header. However, it shares pins with the MINI54, so I foresee some bus contention. Is the expectation that I need to solder pre-programmed MK20's onto the board in the first place?

    Thanks again for your support.

  5. #5
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    13,800
    Quote Originally Posted by jeliason View Post
    Holding PROG low didn't change the RESET_B behavior.
    Yup, that's a sure sign the Mini54 isn't running properly or isn't connected properly.

    Is the expectation that I need to solder pre-programmed MK20's onto the board in the first place?
    No, that's not necessary.

    We build every single Teensy 3.1 with a blank MK20, where the Mini54 is programmed during a bed-of-nails test, and then the MK20 is programmed with the LED blink via a USB cable, using the normal Teensy Loader running on a Mac.

  6. #6
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    I tried to post this update yesterday, but I guess my login had already timed out.

    I just looked in the box of extra parts returned from the assembly site and found the tray of PJRC MINI54ZAN's I had dehydration baked, put in a tray for assembly and dry-packed. They are still sealed. All the other parts were ordered turnkey, and they must have just ordered some blank MINI54's for the build. At least they shipped me back the real parts. Talk about frustrating.

  7. #7
    Administrator Robin's Avatar
    Join Date
    Oct 2012
    Location
    PJRC Global Headquarters
    Posts
    228
    Just out of curiosity, where was your contract manufacturer located? Was is China?

  8. #8
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    No. They are in the USA.

  9. #9
    Senior Member
    Join Date
    Jan 2013
    Posts
    964
    Would you be interested in sharing what manufacturer you used ?

  10. #10
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    I'm going to give them a chance to make up for the mistake first. They worked with me when I made a mistake on my first PCB order, so I'm returning the favor.

  11. #11
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    13,800
    I added a couple links to this thread, and some others, on the Mini54 page.

    http://www.pjrc.com/store/ic_mini54_tqfp.html

    Hope that's ok?

    So few of these custom PCB threads have any resolution about what really caused the trouble, or good info about troubleshooting. This has both!

    Hopefully the link will help and this info will help others...

  12. #12
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    No problem at all. I should have the reworked boards back by Friday and will hopefully be able to post an update that all is well.

  13. #13
    Junior Member
    Join Date
    Sep 2014
    Posts
    13
    I received the reworked boards with the programmed MINI54s and I can program them, and my custom board can do everything the Teensy based prototype can do. The custom boards consistently show up on a different COM port than the Teensy, but everything works.

    I fought a few strange issues with my code over the weekend, and my PC's serial communication misbehaved for a while until I unplugged the USB cable and re-plugged it into a different port.

    The combination of the Arduino IDE, the Teensy 3.1 / MINI54 and Paul's libraries allowed me to design a highly capable Bluetooth RGB LED controller. We'll be showing the Dancing LEDs controller and light strings at the upcoming Boulder Mini Maker Faire at the end of January.

  14. #14
    Senior Member
    Join Date
    Jan 2013
    Posts
    964
    How about some pictures and specs for that RGB LED controller ?

  15. #15
    Its has been 3 pcb design to try to make my custom teensy 3.1 pcb and still no success im soldering my pcbs using a reflow oven but it doesnt seem to get detected by the pc
    i have used differential pairs routing for the usb with correct 90 ohm impedance
    Here are my pcb schematics if you can please help me figure it out
    And i am using a 4 layer pcb and the nuvoton chips bought from pjrc
    Click image for larger version. 

Name:	aasaa.PNG 
Views:	116 
Size:	5.7 KB 
ID:	5323Click image for larger version. 

Name:	ada.PNG 
Views:	183 
Size:	38.3 KB 
ID:	5324Click image for larger version. 

Name:	qwqwwq.PNG 
Views:	195 
Size:	77.5 KB 
ID:	5325

  16. #16
    Senior Member Constantin's Avatar
    Join Date
    Nov 2012
    Location
    In the yard with a 17' Dia. Ferris Wheel
    Posts
    1,377
    At the very least your capacitor placement for the MCUs is wrong. Power always has to run through the capacitor to the pin. The capacitor has to be close to the pin it is decoupling. Your design shows neither. Instead, you have skinny power lines running willy-nilly under the processor. Plus, the two power pins on the Mini54 also deserve a individual 0.1uF capacitor each.

    The ID line does not have to be connected to pin 4 on the USB connector unless you expect to use host mode (which is not supported yet).

    Your MiniTan54-MK20DX connections look OK vs. the schematic.

    However, it is EXTREMELY unwise to run any power lines, digital lines, etc. under the MCU crystal. Don't do this! Instead, route them around and surround the crystal with a quiet GND area (i.e. separated from the rest of the GND plane and an unbroken GND plane beneath the top layer.

    Another big no-no is your use of VIAs for the SPI lines when they don't need to be VIA'd. Simply run the lines out from the corner to bring everything to the SPI connector without using a via. Other connections on the board could easily be done on just the top layer yet use a via to pop down, etc. All you're inviting with this approach is EMI issues. Don't use VIAs unless you have to.

    Why did you use a 4-layer board for this effort, as you don't seem to have used the layers as expected? Usually, one or two layers in a 4-board design are used solely as GND and power planes, respectively (or in the case of the Teensy, you may have a split GND plane). There must be a reason you did it differently...

    Click image for larger version. 

Name:	pcb-top.gif 
Views:	176 
Size:	111.6 KB 
ID:	5326
    Note how I placed the capacitor such that it decouples the power pin. I had a restrict area around the crystal to keep it happy.


    Here is a different design with the MKL02Z bootloader (instead of MiniTan54) showing the use of two large 0-ohm resistors to bring power and a reset signal to the MKL02 bootloader chip. Note, this is a 2-layer design with a nearly unbroken GND plane. I do 'cheat' in these designs by adding one or two jumper wires and resistors selectively to allow me to keep the GND plane whole. Call it OCD, if you will.
    Last edited by Constantin; 10-20-2015 at 03:57 PM.

  17. #17
    I will do another pcb and i wil place the capacitors nearer
    and i used 4 layer pcb first of all to get away from the trouble of making planes beneath the crystal and for the properties of the 4 layer pcb which made my usb differential calculations easier
    in the previous pictures i didn't show the power planes to be able to clearly show the connections here is a picture with the rat-nest on
    And i noticed in the picture you added that the other 2 pins of the crystal are connected to ground is that necessary for it to work ?
    and the attachment is invalid if you can please fix it

    Click image for larger version. 

Name:	asaaa.PNG 
Views:	139 
Size:	73.6 KB 
ID:	5330
    Last edited by RichardHelou; 10-20-2015 at 04:11 PM.

  18. #18
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    13,800
    If you get really stuck, perhaps this reference board (for the new KL04 chip) might help?

    https://www.oshpark.com/shared_projects/d3J03Zeb

    If you're starting another board, maybe you should consider using the newer KL02/KL04 chip, rather than the old Mini54.

    http://www.pjrc.com/store/ic_mkl02.html

    The KL04 is much easier to solder too.

  19. #19
    Senior Member Constantin's Avatar
    Join Date
    Nov 2012
    Location
    In the yard with a 17' Dia. Ferris Wheel
    Posts
    1,377
    Hi Richard,

    I get a invalid link message. Can you try re-posting your file?

  20. #20
    Ok for sure i will use the new kl04 and thanks a lot for your help the pictures of the pcb helped me a lot

  21. #21
    Senior Member Constantin's Avatar
    Join Date
    Nov 2012
    Location
    In the yard with a 17' Dia. Ferris Wheel
    Posts
    1,377
    Yes, the two outer pads on the crystal are supposed to be GND'd per the NX spec sheet.

    For me, the biggest concern is why you need to recreate the Teensy. I see nothing on this board that you couldn't do for less money on a daughterboard. I only DIY Teensy stuff I cannot accommodate using a standard Teensy. For example, my latest Ethernet / Xbee / ESP8266 / RS485 board uses a OSH Teensy 3.2 on a DIL header. Using standard parts reduces business risk substantially. Don't get me wrong, it's fun putting DIY boards together but if you;re actually after getting something out the door, I'd focus on minimizing Teensy-related risk.
    Last edited by Constantin; 10-20-2015 at 04:49 PM.

  22. #22
    You are totally right but actually im making a new product and the pre final prototype must be in a waterproof package that i 3d printed ... and the ordinary teensy are too big i will just want to repeat it just to prove its functionality on my custom pcb so that i can complete the whole system wich will incorporate a TFT , GPS and nrf radio module and an compass accelerator IMU and as well as other components and by doing each pcb of each component and debugging it alone the whole system will be made all together easier
    Last edited by RichardHelou; 10-21-2015 at 08:18 AM.

Posting Permissions

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