PCB layout - DaveBMW

From DIY contraptions to sophisticated FreeEMS-specific designs! Plus general hardware development!
davebmw
LQFP144 - On Top Of The Game
Posts: 331
Joined: Sun Jul 13, 2008 2:58 pm
Location: South Wales, UK

Re: PCB layout

Post by davebmw »

jharvey wrote:
davebmw wrote:Is there a table somewhere that indicates what cpu pins perform what function? I am at the point where I need to route the CPU to the outside world.
Awesome. I'm curious what your putting down. Are you doing a spin of the one I drafted, or are you doing an addon of some sort? Perhaps a connector card?

I'd be happy to review and comment if you post something I can check out.
Cool I have attached what I'm working on.
The Root is the cpu section of the board which at the moment will have the 2 x 50 way headers for access to the CPU ports for expansion or for connecting the TA card and leave the cpu section unpopulated.
At the moment though the autorouter in KiCAD will not route the required number of nets in the footprint used by the TA card.
So I have access to Mentor graphics PADS suite which is a full blown pro PCB package, its a hell of a beast so its taking me some time to self teach.
The injector and COP drive sections are almost complete requiring just annotation.
The digital and analogue input sections I was going to use basic over-voltage and reverse protection for the digital and similar for the analogue. maybe some opto couplers in there too.
The PSU section shows 2 regulated supplies one digital and one analogue with a shutdown line for the cpu to kill the power to the sensors and drives during shutdown and or programming.
The connector hasn't been filled in as its what i'm working on now, the bosch 88 way connector has the most odd mix of pitches around.
on a side note i'm working on a 144 pin option also but it will mean that the 2 x 50 way headers may disappear due to track density around the CPU.

Any suggestions/observations please fire away.
Attachments
FreeEMS_Alternate_ending.zip
(67.79 KiB) Downloaded 798 times
93'BMW 325is M50B25TU, Rebuilt 06/06, JE10.5:1, polish&port. Scorpion BB, K&N CAI, TEJ21 WBO2, '07 M3 Evo 18" 225F, 255R, EBC Kevlar, Bilstien Sprint, Polyflex. Head rebuild Oct'08, OEM+FSE FPR, MS2v3.0_DJB Custom, Extra 2.0.1
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: PCB layout

Post by Fred »

I dunno why you are calling it the "ending". Anything you or Jared or I or Sean work on is almost certainly just the beginning! :-)
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: PCB layout

Post by jharvey »

Nice, and I look forward to taking a look. Also I don't think it's an alternate ending, It's more like a choose your own adventure.

I don't currently have access to PAD's, but I can go up the hill to an old employer and regain access, if I need it. They maintain a copy of PAD's for businness, and I'm still on good terms with my old boss, so I'm sure he'd let me fire it up to take a peak. I can't look at it right now, but will probably later this evening. I hope you added PDF's in there, so we can look it over with out the specail soft.

I have to admit, that I liked some of the feature of PAD's, but disliked others. My home PC only has one screen :( so I can't compare the way net's high light in KICAD, but I remember that feature from PAD's and it was nice. It would light up on the schematic as well as on the PCB. As for autorouters, I don't think a good autorouter can exist. They simply don't know what's best. Some of the on the fly DRC was nice, but often I'd want to place a trace that I know violates the DRC stuff, then push the other parts around until it was good to go. I found the auto DRC was a pain because of that. My biggest biff with PADs was trying to turn off the automatic stuff I didn't want which increased the learning curve significantly. Other than that it was quite good.
davebmw
LQFP144 - On Top Of The Game
Posts: 331
Joined: Sun Jul 13, 2008 2:58 pm
Location: South Wales, UK

Re: PCB layout

Post by davebmw »

oh i didn't mean it as an ending I just didn't want to put V2 after it as its an alternative and in no way would I want to be presumptuous to say its an improvement.
How about Type B instead??

Yes I understand what you mean about the DRC being a bit of a pain, but the version I have access to has a rather cool push routing feature that comes in handy for the majority of nets that I route manually, i just like the advanced autorouting options as a fall back to shuffle about the parts that don't matter and run the stuff I overlook or don't make provision for.

I tell you what though it has a massive library, just trying to make custom components is quite complex to say the least.

