Puma board for FreeEMS

Marcos' unmaintained, but still in-use, Puma for FreeEMS circuit board/hardware design!
User avatar
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

jharvey wrote:Having GND leave from a common place on the PCB prevents gnd loops and lowers the noise floor.
Thats true, try to keep the gnd connections in the board close to each other and keep the ground cables together to minimize ground loops.

Between the BDM and the zone of the TO220 reg is the best spot to put a ground connection(s).
Marcos
User avatar
Fred
Moderator
Posts: 15433
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

nitrousnrg wrote:
As far as getting an accurate battery voltage, can't you just measure it during a "quiet" time (whenever there is minimal current - i.e. no injectors firing)?
I woke op in the middle of the night saying "es buena!" (its a good idea!)
Wait, I see a problem with this, the word "just". To sample like that would be fairly complex at best, and plain wrong when the correct approach is to eliminate the problem via good design. Doing fancy sampling, using overly big wires, filtering a lot, running excess corrections, etc, are all the same as banning fireworks because someone got burned. Patches! Better to fix the problem at the source. Mucho mejor!...
I suggest to wire grounds to pins labeled as GND. The 40 pin header has some of them, there are a couple more in the (kind of) header next to the bdm connector. The bdm connector has a ground pin too.

Its better not to use the 40pin header. Thats an analog plane and if you take gnd from it, high currents will be travelling through sensitive parts of the board. Not sure if you have the through hole capacitors populated, but those would be good ground sources too.
That is my point, I need to know WHICH grounds to connect to WHICH wires in my loom, because (HOPEFULLY) they aren't all the same... and you have the high current ones totally isolated from the cpu and sensor stuff. You had better, anyway, or its no better than a megasquirt...

If there aren't sufficient grounds available for what is needed (bdm, capacitor pins, etc are not acceptable in a final product) then they should be added. They should also be labeled clearly as being either dirty or clean. Instead of GND perhaps GDC and GDD or maybe GNC and GND? something unique.
Again, I encourage you to use kicad, you could highlight the GND net and see clearly where you have gnd pads :-)
I encourage you to treat me like a dumb user, despite the fact that I'm not. I've not been reading SeanK's loader source or MTX source or any other source I interact with, either. Grounding particulars are details that need documenting.

jharvey wrote:I agree that the gnd should leave the PCB from one common area of the PCB.
This sentence is broken. There are two completely separate grounds on the board, and if there are not, then spin 1 was a fundamental failure. Therefore "the" is not a valid specifier for "ground". Megasquirt is fcuked because they have a "the ground" which is very wrong for many reasons. NO oem ECUs ever ever have one ground.
I think MS is a good example of why multi gnd paths are bad. I seem to recall davebmw wrote an extensive gnd modification procedure to fix MS gnds.
As much as I know what you mean, I'm not sure you're clear on what he did to fix it, and what the main problem was. What he did was isolate some grounds from others. MS has multi wires from one pcb point to one ground point, however it should have two separate grounds with N wires each. It does not, and it fails for it.
nitrousnrg wrote:
jharvey wrote:Having GND leave from a common place on the PCB prevents gnd loops and lowers the noise floor.
Thats true, try to keep the gnd connections in the board close to each other and keep the ground cables together to minimize ground loops.

Between the BDM and the zone of the TO220 reg is the best spot to put a ground connection(s).
OK, here's the thing, there will be a bunch of separate grounds connecting up. They will be grouped as follows:

Ground supply for heavy switching - dirty, injector drivers, fuel pump driver, ign drivers, gp drivers - conceptually seen as flowing into the box
Ground supply for cpu/sensors - clean, only handles cpu power draw and tps and map sensor, etc - conceptually seen as flowing into the box
Ground source for external sensors - clean, handles CAS ground, TPS ground, IAT ground, CHT ground, etc - conceptually seen as flowing out of the box

The second and third ones should connect to the same plane/location/circuit. The first one should be separate and isolated.

I need to know which pins are which, and I'd like to do it live in chat so I can fire questions at you as we go. If that's not possible, OK, but that's what I want.

I can find grounds, no problem, but I want to find the RIGHT grounds...

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!
User avatar
Fred
Moderator
Posts: 15433
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

Nevermind, you've done well, they are split, and I know what is what. There are no where near enough connections for the dirty ground, though.

I just grabbed a blank board and probed it with the beeper on for a minute, sorted.

Suggestion (will ease routing too...) :

group the igniton and GP drive grounds into a few pins on the ign side
group the injection and fuel pump grounds into a few pins on the fuel side
then get really smart/fancy and leave them split out into their own loom ground leads just like the freeems wiring diagram! :-o

The clean ground has LOTS of connections. I'll supply it through the two at the end of the ign connection strip, and take various sensor feeds out of the dual header grounds. If this is wrong tell me so, but it looks to be ideal. ground comes in close to regulators and leaves close to sensors, perfect.

Now, other than the single dirty ground pin at the far end of that same single ign strip, where can I connect dirty ground wires? I don't really need much, only 3 fets running and not a lot of load, but it'd still be nice to make it a good setup.

Getting closer! :-)

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!
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: Puma board for FreeEMS

Post by jharvey »

Just made mini connector footprint and pushed. Molex is kind enough to offer a step file, so I was able to make a real sexy 3D image of it. Picture is click-able for a larger view.

Image

Looks like Marcos was working on the USB stuff. So I didn't put it in the schematic properties, or the layout. All I did was create the footprint. I know the pin-out will have to be looked at, this connector has 5 pins, not 4. I'm not sure why these mini's have 5, but they do.
User avatar
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

