0
\$\begingroup\$

I made a little board using a STM32F205 micro. For the protos, I just plugged the board into Windows via USB and used STM's DFUSE software to flash the chip with the built in bootloader. That was fine for protos, but each one takes about a minute and that's too long for doing 1000.

Is there a better way? Preferably some way to do it without the chip being soldered to the board?

\$\endgroup\$
3
  • \$\begingroup\$ You might be able to automate the process with a tool like dfu-util. \$\endgroup\$
    – CL.
    Commented Sep 2, 2015 at 17:35
  • \$\begingroup\$ I'm stuck with dfu-util. All I get is "No DFU capable USB device available", but yeah it is available as DFUSE demo has no problem with it? \$\endgroup\$
    – bcsteeve
    Commented Sep 2, 2015 at 23:01
  • \$\begingroup\$ It's possible that DFUSE's driver already is attached to the device, and blocks the libusb driver. Anyway, that would be a separate question. \$\endgroup\$
    – CL.
    Commented Sep 3, 2015 at 8:24

2 Answers 2

1
\$\begingroup\$

Interfacing a chip which isn't soldered to a board is hard.

You can try and find a socket adapter for your package and build a programming rig yourself where you insert those chips. Those no-solder sockets can get very pricey depending on the package. (for example Loranger offers quite a few) In that rig you can program them using JTAG, which should be faster than a minute (depends on the flash size obviously). You have to take care with the layout to allow high speed JTAG access.

Another option (but sounds like that is not possible) is to program the chips with a needle adapter on the board via JTAG. You have to expose the JTAG pins with testpoints on the board to be able to do that. We typically use this approach and program the boards during our after-assembly-testrun.

Another option is to get someone else to do it for you: Send your chips to a professional programming service along with your software and get them programmed there.

\$\endgroup\$
2
  • \$\begingroup\$ Just to add to a post I fully agree with: Keep in mind the advantages/disadvantages of those different methods. Using pre-programmed parts obviously is the fastest for production - but isn't very flexible and not always the cheapest option. Especially when you are facing a range of different software versions or quickly changing revisions this can cause quite some headaches. And if you are using some sort of In-System Programming you can always go to parallel programming and i.e. program a whole panel of boards instead of a single one to improve the throughput. \$\endgroup\$
    – og1L
    Commented Sep 2, 2015 at 15:38
  • \$\begingroup\$ I didn't realize there were professional programming services. That might be something to look at. Considering it has a built-in bootloader, I'll admit I didn't think about exposing JTAG pins. In retrospect, obviously that would have been smart. I may have to just suck it up and manually do these via USB. Live and learn. \$\endgroup\$
    – bcsteeve
    Commented Sep 2, 2015 at 21:32
0
\$\begingroup\$

You can ask your distributor to do it. They will also repack it. There are also companies who will do that.

Otherwise you have to build yourself some sort of mass programmer.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.