How to program/upgrade hundreds of PSoC with the same firmware

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

    
I am considering a design of a system that involves several hundred identical data acquisition units based on a PSoC5 (PSoC4 is an option). We are talking about up to 2000 units. They all run same code, or nearly the same code, which could be different in unit identification codes. Working and developing software for a single unit is a no-brainer but distributing it to a large number of units looks like a serious scalability problem. Uploading software by changing units and plugging them into a PC is not a viable option based on the number of units. Is there a way to create a bus with addressable PSoC units and then use this bus to upload software? I'm afraid that USB, JTAG, or SWD solutions would not work. Radio-based solutions, like BlueTooth, would not work because of radio interference between units.
I'm looking for hints on the direction to solve the problem of mass upgrading software in PSoC.
I would know an acceptable solution for an Ethernet-enabled device but I am totally perplexed by a solution for PSoC4/5...

Regards,
/Sergey 
 

0 Likes
4 Replies
lock attach
Attachments are accessible only for community members.
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

See attached.

0 Likes
Anonymous
Not applicable
        Thank you very much for the links, Dana! I understand how to program a single unit with a single programmer. My problem is the scale. If I make a code change to the software that runs on my PSoCs, how can I efficiently (this implies reliably and fast) deploy the update to 1000 or more units? All existing documentation talk about JTAG and SWD interfaces that are "point-to-point" where there is exactly one PSoC for one programmer. Is there a way to use one programmer for 10 or for a 100 of PSoCs without having to remove units from the circuits they control? Having some wiring done in advance is an option but then it becomes a programming bus with very unclear way to address/select units for programming.   
0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

If each PSOC is in an Ethernet client you could send commands to that Ethernet address

   

that initiates a bootloader session......maybe I do not understand your client side.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

I have recently written SWD routines to program PSoC5LPs and PSoC4s from another PSoC. There are some very good HSSP application notes detailing it. You are correct though that it is a single point-to-point connection and SWD may be a lot of things but fast is not one of them.

0 Likes