Tuesday, September 20, 2011

PSoC3 Custom Board - Design Goals

With this design,as decided,the idea is to keep it simple and low-cost for the end user.

It'll have 3 main parts,

1.The PSoC3 Chip:
There are 2(+1) variants,the 100pin TQFP and the 48pin SSOP(and the 68pin QFN),which have some feature differences,with the 100pin TQFP CY8C3866AXI-040 being the big daddy of 'em all.

While bigger is better,the SSOP part I had chosen initially satisfied my goals.That was the CY8C3866PVI-070(check the PSoC3 parts available at Cypress' Part Selector).I switched to the CY8C3866PVI-021 later,and more on what prompted that change.
So,the final choice for the chip is the CY8C3866PVI-021.Over to programming now.

2.The Programmer:
Now while the PSoC3 supports SWD(Serial Wire Debug) and JTAG for burning your code,both these modes need an external programming setup of some kind.The First Touch Kit has an FX2LP chip doing SWD for us,while the bigger boards have a MiniProg3(more on that here) supplied to do both(and also act as an I2C bridge,SWV etc.) JTAG as well as SWD.
If you'll goto the MiniProg3 page,an $89 price tag in red is the first thing that you see.Now,I don't mean that its overpriced,but as a student,I cant afford one.(especially when the First Touch Kit itself is $49)

Both programming ways,the FX2LP chip and the MiniProg are complicated(not what I want in my design) and costly.Again,more reference to the Arduino,(which was the source of inspiration for this design.)which uses a Bootloader(the Arduino Bootloader),on an ordinary atmega328(or similar) to simplify the programming.Sure,you need a programmer to get the bootloader burnt on in the first place,but I'll discuss that later.

So,Bootloader it is.Cypress has appnotes for UART(currently under review),I2C(here) and USB(catch my drift?) bootloaders.I didnt know about the USB Bootloader appnote initially,so chose the CY8C3866PVI-070 for my board.Later,realizing the (obvious) advantages of a USB bootloader,which is natively supported(yay!) ,I switched parts to the CY8C3866PVI-021,which is the exact same as the previous choice,but with USBFS(full speed USB2.0).

So the chip is going to be the CY8C3866PVI-021,running a USB bootloader for easy programming.

3.Power:
Now,I havent really nailed down the design goals for this one,but heres what I think.
So,since we'll be using USB,theres the direct access to +5V.Nice.But what about 3.3V? and an external power jack? Or custom voltage levels from external sources(battery,or solar cell etc) ?

While it'd be very easy(for me) to use the USB for power also,it'd be restricting.Okay,so add a "VIN" for connection of any external regulated source.But doesnt that sound a little 'half done'? Fine,add a regulator with jumpers to switch between 5 and 3.3V operation.What about USB v/s an External wall wart adapter for power sources? More jumpers?

That adds a lot of components to the design.But then theres lots of platforms running 5V(Arduino) or fixed 3.3V(mbed,I think.) and still considered "user friendly".

Need to come to a final choice for this.

Update: 29 Nov 11: So the power section is frozen,with 3.3V and 5V selectable levels,where the 5V comes from USB(only) and the 3.3V can be sourced from either USB,or an unregulated DC supply fed into an LM1117-3.3,depending on jumper config.

Concluding,
Its going to be a chip+power with GPIOs broken out to headers.Low cost,simple to use,simple to re-design for custom implementation.


No comments:

Post a Comment