Fred wrote:The clean ground has LOTS of connections. I'll supply it through the two at the end of the ign connection strip, and take various sensor feeds out of the dual header grounds. If this is wrong tell me so, but it looks to be ideal. ground comes in close to regulators and leaves close to sensors, perfect.

Now, other than the single dirty ground pin at the far end of that same single ign strip, where can I connect dirty ground wires? I don't really need much, only 3 fets running and not a lot of load, but it'd still be nice to make it a good setup.
Use the header to supply ground to your sensors. Ground the board at the end of the pin strip for low power, digital things.

For high current, yes, there is only one, that's why I was saying it needs more pins to ground. Given that you won't use the stepper driver, R218 and R220 are connected to the power ground, you can drill the pads or use the vias (warning: too small) next to the resistors. Those vias are ground.

Cool Jared, thats a nice render :-)
About the 5 pins vs 4 pins, íts not a big deal. The difference is the 4th pin, with is grounded in a mini A, NC in mini B.
http://en.wikipedia.org/wiki/Universal_ ... appearance
Marcos
User avatar
nitrousnrg
LQFP144 - On Top Of The Game
Posts: 468
Joined: Tue Jun 24, 2008 5:31 pm

Re: Puma board for FreeEMS

Post by nitrousnrg »

Oh, you're not using 4 injector circuits. You can wire your power grounds to the inner pad of the current sense resistors. They're the only components in the back side of the board.
Marcos
User avatar
Fred
Moderator
Posts: 15433
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Puma board for FreeEMS

Post by Fred »

nitrousnrg wrote:Oh, you're not using 4 injector circuits. You can wire your power grounds to the inner pad of the current sense resistors. They're the only components in the back side of the board.
Yep, good point, I'm only use 2, though, but I populated four for the future and for mounting the pcb... I'm all sorted now. Shower, then into it, should have it running today, with some luck.

PS, I uploaded a few pics, but you'll have to beg me, I did it for motivation for Sean, but you and Jared and Dave can get a sneak preview too, no linking others, though :-)

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!
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: Puma board for FreeEMS

Post by jharvey »

currently digiprotects are signal, 1k resistor, 5.1v zener, 1k resistor, cpu - and this is not really OK.
With digiprotect on an input like the RPM circuits, the MCU should be very high impedance? I believe it should be around 1Mohm. I believe the 1.6K is for an output. While the 2K impedance of the digiprotect might be a bit high, it shouldn't be that far off. The 1.6k is the min, so we aimed a bit high to ensure we were in spec, but not over the line. Has the MCU input been left as a low impedance? It was expected high impedance.
The resistor OUTSIDE the zener should be as low as possible without burning things up with 15v connected. The inside one can remain 1k, though.
So with 15.1v in, we would drop around 10v across the resistor. A 1k resistor will dissipate .1 watt, out of the .125 it's designed for. So I believe 1k is about as low as this can go.
In the case where there is a buffer of some other sort, IE, the max chip, the zener is not required, saving two components as a single resistor of 1.6k is sufficient for the event of cpu in output mode at 5v and input at 0v or vice versa.
I seem to recall that conflicts with prior specified design criteria. I recall, that for a a rugged reliable design we protected every used pin, to ensure the CPU can't get wacked, and damaged. If the CPU get's wacked, the entire board is likely toasted. These digiprotects shouldn't influence the normal operation, only the damaging conditions. If you want to save cost you don't have to include the components. It was left up to the assemblers choice if they wanted rugged or not. Sounds like the 5.1 is conducting lower than expected.
The problem tonight was caused by the weak drive of the max chip and associated weak pull up on the output of hte max chip then connected to the zener (with leakage) via 1k resistor, ie, 1k has stronger pull than 10k does and wins.

I saw 3.72v at the zener terminal.
The pullup is per datasheet, so the max should be able to pull it low at all times. However, if you saying that when the max is not pulling down, it's reading at 3.72 instead of 5V, that would mean the 5.1 zener is conducting and dropping the voltage. Either that, or the MCU is in low impedance instead of high impedance, and is creating the load. I'll have to go look at the datasheet for that zener. I didn't expect a 1ma load to drop the curve that much. Perhaps that zener needs to be bumped to to a 7v, or something similar.
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: Puma board for FreeEMS

Post by jharvey »

Looking at the datasheet for D24 (the 5v1 digiprotect diode on page 45 of the PDF), I see the absolute min voltage as 4.8v. Interpolation of the 5v6 diode, would indicate the voltage for a 1mA load should very close to 5V. Perhaps this was pushed a pinch to close to the limit, and perhaps we want to change to the 5v6 instead of 5v1, but that doesn't explain the 3.72.

To me it sounds like the MCU is leaking more current than expected. I guess I'll go verify the impedance range of the MCU.
User avatar
jharvey
1N4001 - Signed up
Posts: 1607
Joined: Tue Jun 10, 2008 5:17 pm

Re: Puma board for FreeEMS

Post by jharvey »

From page 1246 of the MCU data sheet, the MCU can have a pull down with a range from 25 to 55K.

So for the high side of a resistor divider, 5v - 3.72v = 1.28V 1.28v / 10k = .128mA.

Then for the lower side of the resistor divider it would have a resistance of 3.72v / .000128A = 29062 ohms. That's with in the 25k to 55k range.

Sounds like the MCU is set for an internal pull down.
Post Reply