Wanting to built a breakout for the PIC24f256 in a 100 pin TQFT package to play around with, a came across the fact that most microchip devices taht have a usb and are in the tqfo 100 pack , use exactly the same pins for basic setup.
VDD, VSS,AVDD, AVSS, VCORE, ICSP, and USB pins are all the same, so the board I was making for the pic 24, is usable with pic32, dspic33s as well.
the board is setup so all the component other then the pic and usb are on the bottom layer, to make it easy to route and solder the pic. Added bonus is that it could be manufactured with only the pic unpopulated, thus instantly having a working breakout for any of those listed microchip devices.
sign me up for few :D
this is very cool idea.
Nice idea, many problems to fix:
1) You have no solder mask exclusion for the leads on your TQFP-100 package
2) X1 overlaps with C10 & C11
3) X2 overlaps with C12 & C13
4) Your USB connector appears to have sheild pads yet they are not connected to ground.
5) The USB connector is effectively on the bottom side of the board (from switches/LEDs). Not sure if this was intentional
6) The pin 1 markers on the main headers are mostly obscured by pads and the header itself once mounted. And there isn't a pin 1 indicator for the programming header. Also note that unless you stuff the headers downward, which maybe your intent, the pin-outs will be mirrored.
7) Most of your silk screen names are clipped by pads - especially on the LED/switch side.
8) Not sure why some of your informational silk screen text is on one side and the rest is on the other when there is lots of real-estate left on both sides.
9) I'm not sure what output voltage the LDO puts out or what the forward drop is across your LEDs, but 2K seems a bit high for your current limiting resistors. That will give 1.5 mA assuming a 5V supply and 2V drop; even lower for 3.3 VCC. Recheck your LED data sheet.
10) I would move R1 on the schematic to where MCLR enters the IC. That way it's evident that it is normally pulled up externally right where the net is primarily used.
11) Use 2x20 pin headers. They are way more common than 2x19
I stopped looking after that.
Here's what it would look like as-is:
Thanks a lot, I will look into the things you've mentioned and post updates. I really appreciate you taking your time to review this board
I made most of the changes, here is the point by point review.
1. The package I chose was all wrong, not only did it not have the soldermask, but it was also the wron size, thanks for pointing me there, otherwise I would have missed it, because the real part is smaller the whole board was rerouted :(
2.3. my drc didn't catch those, thanks,
4.5. that's intentional.
6. I only used those markers to assist me in routing, better ones will be placed
7. those are fixed now, thanks for pointing it out.
8. that's intentional
9. this will be fixed, I only used generic resistors I copied all over the board, I will change the values.
10. I agree.
11. Its a design thing ( to keep the overall board size below 5cm either way), and it is easy to chop off 2 pins of a 2x20 header to make it 2x19..
*All in all your help has been invaluable, I really appreciate it.
Glad I could be of help. BTW, It looks better now with tinted vias. :)
I'm still a little bit confused on the orientation. It looks like your intent is to pin the headers up from the PIC/USB side then have the LEDs and reset switch upside down on the bottom. Wouldn't it work better if you via'd up for the switch and LEDs then you would have everything that mattered to the user on one side?
via'd up for the switch and LEDs then you would have everything that mattered to the user on one side
I like that too. It is a bit of a catch. If it is user assembled (as this will be) then it is no problem to make the switch. If it is manufactured (without USB because not all PICs are USB) then two sides is more costly.
I suggest putting them on the top fro now though, because this is intended for hand assembly and your point about accessibility is good.
having reset switch and leds on the underside of the module would not be very useful. Better leave a trough hole 0.1" for them so one can solder whatever one likes (jumper or led or nothing ...)
Well the initial idea was to have the LEDs and button, side facing. But in a hurry I decided for V1 it would be best to use regular components. Because it will be first for testing/debugging, just to see if it actually works, although I don't see why it shouldn't
I'll rework them for trough hole tackle switch and .1 sil LEDs(trough hole) like arhi suggested.
Here is the latest pcb, I changed the 603 components to 805s, cleared up the USB lines, and removed some vias around crystals. Also I added a solder jumper to the ENVREG pin, Ian pointed out that some PICs might require gnd on that pin, while others require VDD. It doesn't need to be a real trough hole jumper since once the pic is soldered only one position will be used.
You don't have to use different components. The switch is a short to ground, so just via the MCLR line up to the top side and put the switch in the same location only flipped. The leds are the same. Route through your current limiting resistors on the bottom first then single vias up to one side of the chip leds and the other to the ground plane. 4 extra vias, everything is on the top side and the BOM doesn't change.
Another render
I did that, tried with the PTH parts, but they just didn't fit.
Here is a little render I did :) I should have probably used a red-er color for the pcb, oh well. BTW all the pins of the tqfp are aligned on the render :)
*If anyone wants the Sketch-up .skp file PM me.
This is really good stuff!
I have a couple of questions regarding the PCB top and bottom views you've posted.How did you make those? Also,3D render in sketch-up looks cool too,thanks for reminding me to try it for my board.
(http://http://dangerousprototypes.com/forum/viewtopic.php?f=56&p=29617#p29611 )
yeah alanh I'd also like to know which script or ulp are you using to export those images
Script? too easy. I just exported like 6 pngs from eagle then used them as masks to fill a bunch of layers in photoshop/gimp. I supposed I could automate some of it. But it doesn't take long as is.
V1 done, I decided to place the button and leds on both sides of the board, that way everyone is happy :)
Here are the latest PCB and Schematic files.
V2 could be done as a single in line package, for easier breadboard use. Once I do some research I might do a 64 pin version as well, if enough of the PICs are compatible with each other.
*One note this board does not support pic18F in tqfp100 packages
Some updates:
I checked datasheet for pic32s and pic24FJ.
PIC32s all chips in tqfp100 pack are supported by this board, only the ICSP PGD and PGC pins are not connected to ICSP header, they are connected to the side headers though.
PIC24FJ all chips in tqfp100 packs are fully supported. ICSP is connected here.
PS. my initial idea was to make it fro pic24fj and I chose to break out the PGD3 and PGC3 pins to the ICSP header, unfortunately PIC32s don't have PGD3 and PGC3 pins.
EagleUp already automates all the Eagle to SketchUp exporting. Maybe wou want to take a look:
http://dangerousprototypes.com/2011/07/ ... -sketchup/ (http://dangerousprototypes.com/2011/07/23/eagleup-brings-pcbs-to-google-sketchup/)
Very interesting BreakOut board !!
Will be even better maybe with Arduino connector compatibility.
Anyway I plan to buy/test your card when it will be ready !! (my UBW32 is a bit too long).
Best Regards
Benjamin
The board has been recently tested with a pic24fj256gb210 part on it...It works like a charm....I will soon be tested on a dspi33ej512mu810 as well...
Here are some updates that are required on the board...
The movement of Pgd and Pgc pins to pgd1 and pgc1....
Bigger power supply part (800mA instead of the 150mA)
The osc crystal needs to be changed for the more common h49 like crystal..
passed the dsPIC33EP512MU810 test as well, one annoyance, the pickit3 standalone app doesn't support the E type devices, so I had to test it in MPlab 8...my Mplap x is acting up, I need to reinstall the java probably
Nice work!
He,he.This was my first soldering job on anything smaller then soic, and its a 100 pin 0.4mm pitch device. I tested them by programming a blinky LED test firmware. You can imagine my surprise when the LED started blinking on my first try.
Pictures or it didn't happen!
there is a post under way today with a pic of a PWR led and a pin LED lighted up..but here is the preview
To be totally honest it started working on the pic24F immediately, because for it the ICSP is connected to the right pins. But when I tried to program the dsPIC33 I accidentally pushed 5V instead of 3.3 for a couple of seconds into it... and it kept reading the device ID as 000000 after that... I though I fried it. But instead I just connected the data and clock wires to the wrong breakouts :) after i figured that out it worked like a charm.
I used MPLABXs Binky demo for dsPIC33f device, I just changed the device to the one I used, changed the included header file to dspicE instead of dspicF, and the port from A to E, and whole Binky goodness :)
I found a serius flaw in the V2 design.. external supply diode is placed so that if anyone uses external supply, and USB at the same time, the external supply will pump voltage into the host....So beware anyone that ordered these boards from the Free PCB store...do not populate the external supply circuitry at all.
there is a hack on how you could add external supply..just power the board from the ICSP header. but make sure your power supply is limited to 3.3V.
Just a suggestion instead of routing to the headers the pins in numerical order would be best to route the ports in order, so for examples instead of have a header that goes from pin 10 to 17 you have a header that goes from portA0 to portA7, I know that will make much more difficult the routing process, but i think it's worth it, at least for some ports, for example PMP.
it is near to impossible to route ports in order on this high pin number devices unless you go to 4 layer board, and those are expensive. And even if you manage to get it the ground will not be there and there will be hell of a lot of via's .... since 24F has pin selector you can simply move what you need where you need it in firmware :)
It's a good idea, but to accomplish it on 2 layers would require a much bigger board, and as arhi mentioned it would look like a mess...Since the board is broken out to DILs you have to connect it via female jumpers...There are some awesome female to female jumpers from seed, they come in 20 pin colored cable (10 different colors) and all the pins are separated so you can split it into lets say 8 or 16 pins and connect them on the board...the other end would have all the pins in order, I know its not perfect but it will work. Thanks for the suggestion
Make that for all is impossible, but as I said for PMP can be done
well you might want PMP, I might want portA to be in same place, someone else might want something else... it's impossible to make everyone happy, I still think it's better to have good ground then anything else... especially on these high speed devices
I said PMP because who use it use normally 8 or 16 pin all together, but maybe is just me.
SJ1, EMI filter right?
SJ1 is a solder jumper
it is used to connect the ENVREG pin either to gnd or VCC depending on the PIC, check the datasheet, most if not all use VCC on the ENVREG, but plz check. Once you figure out what you need, you just solder the two pads of the SJ together. The center one is the ENVREG pin, the one farther from the USB is VCC....there should be a nice thick trace going into it...the GND pin is the one closest to the USB, and with a magnifying glass you can see its connected to GND.
One thing to note, under no circumstances use the external DC input, I messed up the schematic and PCB...use USB to power the board. or if you really have to use the external DC...never,never,never have both the USB and external conected together. If you pump 6V into the external while the USB is connected youll fry your mother board...
Thanks, for the answer. If a place a diode instead of the ferrite I should be able to use the DC_IN and the USB at the same time, no?.
yes, nice save :D, thanks
dont populate the T1 transistor or R3, cause they are useless.
too late. :D
now that I looked more closely they might be ok....
Regarding the oscillator capacitors, they are not a little bit large?, usually they are in pF not uF.
they were never specified, as they vary from crystal to crystal, but you are right they are pF.
Sorry this board started as my own pet project, and it turned into a DP thing later... V2 will address all my mishaps...
well, the board is ok, yes you miss a diode to protect the USB port but everything else is ok, you just have to correct the schematics with the right capacitor values.
there is also the slight issue of choosing pgd3 pgc3 pins for the ICSP, which are only available on pic24s...to program the rest you'd have to use the appropriate broken out pins....but its been tested on both PIC24 and dsPIC33ep so it should work for you as well...
also be sure to share pics of your build, you'll get another free PCB code :)
Will do, for the capacitors, 22pf for 32Khz and 12pf for 28Mhz should be fine.
Done!!!
Thanks AndThen
=( Because you used a 3rd party image host
=( because they spammed me with a popup!
=( because i think it stuck like that
jk ;-)
I think it's odd sized and shaped because of the off site host. Unless you can get the focus sharper this resolution is way to much
Hi arakis, do you have any working example for a 24f 100pin pic. I'm porting a 18f (hi-tech) project (LCD display) to 24fj26ga110 (C30), without success. Probably there is some register i'm not setting right. So if you have something done and you can share I'll really thankful.
Thanks.
[quote author="ginpb"]Hi arakis, do you have any working example for a 24f 100pin pic. I'm porting a 18f (hi-tech) project (LCD display) to 24fj26ga110 (C30), without success. Probably there is some register i'm not setting right. So if you have something done and you can share I'll really thankful.
Thanks.[/quote]
Sorry no firmware development has been done on the tqfp 100 boards,yet.
Are you using your own board, or our breakouts?
When I encounter a new chip, or an old one that is not working as I expect it, I just make a new project and slowly add stuff to it... testing along the way...
First the config bits, osc, TRIS, and just a simpel blink LED to check if it works, if it has USB, I add our stack to it, and check if that works as well...etc...
thanks arakis, I'm using your BB, however apparently is the LCD, I tested it on the working project and nothing. I'm gonna buy another one or maybe just a different one, don't know yet.
Thanks.
Greetings everyone,
Are Gerbers available for the v2 board?
TIA. Happy Holidays and cheerful regards, Mike
[quote author="McLaren"]Greetings everyone,
Are Gerbers available for the v2 board?
TIA. Happy Holidays and cheerful regards, Mike[/quote]
We just added it to our SVN, here's the link
http://dangerous-prototypes-open-hardwa ... /hardware/ (http://dangerous-prototypes-open-hardware.googlecode.com/svn/trunk/Breakout_Boards/PIC_TQFP100_breakout/hardware/)
Greetings,
I'm about to start making my first PCB board, around the PIC24FJ128GC010. This is also my first experience with PIC microcontrollers. Im making a dataglove so I will make some slight changes to the PCB layout.
In my case I will only ever power it through USB, and will also use USB to transmit the 10 MSps to the computer. I wonder if I need the primary & secondary oscillator at all? what are advantages and disadvantages of using external oscillator? Will it be possible to communicate over USB without external oscillator? I am reading section 9 of the PIC24FJ128GC010 family datasheet and section 6 (39700c) of the PIC24F reference manual (both are titled Oscillator, the latter more detailed but general, the former more specific for this chip).
can I simply leave the crystals unpopulated, and roll with the default (for erased chips) internal oscillator?
I am also confused about the Clock Diagram: two outgoing clock lines are named "Peripherals" and "Clock Source Option for Other Modules". What is the difference between Peripherals and Modules? or does Other Modules refer to other chips?
thanks ahead!