CAN transceiver: inside v3: BMW S65/S68 version CanBus controlled throttle and idle valves
- 1.2.38 fw => MCP2515 CAN (240 or 120 Ohm termination depending on version) => BMW [Electronic Throttle Control]
- for RPM, TPS to dash, 2nd RS232 TX => [STM32F103/MCP2515]
- STM32 has internal CAN (we have working code for it, can be used later for multiple CAN busses), but MCP2515 modules are very practical (especially on some low-end STM32F103 when used simultaneously with USB log-file download to PC)
No layout changes scheduled for next batch, v3.8b name kept
PNP proposal:
- R30=18k (not 27k) more aggressive pullup at primary trigger VR
- better noise toleration, and signal amplitude is almost always enough
See GenBoard/UnderDevelopment/AnalogInputs
OLD, mostly HISTORICAL below
Developers used this page historically to take notes and lock the binaries for editing when there is developement, such as a new release.
This page is for onboard circuits and layout; New ways of using the board belongs to GenBoard/UnderDevelopment/FirmWare or their own topic (or OtherUses maybe).
PNP related
- U1 footprint (12.1 mm -> 12.0mm) - this kept sneaking for 4 versions
- C40=1uF (not 220nF: higher is better at very low frequency camsync, at low RPM cranking)
- R154=2k7
- primary LM1815 output pulse length is too long, appr 60usec (easy to make smaller, eg. 33k instead of 75k, will not do any harm). The margin is too low for the 135 tooth wheel, eg.at 6000 RPM: 10000 / 135 = 74 usec
- DONE: aref resistor 0 ohm trace
- DONE: proper transient footprint for SMB (and so preferrably the throughole could be populated at the same time)
Significant change - DROPPED
While this would cut down some manual work at assembly, it could cause problems with logistics, and there is some risk of unforeseeable effects.
- change to DPAK FETs and IGBTs aint work well with alubos
- if there are DPAKs on both top and bottom, 2 clamping plates can be connected with 2 3mm screws through 2 PCB drills. The clamping plate (at least on the bottom) could also have wings connected with 45 degrees connecting section that conducts heat to the Alubos.
- it must be verified how much heat we can drain through an Al plate touching the back of the DPAKs (interesting for VemsFrontier/ArmEfi as well)
Locking:
Files are stored in the developer file thingie and we all know the locking procedure.
As always: Not obeying the filename convention will result in lost work or extra work to find out what's going on.
- take care to start from the latest files (make note of intentional reverts)
- take care to zip and upload the correct file
- grid should be 10/1 or 5/1 mil? definitely not metric!
- Note that minimum drill size is 16 mil on this board
- please don't connect TPIC8101 integrate output to ADC6 but leave the "airwire" drc "error" - find TPIC8101 below
UnLocked Genboard v3.3. in SVN r555
Finalizing - make sure only bottom side changes and old components don't move because old top and cream will be used (and new bottom mask made)
- DONE: check GND under LCD header, on the bottom side "strengthen it" (we didn't watch this when adjusting the poly isolation earlier)
- DROPPED: consider 100k (or upto 1M) pulldown resistor on MAP input, so if external MAP sensor gets disconnected, adc reads 0. Eg. a 0805 or 0603 resistor (whichever fits) on the bottom side. This pulldown was not added to layout because for external MAP, a 0805 resistor can easily be soldered on the MAP header.
That should be all, the rest should be OK, maybe review doesn't hurt.
- DROPPED: (since we use a thick airwire anyway to strengthen GND5) check solder-protect layer, since it affects the solderpaste mask. At the long GND5 path on top, we have to add some "horizontal I" or "laid down V shaped" "solderprotect-belts" at the thicker GND5 sections: otherwise they close the whole GND5 path in the cream mask (so they don't need to close the whole window to prevent solderpaste mask fall to 2 pieces). Candidate places for thin horizontal solderprotect:
- 5175,2360
- 5065,3335
- 5120,3070
- EC36-pin8 to almost vertical direction
- DONE: only 2 airwires must remain (the good old flyrail and detached TPIC8101 integrate out - if in doubt, see TPIC8101 below)
- DONE: check: clearance at SMB flyback diodes (thicked flyback trace)
- DONE: add 78L05 for knock and PS2
- DONE: D101 raised i259 supply by one diode: BAW56 (common anode) or BAV99
- DONE: D100 more flyback: SMB (transient diode) between GND5 and flyrail
- DONE: redone SMB diodes so manufacturing can surely PNP them (formerly pads were 2512 1W resistors for DR flyback)
Todo:
- DONE: consider freeing the AVR ADC channel from TPIC8101. We'll never use the HIP9011 chip, and the reading through SPI makes so much more sense (I wonder why they provided this analog output in the TPIC8101 at all). Looks like no boardspace can be freed by this, especially no space that could be used for anything useful. I detached the TPIC8101 integrate output so ADC6 is usable for custom purpose without tracecut. For the (likely never ever) analog connection from TPIC to AVR a short blob is needed.
- PLEASE don't connect TPIC8101 integrate output to ADC6 but leave the "airwire" drc "error"
- DONE: dropped the L1,L2 small inductors between AREF and VCC and AVCC
- add a separate 78L05 for the PS2 keyboard and TPIC8101
- DONE: There is a small clearance fix needed at 3175 1750
- DONE: swap the GND-GND5 solderbridge to 2 antiparallel SMB diodes
- consider raising ign259 supply
- DONE D101 adding a diode under 78L05 GND. either BAV99 (SOT-23 3pin) or BAW56 (same footprint but common anode arrangement). Better than SOD80, even though SOD80 can also be picknplaced (fortunately: there are 2 5.1V SOD80 zeners used around the trigger clamping)
- or is there a 5.5V or 6V 78L06? that would be nice. Maybe buy 74AHCT259D (nope, this does not exist) for ign259 and drive from 6V
- DONE 150k series resistor in series with c38 to push down LM1815's adaptive arming threshold. The current circuit does the job almost as good as if the resistor was only connected to c38 - but the layout is nicer.
- DONE (TODO: check there is no overlap with other parts, eg. a 1206 cap.) Adding an SMB footprint transient protection diode parallel with the big one. The SMB could be 20V (populated in factory) while the big throughole 18V (manually populated, if at all)
- DONE: add flyback to WBO2 FETs. The near-EC18 DPAKs (DRIVE_A, DRIVE_B) are likely to be used for WBO2 heater in the future, so these can be useful for many tasks.
- DONE: D100 add 1..2 18..20V SMB transient protection diode from flyback path to GND5. there is plenty of free pads there that could be used, but adding an SMB transient protection diode just for this would be nice
- zener could protect from non-PWM-ing abuse
- or prove the user-error (not connecting flyback) for PWM-ing abuse (maybe it would save the FETs to, but keep injectors powered when ruined - it gets shorted).
- DONE add a drill for flyback airwire
- DROPPED ???? consider 47k pullup for TPS (makes idle or WOT switch easy, and simple to detect unconnected TPS)
- DROPPED: rotate MPX4250AP MAP sensor clockwise 10..15 degrees. This makes it easier to mount the hose in the standard way (connector between EC18 and EC36) and less stress on the sensor nipple. This sacrifices the bottom VEMS logo.
- Make a small simple MPX6400H daughterboard that is standing perpendicular to the PCB, supported by 3..6 throughole pins and some hotmelt glue. The MPX6400H is partially supported by the 5x3 mm hose (not the softest type).
Trigg2 input:
The somewhat strange layout of the trigg2 input is choosen to support the propriatory InputTrigger/AudiTrigger.
- connect the Audis VR TDC reference directly to the (secondary trigger's) LM1815 * connect Audi's CAM_HALL home signal to the trigg2 input
The conditioned VR signal and the HALL signal reach the MCU on the same (IC3) pin, as a "wired AND" gate: the HALL input will short (~mask out) the output from the LM1815 chip when they occur at the same time (yes, this is legal).
The VR TDC pin and the Hall Home signal occur at the same time every other revolution:
- the HALL goes low
- conditioned VR (LM1815 "RPO" output) goes high for a short (RC=64usec) time after the trigger high->low 0-crossing transition.
OLD below, moslty HISTORICAL
MCP2551 (compatible with others, such as AT6660) for networking between upcoming display and sensor boards
- pretend the atmega128 is at90can128 (we'll populate 100 atmega128 and 40+ at90can128 in v3.3 series) and wire for real CAN. This allows talking to big boards like v3.3, all ARM and everything except lowend. The below would be fake-CAN (CAN on physical layer, UART on link level), that would be good to talking 115200 to lowend (ATMEGA88 based) boards.
- DROPPED: replace DS2480B with differential transceiver (MCP2551). This means the not-so-many Ibutton users use v3.2 or connect the Ibutton indirectly, through a small atmega88 board like VemsFrontier/MiracleBoard with DS2480 and a differential transceiver)
- DROPPED: or replace max232 with smaller max3311 to gain space (only 1st UART can talk RS232, the 2nd cannot: this makes sense)
- DROPPED: or steal some of the top GND area (the SMB transient diode saves some space compared to the old thrughole) and add differential transceiver (MCP2551 SOIC8). That leaves 3 choices for 2nd UART: RS232 (MAX232) or 1wire (DS2480B) or differential (MCP2551): naturally only 1 usable at a time. A bit too flexible.
Plan was to make v3.3
- appr. 100 pieces with atmega128 (chips we already have)
- DROPPED: 40+ at90can128 (that we buy).
- pin14 and pin17 changes: it seems that timer2 and timer0 naming was just swapped (god knows why). Since we use them for very simple 50% and n% PWM outputs for wbo2 nernst pulsing and injector PWM-ing, there is no doubt it will work
- BODEN gone: in fact at90can128 has a more flexible brown-out-detector, check BODLEVEL
Firmware recompile (different released binary) would still be needed for the CAN uc.
Look for AVR096 at atmel.com (doc4313) and the datasheets for more info.
- DONE C44 dropped to shorten a step on GenBoard/Manual/ExhaustGasTemp. There is still SJ8, SJ9 SMD jumper that ground one of the sensor wires when an isolated sensor is used (always), so
- usually AD597 pins 1,3,4 are connected: grounding the EGT+ wire as in the datasheet.
- connecting AD597 pins 8,3,4 would work perfectly as well: which means grounding the EGT-. It is just not as handy concerning layout
- DONE in 247: Make preparations for propriatory audi trigger.
- DONE in 246: Add filter to Hall input (effective together with the internal HW noice canceller of the AVR)
- DONE in 246: Remove C44 and C55 from the EGT chips and hardwire the GND pins to V- instead. (This was a minor fuckup on v3.0-3.2 Was easy to jumper the capacitors to fix though.)
- DONE in 246: Add series resistor between C38, C40 and pin7 of their corresponding LM1815 chips. (lowers the arm threshold a bit.)
- DONE: move the 0805 cap between main regulator and transient protection diode (not breaking solderpaste mask, not populated anyway: we just close it's old pads-window). (DONE with the small change near MCP3208)
Manufacturing preparations - basically as before
We dropped the idea to transfer the files to the PNP machine fully digitally
- we just transform our cordinates to their like, (which means 1/100 mm resolution, referenced from the fiducial point)
- we print list-top.txt and list-bottom.txt (not unified top-bottom as in list-pnp.txt): they type coordinates into their machine, still faster than doing the teaching fully manually from the drawing. Appr. 180 0805 components...
- the BAV99, SMB diodes and chips need special care anyway.
- teaching will take just 215 * (50 sec instead of 120) this way
Picknplace related TODO
- DONE: R154
- DONE: 10uF 1206cap at LCD supply
- R1,R2,R3,R4,C1,C2 Missing and need to have values set (knock)
- DONE: R112=2k4 for -8V on the LCD header (actually it only makes appr. -3.4V possible on Jason's LCD, but that's enough)
FINAL CHEKCLIST:
- DONE: min drill size=16 (at some places - namely on VCC and GND the DRC complains, near AVR; these need to be neglected).
- add VEMS logo (prolly blue, next to PWMing resistors)
- place the small 12 width ("shorting") wire between GND and AGND where they are neighbors
- check solder-protect layer
- drc (without VEMS logo). 2 airwire and minor width and keepout at some point is known.
- make gerbers
- send in (Marcell)
somewhat later (after gerbers sent in):
- review values, prepare assembly (update bin/categories.pl and categories.txt )
why change?
v3.1 is very nice, and works very well. However stock is very low now, we should manufacture at least 90..105 v3.2 very soon: I already got the last pricy components for v3.2.
- some changes (no time to do these for v3.2 so remains for v3.3 as it seems) are induced by the possibly shift to the GenBoard/VerThree/CustomCNCCase
visibility of CAD files
Note that after GenBoard/VerThree stablized, there was a little change in eagle files visibility:
The schematics are on GenBoard/Manual/InitialTesting/VerThree (the PDF is searchable by component name), but the eagle is only used by the developers.
One can ask (eg. sometimes those who buy v3.x from WebShop ask).
Eagle version
Note that eagle 4.11r2 cannot open the file (complains about damaged file or something..), and eagle4.11 is not on cadsoft download site any longer. Someone uploaded a
- [ eagle4.11e Linux RPM] that is originally for redhat/suse, but I installed successfuly on Debian GNU Linux with the help of alien package
- [eagle4.11e win32]
- Working Cadsoft Links
[German 4.11 2003] |
[English 4.11 2003] |
v3.0 => v3.1 was mostly cosmetics, but the better clearance and the SMD inductors made the board nicer to work with.
Note that with r245 we started v3.3. Some tiny PCB changes - the unused fill-lobes were cleaned. You should start from recent v3.1 when populating sections, and only check layout on r176 when you find components missing from v3.0 (rare)
Preparations for 3.3 with surface mounted switches.
Unfortunately I have no internet connection when I write this. It's based on my local datasheets and paper literature.
You probably missed discussion about this: GenBoard/VerThree/CustomCNCCase
Let's continue here: GenBoard/PowerSwitcher
Ignition:
There is ignition igbt's in DPAK and D2PAK formats, DPAK seem a bit uncommon but ISL9V3040 is available as TO220, DPAK, D2PAK and TO262AA(TO220 with SMD flange).
There may be a problem with distributor application with surface mount IGBT's. An coil on plug application or waste spark application distribute the load and heat over several IGBT's. We may want to make room for one or two hole mount IGBT's for these applications.
If someone want to use the ignition fets for other applications a hole mount diode can be soldered from drain to vbatt to provide a low voltage flyback. Rare case, no need for us to bother. Let em hack. We only add flyback option where there is enough space (actually, there is space on the top side).
Injection:
I didn't find any DPAK FETs, but no worries, I only had two or three FET datasheets here while I had a bunch of IGBT data sheets. I'm sure that there is a ton of suitable FETs in DPAK package.
Provisions for flyback diodes is a must. I would like room for FAT hole mount components. I disagree. The FlyBack from SMB footprint diodes (and no resistors) work very nice. If someone wants PWMing and high voltage at the same time, he can do it with some external diodes. No need for throughole. That would partly kill the benefit of going to SMD-switches.
Do we want to add short circuit protection? I don't think so. (later, with the ARM: using similar circuitry as the 8 channel EGT).
Misc and Heater fets:
Only diode flyback. Short circuit protection?
D2PAK is a tight fit. It will probably work for IGBT and FET at the same time if we drop redundant components.
DPAK save a lot of space. It looks like we can easily fit everything. Surface mount components is mostly chilled by the footprint on the board and the smaller component leaves us room for more cooling surface. Cooling it by clamping something to the plastic of the component works better with D2PAK.
IRF7821 is a little SO-8 cased fet with amazing properties. Logic level control, MAX 12.5mOhm RDSon at 4.5Vgs, 30Vbr, 20C/W J-Drain lead, 50C/W j-ambient when mounted on 25square copper pattern, 11A continous with 70c ambient temp and before mentioned footprint. Slightly smaller footprint compared to DPAK.
Locking procedure
We store(d see the visibility notes above) the files as
- FULL_URL_PLEASE/genboardv31_revision_initials.zip (or .tgz) containing sch and brd (older revisions had .zip.gif to fool the former bad config of wiki)
Please follow this procedure:
- download, examine, plan the changes
- start your changes, but before you invest more than 6 minutes of work:
- check that noone happened to lock in the meantime: preferrably commit your plans to this wiki page
- lock the binary for editing, by changing the filename down to what you will use (increase revision number, and replace the initials with yours). No need to write LOCKED, the missing file will make locking clear.
- after you're ready, upload the file
- if you have a break during routing, longer than 25 mins, than please upload and unlock (you can lock again if other's not, but please check)
EVERYONE, REMOVE ALL LOCAL COPIES OF JURG.LBR. THE FILE THAT HAS FOLLOWED 205 AND 206 REVISIONS OF THE ARCHIVE IS THE WRONG ONE.
The correct procedure to make a change in jurg.lbr is to aquire last known good version from me, talk to me, make changes, talk to me, send file to me. A bit of a annoyance to you guys but I have spent hours spending this library on several occations just because people make changes to outdated versions.
TODO: pickNplace manufacturing requirements
I got a document, unfortunately in Hungarian. Nothing special, we should be close.
picnkplace types:
- QUAD III/c (smaller, but still good: 48 types of components)
- Samsung CP45FV (more professional, ful optical verification, 104 types of components).
- stenzil solderpaste (mask) is used even for small series (<120), not dispenser
- via under pads is not nice. At the pad edge... maybe ??
- pads should not merge into one. A small solderprotect between them is nice. (see the VBATT voltage divider 20k and 100nF :)
- 5 mm clearance around boardedge so the machine can hold the boards. We'll violate this. Hopefully only a few components will be done manually because of this. I don't fully get this, since the picnplace uses vacuum for holding the board, not edge-whatever..
- DONE on blue and red sides too: two 1.25 mm dia Cu circles in two opposite corners: no solderprotect above them. 1.25 mm ring left clear around them, The machine likes this (fiducial points)
- other trivial stuff (clean components, etc.)
- +10 components, that fall off when they make the machine eat the tape (not lost, just manual later...)
TODO: v3.2 - later
- move the upper-right 100k pump resistor down a bit. It's the rightmost of the 3 x 100k resistor right to the upper OPA (pin2 => 2V).
- crystal should be SMD
- use 20V 0.6kW UNIDIR 1SMB20AT3 (ONS) SMB (Transient suppression diode)
- Would it make sense to add additional pins for trigger signals, like JP7/JP8 and JP13/JP12 nowadays but with possibility to loop the signal through additional small triggerboard (multitooth sensor signal in/digital out or even after onboard LM1815 circuits)?
TODO: sch, BOM, not urgent
- LED on reset loads the reset too much. Smaller resistor?
- lets kill some BOM components (change values). Consider: R129, R138, C17, knock osc=16MHz?
- sch todo (not urgent): we could maybe kill some BOM components. replace all 0.1 uF by 0.22 uF, but when used in RC (lowpass filter) the R must be changed. I think the AVR's recommendation of min. 10k does not apply when we have a cap over 1nF directly on the pin (with 0 Ohm). The 0.1uF is cheaper though - but we have little data on the supply noise, so better be safe. 0.22 uF is used at nernst pulsing, an important application.
TODO: dropped
- straighten HEAT2 and friends to go 135 deg, down as much as possible
- add 17..18 V virtual zener (made from TO220 PNP hehehe ) parallel with D5 transient suppression diode
- DIFD+- could go to a header
- DIFE+- could go to a header
- U19A, U19D doesn't have protect resistor+diode like U19B, U11B
- JP_ISP: it has an unused pin A: Meant for an additional CS_ pin
- I just measured a 5 pin header that goes from PC motherboard to PS2 mouse:
- Data (red)
- Clock (blue
- GND (yellow)
- NC (keying)
- VCC (5V, green)
We could maybe use that on v3.1. Mik says no need to change it.
Holy batman, we're getting 2000 more FQPF.. FETs (ordered in 2004 March, scheduled for 2005 january, but they are hard to control, might drop in earlier :-(( ), although we have a lot in stock (appr. 1000, most at East Coast). What can we do with them? I really wanted to roll v3.3 and ARM boards with DPAK. Maybe we add some extra-fets near the edge :-)
Special thanx to
the v3.1 core HW engineers:
- MembersPage/JorgenKarlsson
- MembersPage/KeithHargrove
- MembersPage/MarcellGal
- MembersPage/MichaelKristensen
v3.1 manufacturing and WebShop:
other contributions: