Jump to content
audiodane

Small SBW FET circuit for custom PCB?

Recommended Posts

Hi all.  Is there a proven, tiny, relatively simple circuit anywhere to embed SBW support into a tiny custom PCB?   I would like to remove the need for the FET adapter and connector if possible for this custom application.   I could rip off the schematics from TI's USB FET, but there are so many components in that solution and I'm trying to stay small, but also stay away from 0402 sized parts.  I have most of the back-side of a 1/2" by 1" custom MSP430G2402-based design available.  A bonus would be to double the interface as a serial-uart-over-USB bridge when SBW is not being used.  SMT components preferred.

 

thanks,

..dane

Share this post


Link to post
Share on other sites

Hi all.  Is there a proven, tiny, relatively simple circuit anywhere to embed SBW support into a tiny custom PCB?   I would like to remove the need for the FET adapter and connector if possible for this custom application.   I could rip off the schematics from TI's USB FET, but there are so many components in that solution and I'm trying to stay small, but also stay away from 0402 sized parts.  I have most of the back-side of a 1/2" by 1" custom MSP430G2402-based design available.  A bonus would be to double the interface as a serial-uart-over-USB bridge when SBW is not being used.  SMT components preferred.

 

thanks,

..dane

 

There is possibility to adapt (remove all in-line to decrease size) MSP430F5529 LP FET source code (http://processors.wiki.ti.com/index.php/EZ-FET_lite) to MSP430F5510, and have fully functional SBW FET with 1 Mbps USB-UART bridge, one chip solution with almost zero parts.

Share this post


Link to post
Share on other sites

There is possibility to adapt (remove all in-line to decrease size) MSP430F5529 LP FET source code (http://processors.wiki.ti.com/index.php/EZ-FET_lite) to MSP430F5510, and have fully functional SBW FET with 1 Mbps USB-UART bridge, one chip solution with almost zero parts.

An even better part is MSP430F5503, since it is just like a 5510 but without the ADC and some other features that would be irrelevant to a FET.

 

I have an old CC430 + 5503 board design, where 5503 acts as a FET and USB bridge to the CC430.  I haven't gotten to doing much of the programming work, but this EZ-FET lite will make it a lot easier.  I think I'm going to open source the board design some time in the next few months, since I don't really have the time to do all the firmware myself.  It would be nice to port Energia onto it, like with PanStamp.

Share this post


Link to post
Share on other sites

An even better part is MSP430F5503, since it is just like a 5510 but without the ADC and some other features that would be irrelevant to a FET.

 

Minus for MSP430F5503 is 48RGZ (QFN) package, nothing else. Actually, tiny board is must (as topic target), so QFN is way to go.

 

Only question is how much 128 KB EZ-FET image, with some large empty blocks ($FFFF) inside, can be decreased.

D:\msp430>flash -f EZFET_LITE_Rev1_1_FW_3_3_0_6.txt

File "EZFET_LITE_Rev1_1_FW_3_3_0_6.txt"
Address: 01800  Words: 256
Address: 04400  Words: 65536
131584 bytes

Share this post


Link to post
Share on other sites

 

Minus for MSP430F5503 is 48RGZ (QFN) package, nothing else. Actually, tiny board is must (as topic target), so QFN is way to go.

 

Only question is how much 128 KB EZ-FET image, with some large empty blocks ($FFFF) inside, can be decreased.

D:\msp430>flash -f EZFET_LITE_Rev1_1_FW_3_3_0_6.txt

File "EZFET_LITE_Rev1_1_FW_3_3_0_6.txt"
Address: 01800  Words: 256
Address: 04400  Words: 65536
131584 bytes

I did an audit of GoodFET about 2 years ago, plus I read the app notes on how the JTAG/SWD works, and it seems that it is definitely possible to port it into a small size.  TI does not tend to ship tight code.  I would guess that a CC430-only version, or even MSP430F5-only version, could be implemented in less than 16KB.  Maybe even 8KB.  Soon I will do an audit of TI's code.  I will certainly post my results.

Share this post


Link to post
Share on other sites

I don't really get your intent. If you are doing a custom PCB, why would you want to integrate an entire FET in it?

The simplest way I know is to just add an eZ430 connector and use the eZ430 programmer/debugger as is. This does not meet your requirements for an integrated design, but I don't really see your point in doing that. In particular since you have a really small design, adding a USB socket/plug would greatly add to the size, which I suppose is not appreciated.

So, what is your underlying intent and why would you need an embedded FET for that?

Share this post


Link to post
Share on other sites

I don't really get your intent. If you are doing a custom PCB, why would you want to integrate an entire FET in it?

The simplest way I know is to just add an eZ430 connector and use the eZ430 programmer/debugger as is. This does not meet your requirements for an integrated design, but I don't really see your point in doing that. In particular since you have a really small design, adding a USB socket/plug would greatly add to the size, which I suppose is not appreciated.

So, what is your underlying intent and why would you need an embedded FET for that?

 

That is an entirely fair question.  Simplest answer, too. :)  I have a tiny custom PCB to do a very specific task.  msp430g2402, a few leds, a few low-profile dip switches, and a 5-pin connector.  Plus (currently) an ez430 connector.  One specific feature that I would like to add is a debug/logging interface via serial-over-usb.  I can add that pretty easily, but given that the ez430 operates over USB, my question then becomes, if I embed a chip to handle a USB based UART that can also act as a SWD interface over USB, then I can sell the device to do my intended task, or I can sell it without loaded firmware as a tiny form factor hobby board. Currently I can add a SiLabs USB-UART bridge chip and connector, but it would seem so much more versatile if it embedded a programmer interface as well.

 

My thought process is that it would be a little frustrating (and most likely lower sales volume) for hobbyists to buy a little board for USD$20-30 AND have to buy a programmer tool for another $25.  If I can embed the programmer interface and get the quantities up, the sales price wouldn't have to change, and they get a board that's simpler to interface with.  If I could sell even just 300 of these units over the course of a year, I can justify the added capital cost to produce the more complicated design.

 

I currently have the entire backside of a 1/2" by 1" pcb empty (no traces or components) that I believe would hold the QFN and USB connector.  I could grow it slightly if necessary.

 

However, my current understanding of the thread topic seems to indicate that while there is some real possibility, there is as of yet no "drop in solution" ready to go.  I am a bit pressured for time, so I may have to push this off until a second revision of the board.  I would very much like to see this happen but will have to rely on others because of the level of understanding required for the SWD interface and code as discussed above.  If such a tiny solution could be implemented, I would be more than happy to open source an EAGLE based schematic and layout of that circuitry (assuming someone else could add the firmware portion).

 

cheers,

..dane

Share this post


Link to post
Share on other sites

A crude solution would be to use an FTDI chip (of probably an SiLabs...) and use the UART function as UART, then you could (ab)use the RTS/CTS/DTR to drive the SBWTIO and SBWTCK lines. Optionally you could enforce the computer to load a corresponding driver by adding a little EEPROM with custom vendor id etc.

This approach is similar to the old-school tiny/pony/etc-prog tools.

 

As an added benefit, you could postpone the SbW interface and have it latent available. Then the driver/tool implementation could be written later.

Share this post


Link to post
Share on other sites

I think I understand the concept you're suggesting, but it's way beyond my skill set.  I'm primarily a hardware and FPGA designer.  I have software background (embedded, dos, linux, and windows) but it's not my primary skill.

Share this post


Link to post
Share on other sites

I don't really get your intent. If you are doing a custom PCB, why would you want to integrate an entire FET in it?

I want to have a USB-UART bridge for the CC430, and it is cheaper, better, and more interesting for the hacker to have it be an MSP430 than a FTDI chip.

 

The thing is, USB-UART bridge firmware does not take a lot of space or resources.  So, I'm thinking what else I can put on there.  FET is certainly an option.  But since it is programmable, if you don't like the FET, you can reprogram the MSP to do something else.

Share this post


Link to post
Share on other sites

A crude solution would be to use an FTDI chip (of probably an SiLabs...) and use the UART function as UART, then you could (ab)use the RTS/CTS/DTR to drive the SBWTIO and SBWTCK lines. Optionally you could enforce the computer to load a corresponding driver by adding a little EEPROM with custom vendor id etc.

This approach is similar to the old-school tiny/pony/etc-prog tools.

 

As an added benefit, you could postpone the SbW interface and have it latent available. Then the driver/tool implementation could be written later.

 

USB-UART bridges (using RTS/CTS/DTR) are not fast enough for SBW, but they are OK for BSL. If this project have MSP430G2xx as target, than it can be small board with 2 QFN chips (USB-UART bridge and MSP430G2xx), with 3.3V supply form bridge reg. Firmware can be simply uploaded by BSL, and bridge can be used for UART comunication with PC (or logging). Of course, it must be used MSP430G2xx device that have BSL support (like MSP430G2553 for example).

 

Other option is to put on board MSP430F550x for FET/bridge an also use internal 3.3V reg for MSP430G2xx target device. When MSP430F550x is not used as FET, it can be used for development too (USB BSL). It also can be only 2 QFN chips on board. Of course, for this option TI FET source must be adapted to MSP430F550x (or at least LP based BSL), while version with standard USB-UART bridge (FTDI/Prolific) don't request any coding and everything is prepared by TI. 

Share this post


Link to post
Share on other sites

I want to have a USB-UART bridge for the CC430, and it is cheaper, better, and more interesting for the hacker to have it be an MSP430 than a FTDI chip.

 

The thing is, USB-UART bridge firmware does not take a lot of space or resources.  So, I'm thinking what else I can put on there.  FET is certainly an option.  But since it is programmable, if you don't like the FET, you can reprogram the MSP to do something else.

 

+1 to the above.  cheaper and more interesting (and more versatile) to have the usb-uart be an msp430 chip.  This is the approach I would like to take, but know not how to get the usb-bridge and fet support into this second msp430 chip.  That's what I'm looking for..   I specifically need to support a G2402 because it's already designed in.

Share this post


Link to post
Share on other sites

USB-UART bridges (using RTS/CTS/DTR) are not fast enough for SBW, but they are OK for BSL. If this project have MSP430G2xx as target, than it can be small board with 2 QFN chips (USB-UART bridge and MSP430G2xx), with 3.3V supply form bridge reg. Firmware can be simply uploaded by BSL, and bridge can be used for UART comunication with PC (or logging). Of course, it must be used MSP430G2xx device that have BSL support (like MSP430G2553 for example).

 

Other option is to put on board MSP430F550x for FET/bridge an also use internal 3.3V reg for MSP430G2xx target device. When MSP430F550x is not used as FET, it can be used for development too (USB BSL). It also can be only 2 QFN chips on board. Of course, for this option TI FET source must be adapted to MSP430F550x (or at least LP based BSL), while version with standard USB-UART bridge (FTDI/Prolific) don't request any coding and everything is prepared by TI. 

Can you download and debug with BSL like you can with FET?  I don't really know the difference between the two terms.  I want debugging support..    I also need G2402 because it's already designed in.  Depending on cost, I could go with a different chip, but I'm trying to remain inexpensive.

 

How does communication between the two MSP430's work if the FET has to run at 3.6V but the target has to run at 3.3V?  if the SWD wires are open collector and pulled up to 3.3V, is that sufficient for the 3.6V device?  Are SWD pins are open drain or push-pull?

 

..dane

Share this post


Link to post
Share on other sites

Can you download and debug with BSL like you can with FET?  I don't really know the difference between the two terms.  I want debugging support..    I also need G2402 because it's already designed in.  Depending on cost, I could go with a different chip, but I'm trying to remain inexpensive.

 

How does communication between the two MSP430's work if the FET has to run at 3.6V but the target has to run at 3.3V?  if the SWD wires are open collector and pulled up to 3.3V, is that sufficient for the 3.6V device?  Are SWD pins are open drain or push-pull?

 

..dane

 

With BSL you can only flash target device, not debug like with FET (JTAG/SBW).

 

FET/BSL can run on the same voltage as a target device, and my SBW+ flasher will work on this way. There is no need for complicated isolated 2 voltage support interface like on TI FET devices. After flashing (BSL/SBW/JTAG) master device just need to put TEST/RESET lines in high-impedance state, nothing else.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...