Developing a gang programmer from scratch.

17 Nov 2017

I'm the guy who makes the production tools for our company and we have a design being done by our R&D team using a member of the KL03 family. I haven't developed any ARM tools before so I am coming in cold. Here is what I have learned and what I think I know.

- The MBED DAPLink firmware is used on an intermediate uP that sits between a PC and the target uP. - The MBED DAPLink firmware implements the JTAG, SWD, SPI, and I2C programming protocols to load firmware into the target uP. - The MBED DAPLink framework implements a USB serial port for communication with the target uP and a HD interface that allows firmware to be loaded into the target uP from a PC.

I think the above is true, if not please let me know.

What I don't know -Is there a DLL that can be implemented in a C# application for programming in a production environment? -Where is the reference design (schematic) for a DAPLink programmer? -Does it matter what uP I choose as the intermediate that will run the DAPLink firmware?

My plan is to implement a gang programmer with multiple programmers on a single PCB, all of which will be connected to a PC through a USB hub which is also on the PCB. Each programmer will connect to a single target through pogo pins and all programmers will work independently and in parallel, each programming the device it is connected to.

After programming there will be some testing that will need to be done on the newly programmed device and I'd like to use the same uP that programmed the device to do the testing as well. The other option is to simply implement the gang programmer then have a separate uP that would do the testing but that seems silly.

Any thoughts or opinions both positive and negative are greatly appreciated.

20 Nov 2017

Hello Andrew,

Its cool to hear that you you are looking to use DAPLink for production programming. Your description of DAPLink is accurate, but with one slight difference - SPI and I2C aren't used currently to program targets. Programming is done through JTAG/SWD.

If you need a DLL which can be used for raw SWD access you can find it in here - https://silver.arm.com/browse/CMSISDAP. You'll need to write your own flash programmer on top of this though.

Alternatively, if you are able to use python then you could use the pyOCD library. It has a high level API which use can use to program supported devices via DAPLink or other debuggers using the CMSIS-DAP protocol.

Thanks, Russ

28 Dec 2017

Help me in coding for Sensors

I have imported MAX30100 and MLX90614 coding from the forum but it is not being compiled. I require help and support for the sensors and modules coding to complete my academic project. my project consists of MLX90614(I2C),MAX30100(4-wire SPI),SIM868 (UART)and OLED dispaly with 4-wire SPI protocol coding.

22 Jan 2019

That’s a great idea! Expect to see a SparkFun Google+ page in the next few days.