I always run a dual head system at work and at home, I like the flexibility.
93'BMW 325is M50B25TU, Rebuilt 06/06, JE10.5:1, polish&port. Scorpion BB, K&N CAI, TEJ21 WBO2, '07 M3 Evo 18" 225F, 255R, EBC Kevlar, Bilstien Sprint, Polyflex. Head rebuild Oct'08, OEM+FSE FPR, MS2v3.0_DJB Custom, Extra 2.0.1
davebmw
LQFP144 - On Top Of The Game
Posts: 331
Joined: Sun Jul 13, 2008 2:58 pm
Location: South Wales, UK

Re: PCB layout

Post by davebmw »

Oh PS its not a real professionally structured release like yours its just the KiCAD project folder, there are no PDF files and no fear of running into specialist gerber files. Just KiCAD ;)
93'BMW 325is M50B25TU, Rebuilt 06/06, JE10.5:1, polish&port. Scorpion BB, K&N CAI, TEJ21 WBO2, '07 M3 Evo 18" 225F, 255R, EBC Kevlar, Bilstien Sprint, Polyflex. Head rebuild Oct'08, OEM+FSE FPR, MS2v3.0_DJB Custom, Extra 2.0.1
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

PCB layout - DaveBMW

Post by jharvey »

davebmw wrote:Any suggestions/observations please fire away.
A great start. Here are some general notes.

-- You can print both schematic and the board layout to post script, then use a program called ps2pdf to make it a pdf. If you don't want to install ps2pdf you can also use http://ps2pdf.com/convert.htm with out having to install software. My home computer came with Acrobat, I use that to merge the pdf together, but I know there is another way to do it, I had a solution, so I did it that way.

-- I encourage you to not use the power ports, but feel free to try them. I still don't quite under stand the rules that follow them. I found the nets on the PCB were a bit mangled up. If you figure them out, please let me know, I would like to be less ignorant on that topic.

-- Perhaps I should have used a revision sequence like this freeEMS 1.(official release)_(version).(minor release)_(P is for PCB).(minor release) So mine is freeEMS 1, version A, minor release 19 like this freeEMS_1.00_A.19 yours would be something like this freeEMS_1.00_B.01. Hmmm, not sure I like the A and B thing. Your right it does have implications that it's a newer version of the same, which is miss leading because it's completely different. Perhaps we should change that to our initial or something. Kind of hard to change mine, perhaps we can change yours to freeEMS_1.00_TypeB.01. I'm flexible here, thoughts?

Now for specifics.

In, 3wirePWM, I see a 2 pin connector, I'm guessing the third wire goes from the battery straight (or relayed) to the injector. Just wondering where the third wire is. I'd say the NPN's are controlling the current through FET's. However it appears this isn't PWM anymore, perhaps has migrated as time went on. I've got an idea of how to use a hall sensor and VCO for a switching current control, but haven't gotten to sketch it up yet.

The idea I've been thinking about does switched current control, using a hall to create an analog voltage based on current, connected to a VCO that creates a square wave going to the switching FET charging and discharging the injector coil very quickly. So when current is getting lower then the threshold, the top side FET turns on saturated. The injector coil at this point is not fully charged so it starts to charge at the normal LR curve. After about .5ms, current will be above the threshold and the top side fet will turn off. I guess current then would flow through a snubber diode, until the current dropped again. Then on the switch would go, restarting the cycle. If done right, you could have a bit of over shoot on the start up allowing for a current curve very similar to a peak and hold curve. I was thinking of using this hall http://www.allegromicro.com/en/Products ... e/3506.pdf however it's discontinued. I don't plan on making progress on sketching this idea up, so feel free to take a stab at it.

In coil drive I'm seeing the VR is you coil input? I don't quite follow. Is the MOSFET an over voltage protected device like the PIP? Perhaps the bus is for snubber caps or diodes. I don't fully understand diodesch.

In injector drive, what's the bias voltage of the NPN. It might require the resistor to be to large for the 1 amp (plus) to run through it. I'm seeing that NPN with two possibilities. One is to shut off in an over current situation, another it to perhaps help increase isolation attempting to keep the digital signal in spec. The function depends on the resistance value chosen for the low side resistor.

In power, I think you may want a P channel not an N channel on the input. Also the P channel is typically put in 180 from how you have it. If that was the intent, I would see it protecting against reverse voltage. As I see it now, you would have to signal it with a voltage above 12 - 14 V to turn it on. You may want to add the third output cap, I know many folks put it closer to the CPU or what ever chip, but I feel it really helps keep RF off the board when put at t reg, then the one at the CPU is less needed. Still installed but not needed as much.

