Saturday, December 10, 2011

PSoC3 Custom Board - USB Routing and Crystals

Its been some time since I posted about the above titled project,so heres the latest:

With the layout close to satisfaction,things finally seemed to be heading for a fabrication order.So far,all the thought that had gone toward the USB signals was only to keep 'em differentially routed.Turns out,its much more than that.I went through the USB design guidelines from usb.org(PDF) and found that my USB design lacked a fair bit.
Theres a handy checklist at the end(Page 17/19) of that PDF,which gives you clear points that you should evaluate your design on.Two main points I found for my design were,
  • Crystal being too close to USB lines:Infact,they were almost under the crystal,(if there would be a crystal soldered in )so this would cause issues for the high speed(yes,I know the PSoC3 USB module is Full Speed,not High Speed.) D+,D- data lines.
    • So this would definitely need some change.Based on the recommendation from the Design Engineers(at Cypress) I was in contact with on this,I decided to swap the crystal and its load capacitor setup for a SMD resonator from Murata,(specifically this one).Element14 India showed its cost to be a mere INR 7,so I happily made the consequent changes. 
    • Problem with this was,Element14(in India) doesn't directly sell to consumers,but does so via KitsNSpares,which unfortunately does not carry this part.I knew it was too good(and tiny!) to be true.
    • I referred to the existing board designs,and there was one thing I noticed across all those,was the absence of an external crystal (Except the CY8CKIT-030). Now,for accurate digital clocking a crystal is definitely recommended,but the PSoC3's internal clocking is robust enough for USB,and since this is for student and hobby level projects/learning,(and not meant to be designed into the next scope from Tektronix,I decided to skip the crystal totally.)
    • So,before I talk about the next point,conclusion is,No external crystal.That said,I have kept a 3 pin through hole resonator on the board instead,but that not intended for active use(atleast as of now),just to satisfy my curiosity on the 'what if..' of its presence.
  •  Ground Planes and Impedance of the USB lines:
    • The USB spec recommends 90 ohm differential impedance(+/-15%),and also a continuous ground plane beneath the data lines.My design didnt have either.
    • I hunted around for some impedance calculators to estimate those values for my traces,but couldn't get very far with this,since I don't know much about the board's physical conditions,and even trying out "working configurations"(7.5mil width seperated by 7.5mil,as I read someplace..) didnt give expected values.Looking back to existing USB based boards and designs,I noticed very few seemed to worry about USB routing guidelines.I wont name examples here,but for a particular case,I was surprised it worked,since it violated a lot many of these guidelines.But it works,and very well.So I'm gonna cross my fingers and let the design fix itself.Kidding,but in my case,not only are the traces short,and stay on the same layer,with a continuous ground plane beneath,with little high frequency noise,so I assume it should work out okay.
    • For the requirement of a continuous power plane beneath the data lines,I ripped out the traces to P12[0] and P12[1],sacrificing them for better(?) USB performance.
So that was a quick look into the recent changes on this board.

There is still a lot that can be changed and made tinier,but the current decisions in parts and their packages are made on the basis of my confidence in their local availability.As I hit the streets for parts soon,I hope to broaden my know of the components available,so I can incorporate them into future changes.
If you have affordable access(read no shipping or heavy import duties) from parts sourced from places like Mouser,Digi-key etc,feel free to use that luxury to better this board's design and layout.

Here are the latest files,linked over from the forum post at DangerousPrototypes.com

5 comments:

  1. Thanks! .. thrilled that you feel so :-)

    ReplyDelete
  2. This is very fine. Thanks to share..............

    Crystal Custom

    ReplyDelete
  3. The frequency is a function of the thickness of the crystal. By carefully polishing or lapping a crystal, it can be made to oscillate at any frequency.

    Crystal Custom

    ReplyDelete
  4. Great post! It’s something I have never thought about, really, but it makes a whole lot of sense.
    Crystal Custom
    Promotional Sunglasses
    Promo Sunglasses

    ReplyDelete