This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

OTA update of a new nRF51822

Hello,

I am currently designing a PCB containing the nRF51822 chip and I am concerned about how I will be able to update the program. I have 2 main questions :

  1. I will have the PCB done and assembled by a PCB manufacturer. The nRF51822 chip will be ordered directly by the PCB manufacturer. There is no JLink connector on the PCB as there is no space for it (space is critical for my application). When I receive the PCB, will I be able to perform an Over the Air update directly? I need to load the S130 SoftDevice and of course my application program.
  2. In the spec I see that the "SWDIO/nRESET" pin is active low. Does that mean that if I leave the pin unconnected (I don't plan to use the pins SWDIO and SWDCLK as I want to perform OTA update only) the nRF51822 will always be in debug mode or reset constantly? In the schematics and PCB layout I see that these 2 pins are connected. Can I leave them unconnected?

Thanks a lot in advance for your support! <3

  • No - unless you have someone program the chip for you before assembly, or program the board with some kind of jig after assembly or you make some kind of small connector on the board which can be used for programming, you won't be able to program the chip. The chip comes entirely blank and SWD is the only way to get the initial code onto it.

    nRESET/SWDIO is pulled high by an internal resistor so no you won't constantly reset. I've had noise problems in one of my applications (it's subject to some interference and the board design is not yet that great) and that's been pulling the nRESET low and resetting the chip, so tying it high is a good idea, as long as you leave some way to program the board first.

    You should ask your board manufacturer if they can program the chip before assembly. There are programmers which will take unmounted chips (QFNs at least), put them in a socket and program them.

  • Thank you RK for your answer, although that is bad news for me. As space is critical I chose the BGA package, so have the chip programmed by the board manufacturer is probably not an option. I will ask though. To program it at least once with wire connection, I am thinking about the following solution : on my current design, the nRF51822 is quite close to the "bottom" edge of the PCB, especially the pins SWDIO and SWDCLK face the edge (about 1mm close to the edge); I could just add 2 copper traces from the pins to the edge; when I receive the PCB I temporarily hand-solder both traces to connect them to whatever is able to program the chip. What do you think?

  • It would work, sounds like an awful lot of hard work however. You need at least ground as well as a reference for the programmer, and a connection to board power would be useful but as long as you have SWDIO/SWDCLK and GND you can probably manage it.

    I've seen some blog posts over the years where people have modified edge connectors or even used small clips with contacts on them to clip onto the side of a board for long-enough to get it programmed.

    Is tagconnect even too big for your use? They have a 10 pin one and a 6 pin one, I believe the 6 pin one can be used. That takes up .2" x .1" plus three holes for the legs. That's about as small as a regular programming solution gets.

  • I guess that the 6-pin one could be acceptable in terms of size. As I have no experience with programmers (I have the nRF51DK and its USB connection is pretty straightforward :-) ), could you please tell me a bit more about your solution (like a link to the product you are talking about, which programmer can I use (I have none at the moment)). Sorry to bother you :/

  • well you'll need to get a programmer, and if this is commercial then you should get one which has a commercial license for programming (the on board JLink does not).

    Tag Connect is here. They have a load of products, you need to read carefully and make sure you get the right one (or mail them, they're helpful). I'm using the 10pin footprint on my boards and have the cable which connects it to a Segger JTAG, one of the full-sized ones with a 20-pin .1" pitch connector on it. They also have a cable which attaches to the 10 pin FTSH (the debug out on your dev kit board) to either the 6 pin or the 10 pin board footprint connector. I believe the 6-pin, they claim, takes up 1/3 the space of a standard ARM 10 pin 0.05" connector.

    Go take a look at those products and the footprints, see if you think it'll fit, and ask again when you think you've picked one.

Related