Looks like, you're like me, and confused about the second switched 12V. I think that was intended to separate the dirty switched 12V and clean switched 12V. However, the dirty switched 12V should run directly to the injectors, coils ect. I think Fred was thinking about that for some of the more unique vehicles where you might not have it switched that way.

In XDP CPU I got an error, then it popped up with out the symbols. Not sure what happened there.

I had a couple that didn't work, appeared like a couple blank pages for future growth / plans.

All in all, I'd say it's a great start and a splendid work in progress. Keep it up.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: PCB layout - DaveBMW

Post by Fred »

The other thread was getting quite long so I've split it off to keep the discussions separate. I hope you guys don't mind. If any posts look out of place, let me know.

Cheers,

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
davebmw
LQFP144 - On Top Of The Game
Posts: 331
Joined: Sun Jul 13, 2008 2:58 pm
Location: South Wales, UK

Re: PCB layout - DaveBMW

Post by davebmw »

Hi gent's, OK sorry if this is a bit jumbled i'm writing it on my phone, as i'm at my sisters birthday party.

Ok firstly the 3 wire pwm pin 2 is connected to 12v via the main relay, the pwm signal is inverted to compliment the non inverted and provides push pull. This does work on the car and i'm using it on ms2.

Next the injector drive has over current protection this design is for hi-z injectors at the moment.

The revision of the design i sent has a half completed version of the coil pack drive. I have been working on a way to use mosfet's not the ignition igbt's that are expensive and quite fragile.
My idea uses a mosfet, shottky diode and transorb to prevent the spike from killing the mosfet and as far as the coilpack is concerned it has the freedom to do what it want's. It is also working in the car on MS2 after Fred advised me that the reverse body diode in the MOSFET upsets the spark.
This design (which I will post an updated version over the next couple of days) allows you to apply 12V to the coilpack but remains inert upto 1000V reverse spike, so it shouldn't upset the spark or dwell charging effect of the inductance. Plus it uses readily available parts that are cheap and free from obsolescence (for now) also the transorb provides controlled dissipation of potentially damaging back EMF.

In the power section i'm most likely to scrap the mosfet and go with a 5 pin LDO regulator with shutdown pin.

The digital and analogue sections are work in progress at the moment but will be simple input protection a VR circuit and noise filtering as appropriate.

I'm also looking into knock sensing but thats not for this release yet. Hope that fills some gaps :)

OK I have edited it now I'm home to make a little more sense.
93'BMW 325is M50B25TU, Rebuilt 06/06, JE10.5:1, polish&port. Scorpion BB, K&N CAI, TEJ21 WBO2, '07 M3 Evo 18" 225F, 255R, EBC Kevlar, Bilstien Sprint, Polyflex. Head rebuild Oct'08, OEM+FSE FPR, MS2v3.0_DJB Custom, Extra 2.0.1
davebmw
LQFP144 - On Top Of The Game
Posts: 331
Joined: Sun Jul 13, 2008 2:58 pm
Location: South Wales, UK

Re: PCB layout - DaveBMW

Post by davebmw »

I have edited my earlier post written on a mobile to include a bit more detail.

as far as the missing symbols goes I had to make some specials in the library, in the official release I will have to find a way to include all the modules and libraries too. I may need some education on that.
93'BMW 325is M50B25TU, Rebuilt 06/06, JE10.5:1, polish&port. Scorpion BB, K&N CAI, TEJ21 WBO2, '07 M3 Evo 18" 225F, 255R, EBC Kevlar, Bilstien Sprint, Polyflex. Head rebuild Oct'08, OEM+FSE FPR, MS2v3.0_DJB Custom, Extra 2.0.1
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: PCB layout - DaveBMW

Post by jharvey »

I recall that in the "library editor" the symbols can be included in two ways. One is the way you might expect, but it saves them to the standard library, the other way doesn't jump out at you as much, but allows you to save custom symbols to the project directory. Both ways use different file extensions. So you can tell which is which by the file extension.

I seem to recall the export (white square green arrow icon) allowed you to include it in the project folder. If not I found that note in the help file, so you can always use that as a better reference then I.

I included them as a file call freeEMS_lib.
Post Reply