I currently use an MSP430 on a design which sells for $1000, so I don't mind manually sticking in a JTAG cable and using Crossworks to program each one. --------------- But I'm now looking at building a design which would use a very small chip ( actually I'd prefer the ATtiny25, but I'm keeping an open mind on TI too ) and a couple of transistors on a tiny PCB. The chips are really cheap, but I don't want to spend double that on getting it programmed and tested. Naturally these would be built in a panel, maybe even 256-off on a single PCB. If I want to I can score just one side of the PCB, and allow connections across and between the units while the panel is still whole. It may be a real help if I can test all 256 units on the big panel before breaking them up for installation. --------------------- What are my options for programming up these 256 chips? Can I buy them preprogrammed with either my own code, or a bootstrap loader? Can I program many in parallel using a common sequence? Is it possible for an MSP430 to load it's own code and program itself over UART/SPI/something? ( I might happily go up to a moe expensive chip if by doing so I could automate the programming ) I had a mad idea of trying to organise them all into a bucket-brigade, so I program the first, then each one programs the one on it's left :-) David
Building low-cost MSP-430 based units in bulk
Started by ●October 2, 2005
Reply by ●October 2, 20052005-10-02
Hi, > I currently use an MSP430 on a design which sells for $1000, > so I don't mind manually sticking in a JTAG cable and using > Crossworks to program each one. > > --------------- > > But I'm now looking at building a design which would use a > very small chip ( actually I'd prefer the ATtiny25, but I'm > keeping an open mind on TI too ) and a couple of transistors > on a tiny PCB. > > The chips are really cheap, but I don't want to spend double > that on getting it programmed and tested. > > Naturally these would be built in a panel, maybe even 256-off > on a single PCB. > > If I want to I can score just one side of the PCB, and allow > connections across and between the units while the panel is > still whole. > > It may be a real help if I can test all 256 units on the big > panel before breaking them up for installation. > > --------------------- > > What are my options for programming up these 256 chips? > > Can I buy them preprogrammed with either my own code, or a > bootstrap loader? I believe TI have a service to pre-program devices, but I'm not 100% sure. And I doubt they'd offer it in small quantities. There is, of course, the BSL in ROM. > Can I program many in parallel using a common sequence? You can drive the outputs in common form the JTAG adapter, but TDO needs to come from each device, hence you would need 256 separate TDO lines. > Is it possible for an MSP430 to load it's own code and > program itself over UART/SPI/something? Of course--once you have some code in there to do it, so chicken and egg. > ( I might happily go up to a moe expensive chip if by doing > so I could automate the programming ) > > I had a mad idea of trying to organise them all into a > bucket-brigade, so I program the first, then each one > programs the one on it's left :-) You still need to get each device indivually programmed in the first place, so you're no better off are you? And if one programming operation fails...? -- Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk CrossWorks for MSP430, ARM, AVR and now MAXQ processors
Reply by ●October 2, 20052005-10-02
Hello David, > What are my options for programming up these 256 chips? Here is one idea: Place enough cheap muxes of the 4051 or 4052 type on the board perimeter. Comes in tiny TSSOP. These would switch to all the MSP chips, one at a time. After cutting up the board they are sacrificed. If you have to switch just two lines each it would come to under 5 cents per MSP in sacrificial parts cost. You'd have to figure out how to live with their RDSon when using the serial BSL method. If too high there is always the 74HC version of them. Mind the pile of capacitances when selecting the programming speed. > Can I buy them preprogrammed with either my own code, or a bootstrap > loader? If TI doesn't do it ask your distributor. In the 90's a lot of them offered that service. > Can I program many in parallel using a common sequence? Maybe, but what if one of them had a dead short on a serial pin? > I had a mad idea of trying to organise them all into a bucket-brigade, > so I program the first, then each one programs the one on it's left :-) Then if number 46 fails you'd have lost the other 210 that were supposed to follow it ;-) Regards, Joerg http://www.analogconsultants.com/
Reply by ●October 2, 20052005-10-02
On Sun, 2 Oct 2005 14:51 +0100 (BST), you wrote: >I currently use an MSP430 on a design which sells for $1000, so I don't >mind manually sticking in a JTAG cable and using Crossworks to program >each one. > >--------------- > >But I'm now looking at building a design which would use a very small >chip ( actually I'd prefer the ATtiny25, but I'm keeping an open mind >on TI too ) and a couple of transistors on a tiny PCB. > >The chips are really cheap, but I don't want to spend double that on >getting it programmed and tested. > >Naturally these would be built in a panel, maybe even 256-off on a >single PCB. > >If I want to I can score just one side of the PCB, and allow connections >across and between the units while the panel is still whole. > >It may be a real help if I can test all 256 units on the big panel >before breaking them up for installation. > >--------------------- > >What are my options for programming up these 256 chips? > >Can I buy them preprogrammed with either my own code, or a bootstrap >loader? > >Can I program many in parallel using a common sequence? > >Is it possible for an MSP430 to load it's own code and program itself >over UART/SPI/something? >( I might happily go up to a moe expensive chip if by doing so I could >automate the programming ) > >I had a mad idea of trying to organise them all into a bucket-brigade, >so I program the first, then each one programs the one on it's left :-) > >David > We have several panels that each have multiples (25 and 30) different products. The boards all get programmed at once, together with testing and initialising with default parameters, and a report generated with any faults found. Connections are made to the panel via > 1000 spring loaded test pins. The ones we purchased were from PCCP, their website's an absolute shocker, but don't let that put you off. http://www.pccp.com.tw If you've got 256 pcbs to program, that would make the price for the programming jig very high, principally because of the cost of the pins. Then there's the cost of the pcb to provide the interconnections for the pins to the central controller, and the multiplexing circuitry. If you could reduce the quantity of pcbs to be programmed at once to 16, that would dramatically reduce your initial costs, but increase the time to program the full 256 units. Another method, which I haven't tried, may be to bring the programming connections to the edge of the pcb, and use an edge connector (perhaps sacrificial for when it gets worn out) to provide the connections for the programming signals. The pcbs get separated from the panel in a stick format, and you plug the stick into the programming jig. This has the advantage that there are no unnecessary loaded components on the pcb to be programmed. The disadvantage is that wear on the edge connector may reduce connection reliability, and result in failed programming. These methods allow you to change the firmware if needed and program the pcbs as a final stage before assembly into a product. If you get the chips pre-programmed, this may not be an option. When I was working for a whitegoods manufacturer years ago, we were using 6805 chips, and had to get them mask programmed in quantities of around 15,000 for production. Naturally the program had to run correctly in all conditions. Even then, the production line had test jigs to ensure the electronics operated correctly. We did have to get the masks changed once or twice with the resulting hair pulling and roaring from management. Regards David
Reply by ●October 2, 20052005-10-02
Depending on your mechanical skills (or access to
to someone with mechanical skills) you could place
your board on an x-y table and step and repeat.
Then you only need one test setup with spring
probes.
Unless you could amortize the work over a few
more projects or more boards this method would
not be cost effective.
(* jcl *)
--- dmm <dmmilne@dmmi...> wrote:
> On Sun, 2 Oct 2005 14:51 +0100 (BST), you
wrote:
>
> >I currently use an MSP430 on a design which sells
> for $1000, so I don't
> >mind manually sticking in a JTAG cable and using
> Crossworks to program
> >each one.
> >
> >---------------
> >
> >But I'm now looking at building a design which
> would use a very small
> >chip ( actually I'd prefer the ATtiny25, but I'm
> keeping an open mind
> >on TI too ) and a couple of transistors on a tiny
> PCB.
> >
> >The chips are really cheap, but I don't want to
> spend double that on
> >getting it programmed and tested.
> >
> >Naturally these would be built in a panel, maybe
> even 256-off on a
> >single PCB.
> >
> >If I want to I can score just one side of the PCB,
> and allow connections
> >across and between the units while the panel is
> still whole.
> >
> >It may be a real help if I can test all 256 units
> on the big panel
> >before breaking them up for installation.
> >
> >---------------------
> >
> >What are my options for programming up these 256
> chips?
> >
> >Can I buy them preprogrammed with either my own
> code, or a bootstrap
> >loader?
> >
> >Can I program many in parallel using a common
> sequence?
> >
> >Is it possible for an MSP430 to load it's own code
> and program itself
> >over UART/SPI/something?
> >( I might happily go up to a moe expensive chip if
> by doing so I could
> >automate the programming )
> >
> >I had a mad idea of trying to organise them all
> into a bucket-brigade,
> >so I program the first, then each one programs the
> one on it's left :-)
> >
> >David
> >
>
> We have several panels that each have multiples (25
> and 30) different
> products. The boards all get programmed at once,
> together with testing
> and initialising with default parameters, and a
> report generated with any
> faults found. Connections are made to the panel via
> > 1000 spring
> loaded test pins. The ones we purchased were from
> PCCP, their website's
> an absolute shocker, but don't let that put you off.
> http://www.pccp.com.tw
>
> If you've got 256 pcbs to program, that would make
> the price for the
> programming jig very high, principally because of
> the cost of the pins. Then there's
> the cost of the pcb to provide the interconnections
> for the pins to the
> central controller, and the multiplexing circuitry.
> If you could reduce the
> quantity of pcbs to be programmed at once to 16,
> that would dramatically
> reduce your initial costs, but increase the time to
> program the full 256 units.
>
> Another method, which I haven't tried, may be to
> bring the programming
> connections to the edge of the pcb, and use an edge
> connector (perhaps
> sacrificial for when it gets worn out) to provide
> the connections for the
> programming signals. The pcbs get separated from the
> panel in a stick
> format, and you plug the stick into the programming
> jig. This has the advantage
> that there are no unnecessary loaded components on
> the pcb to be programmed.
> The disadvantage is that wear on the edge connector
> may reduce connection
> reliability, and result in failed programming.
>
> These methods allow you to change the firmware if
> needed and program
> the pcbs as a final stage before assembly into a
> product. If you get the
> chips pre-programmed, this may not be an option.
> When I was working for
> a whitegoods manufacturer years ago, we were using
> 6805 chips,
> and had to get them mask programmed in quantities of
> around 15,000
> for production. Naturally the program had to run
> correctly in all conditions.
> Even then, the production line had test jigs to
> ensure the electronics
> operated correctly. We did have to get the masks
> changed once or twice
> with the resulting hair pulling and roaring from
> management.
>
> Regards
> David
>
>
Reply by ●October 3, 20052005-10-03
> > Can I buy them preprogrammed with either my own code, or a > > bootstrap loader? > > I believe TI have a service to pre-program devices, but I'm not 100% > sure. And I doubt they'd offer it in small quantities. well I'm looking at 35Kpa, which is probably still small by their counting ... > There is, of course, the BSL in ROM. I guess I need to look that up and decide if it's relevant. Is it a fixed feature of the chip from manufacture? > > Can I program many in parallel using a common sequence? > > You can drive the outputs in common form the JTAG adapter, but TDO needs > to come from each device, hence you would need 256 separate TDO lines. well a custom jig to pick up order of 256 lines isn't impossible - the tracking might be iffy though. As debated elsewhere the key is to use a zero-cost connector on the PCB. We've done similar with edge-connectors before. > > Is it possible for an MSP430 to load it's own code and > > program itself over UART/SPI/something? > > Of course--once you have some code in there to do it, so chicken and > egg. which is why I was wondering if buying them pre-programmed was normal, it used to be a standard service with PALs, but I don't know if it makes sense to try to handle these small objects. > > I had a mad idea of trying to organise them all into a > > bucket-brigade, so I program the first, then each one > > programs the one on it's left :-) > > You still need to get each device indivually programmed in the first > place, so you're no better off are you? And if one programming > operation fails...? well provided I can see how far it got I can stick it under a magnifying glass... 99% of problems will be soldering! David
Reply by ●October 3, 20052005-10-03
that's a really helpful answer. Thank you. I'm aware that programming strips of 16 in a 16-times-step-and-repeat might be the economic option. That would just involve some index holes in the PCB at the end of each strip. or as you say we could break off a strip like a chocolate bar... good thought. When you programmed them in multiples, did you use a custom set-up, or a standard adaptor? I know I'd need some pogo-stick-pads so we could reprogram individual ones in an emergency. But the idea is to pot these things into a connector housing, so there won't be much scope for doing it again after that. David > We have several panels that each have multiples (25 and 30) different > products. The boards all get programmed at once, together with testing > and initialising with default parameters, and a report generated with > any faults found. Connections are made to the panel via > 1000 spring > loaded test pins. The ones we purchased were from PCCP, their website's > an absolute shocker, but don't let that put you off. > http://www.pccp.com.tw > > If you've got 256 pcbs to program, that would make the price for the > programming jig very high, principally because of the cost of the pins. > Then there's > the cost of the pcb to provide the interconnections for the pins to the > central controller, and the multiplexing circuitry. If you could reduce > the > quantity of pcbs to be programmed at once to 16, that would dramatically > reduce your initial costs, but increase the time to program the full > 256 units. > > Another method, which I haven't tried, may be to bring the programming > connections to the edge of the pcb, and use an edge connector (perhaps > sacrificial for when it gets worn out) to provide the connections for > the programming signals. The pcbs get separated from the panel in a > stick format, and you plug the stick into the programming jig. This has > the advantage > that there are no unnecessary loaded components on the pcb to be > programmed. > The disadvantage is that wear on the edge connector may reduce > connection > reliability, and result in failed programming. > > These methods allow you to change the firmware if needed and program > the pcbs as a final stage before assembly into a product. If you get the > chips pre-programmed, this may not be an option. When I was working for > a whitegoods manufacturer years ago, we were using 6805 chips, > and had to get them mask programmed in quantities of around 15,000 > for production. Naturally the program had to run correctly in all > conditions. > Even then, the production line had test jigs to ensure the electronics > operated correctly. We did have to get the masks changed once or twice > with the resulting hair pulling and roaring from management. > > Regards > David
Reply by ●October 3, 20052005-10-03
> Hello David, > > > What are my options for programming up these 256 chips? > > Here is one idea: Place enough cheap muxes of the 4051 or 4052 type on > the board perimeter. Comes in tiny TSSOP. These would switch to all > the MSP chips, one at a time. After cutting up the board they are > sacrificed. If you have to switch just two lines each it would come to > under 5 cents per MSP in sacrificial parts cost. > > You'd have to figure out how to live with their RDSon when using the > serial BSL method. If too high there is always the 74HC version of > them. Mind the pile of capacitances when selecting the programming > speed. good idea - though I'd probably stick some edge-connector fingers on the board and move the muxes to a fixture > > Can I buy them preprogrammed with either my own code, or a bootstrap > > loader? > > If TI doesn't do it ask your distributor. In the 90's a lot of them > offered that service. it used to cost 20c or so for PALs... now the whole darned CPU isn't much more than that :-) > > Can I program many in parallel using a common sequence? > > Maybe, but what if one of them had a dead short on a serial pin? 100R in series to help find it? > > I had a mad idea of trying to organise them all into a > > bucket-brigade, so I program the first, then each one programs the > > one on it's left :-) > > Then if number 46 fails you'd have lost the other 210 that were > supposed to follow it ;-) well I'd have to fix #46, and restart from there, but maybe that would be a small price to pay for the gains to be had. ===================================================== In the end I'm just fascinated that with an ATtiny costing 80c, there doesn't appear to be a standard answer to this question.... David
Reply by ●October 3, 20052005-10-03
If you buy from a distributor then they can supply the devices prograammed with your code. I think EBV Electrnik do this and, competition being what it is, I am sure that the others do as well. Ian
Reply by ●October 3, 20052005-10-03
I have a similar problem and I am thinking if it would not be possible to program only one of the 250 in the panel and let IT to program the next one and this will program the next one and so on. A serial chain of programming. This implies to have enough pins on each device to connect to it's neighbor and to have the necessary algorithm built in. If you have enough pins on your device like I have (167) you can connect 4-8 in parallel and program them as such Success, Alex