Ik zit zelf redelijk diep in de Honda ECU's
Data logging en afstelling wel te verstaan.

Honda motoren draaien hoog in toeren. En dan heb ik het over zo'n 8k a 9k bij de redline.

Als ik voor het (reken)gemak even 10k neem (denk aan de Honda S2000) dan hebben we het over 6ms per omwenteling.

MAAAR!!!! en hier zie ik een hoop verkeerde beweringen over: Het is een viertakt motor. Dat betekent dat er per cilinder cyclus twee(!!!!) omwentelingen zijn van de krukas en niet één zoals in dit topic wordt aangenomen.
Bij een 4 pitter hebben we het dus over 2 verbrandingen en 2 inspuitingen per omwenteling. Bij een 6 pitter hebben we het over 3 van elk.

Dat betekent dus ook dat je ineens 2 keer zoveel tijd hebt om alles te laten berekenen.

Honda is een mooie referentie voor processor snelheden omdat ze hoog toerige blokken maken.
Vandaar dat ik maar wat dieper in detail treedt:
De Honda ECU (van medio 1990) is opgebouwd rond een Oki 8051 (12MHz dacht ik maar ben niet zeker). Een 1-op-1 replacement daarvoor is een 27C256 of een 29C256.
Waarbij de 29C256 de voorkeur heeft omdat deze wat makkelijker is om te herprogrammeren.
De nieuwere modellen draaien op basis van een Oki 66xxx.

De analoge sensor signalen vanaf de motor gaan via een op-amp en een analoge multiplexer naar een externe ADC (om procesor tijd te sparen). Op deze manier heb je maar 1 input nodig voor een groter aantal signalen en heeft de procesor tijd om andere, belangrijker dingen te doen. De analoge signalen veranderen ook niet al te 'snel' dus is het voldoende om af en toe naar de waarden te kijken ipv 'constant'.

Voor meer (engelse) info over die gedeelde input: http://www.marklamond.co.uk/tech-honda/pgm-fi/o2-input/o2-input.htm

Het gaat hier specifiek om de input van een Lambda sensor, maar exact hetzelfde geldt voor de andere analoge signalen die vanaf de motor komen.

Ik hoop dat je hiermee wat wijzer bent geworden.

Ik mag het dan wel specifiek naar Honda trekken, maar in essentie is het natuurlijk allemaal hetzelfde... hoe krijg ik de juiste hoevelheeid brandstof op het juiste moment in de motor, en wanneer is het goede moment om te ontsteken.

Succes!!!

Op 7 november 2006 14:03:47 schreef bas auto:
[...]

Ja, 8000 rpm --> 2,5ms tussen 2 vonken.

[...]

uit een keulen 2.8? Veel succes, ik vang de big end lagers wel op die me om de oren vliegen. Zo'n blok mag standaard 6250 RPM max draaien voor hij rode gebied in gaat.

Je kan er waarsch max iets meer dan 7000 RPM uithalen. maar dank niet dat je boven 7200 RPM komt. (er zijn zwaardere oliepompen te verkrijgen en krukas balanceren vereiste)

gr. een ford lief hebber

BTW als je wilt en het is mogelijk wil ik wel helpen, daar ik dus ook zoiets wil bouwen voor nota bene dezelfde motor, maar verwacht neit dat het een project van een maand is!!

tip: programmeer niet in ASM. ik heb mij ECU in C geprogt, en dat is goed te doen. ook qua timing.

laat af en toe horen hoe je project loopt. ben er wel benieuwd naar.

wim

@Orthello

Mag ik vragen wat je met die Honda's doet?
Wil ook wel eens experimenteren met mn gebakje ;)

Op 7 november 2006 14:57:21 schreef Orthello:
[...]
Honda is een mooie referentie voor processor snelheden omdat ze hoog toerige blokken maken.
Vandaar dat ik maar wat dieper in detail treedt:
De Honda ECU (van medio 1990) is opgebouwd rond een Oki 8051 (12MHz dacht ik maar ben niet zeker). Een 1-op-1 replacement daarvoor is een 27C256 of een 29C256.
Waarbij de 29C256 de voorkeur heeft omdat deze wat makkelijker is om te herprogrammeren.
De nieuwere modellen draaien op basis van een Oki 66xxx.
[...]

Ik las ff neit goed: maar dit is een PROM. Hier zitten dus hoogstwaarschijnlijk enkel de kenvelden in (is bij de opel motoronic 4.1 ook zo). Om nou te zeggen dat het daarom opgebouwd is? Of zit er ook software in en is er slechts een processor (geen microcontroller dus)

Ik zou dit zelf afraden, daar een microcontroller net ff iets makkelijker is (combinatie van gehuegen en processor)

Het doet er niet toe hoeveel toeren de motor gaat maken. Misschien 6000 of 7000. Ik weet het niet.

Het ging erom dat ik wilde laten zien hoe ik aan die 1,5ms rekentijd kwam. Dan kan je altijd maar beter van het ergste uitgaan, 8000 toeren dus.
2,5ms min 1ms vervroeging is 1,5ms.

Die 1ms vervroeging is ook maar een indicatie. hierop hoeven dus ook geen reacties te komen.

Orthello komt met een goed punt. Is de a/d converter die op de pic zit snel genoeg? zoniet, dan heb ik een aparte a/d converter nodig.
Dan stel ik eerst de vraag: weet iemand hoe snel de a/d converter is? Ik heb op het mc forum een bericht gelezen van iemand die een samplefrequentie van 100kHz aanhoudt voor zijn toepassing. Dat betekent 10us. Als ik 8 analoge waarden moet uitlezen is dat 80us is afgerond 0,1ms.
Ik had 1,5ms. Ik heb nu nog 1,4ms over.

Of bekijk ik het te simpel?

ik zou serieus voor een externe kiezen, of je moet dedicated uC's gebruiken die input verwerking doen (bijv je gebruikt 1 uC om RPM signaal en BDP puls te genereren). Die kun je dan weer over 1 of andere bus laten communiceren (I2C bijv)

de A/D van de Atmel is iig retetraag. Van de PIC weet ik niet. Maar hoe dan ook het is een overkill die je niet wilt.

hoe sta je trouwens tegenover het idee om het ding samen te ontwikkelen BTW??

ik gebruikte zelf 10 ADC's die elke cyclus werden ververst. dit werkte goed.

bij jouw uC is de conversie tijd te vinden op blz 231 en omgeving.(net even naar gekeken.)
dus ff goed lezen :)

ligt er ook aan wat voor ADC erin zit.

een flash converter is snel genoeg, de benaderings(approximate) adc misschien. en de counter-methode is te traag denk ik voor 10 bits.

bij een approximate is de conversie tijd volgens mij: aantal bits * klokpuls.
bij flash elke klokpuls 1.
bij teller methode:
(2^10) +1 klokpulsen max.

Op 7 november 2006 17:12:09 schreef bas auto:
Het doet er niet toe hoeveel toeren de motor gaat maken. Misschien 6000 of 7000. Ik weet het niet.

Het ging erom dat ik wilde laten zien hoe ik aan die 1,5ms rekentijd kwam. Dan kan je altijd maar beter van het ergste uitgaan, 8000 toeren dus.
2,5ms min 1ms vervroeging is 1,5ms.

Die 1ms vervroeging is ook maar een indicatie. hierop hoeven dus ook geen reacties te komen.

Orthello komt met een goed punt. Is de a/d converter die op de pic zit snel genoeg? zoniet, dan heb ik een aparte a/d converter nodig.
Dan stel ik eerst de vraag: weet iemand hoe snel de a/d converter is? Ik heb op het mc forum een bericht gelezen van iemand die een samplefrequentie van 100kHz aanhoudt voor zijn toepassing. Dat betekent 10us. Als ik 8 analoge waarden moet uitlezen is dat 80us is afgerond 0,1ms.
Ik had 1,5ms. Ik heb nu nog 1,4ms over.

Of bekijk ik het te simpel?

helaas te simpel, het probleem zit ook aan de andere kant, max (en min) openingstijd van b.v. een injector ?? reactie tijd van een injector en een sluit tijd, voor je het weet zit je zo aan 13 a 20 ms aanstuur tijd. hierbij is de keuze van de injector ook heel belangrijk !ook reaktie tijd van bobine en laad tijd.

dat van die 4-tackt is waar, er hoeft maar 1x per twee omwentelingen worden ontstoken/ingespoten.

het inspuit moment is niet zo heel crities ,het komt er wel in. ontsteking is wel heelbelangrijk met timing!!

zit er al een ecu in de auto, en wil je een vervanger maken op de bestaande sensoren?

wat ga je gebruiken, simutaan, half of vol-sequentieel?

hij heeft volgens mij een K(E)-jetronic of een EECIV
(Hangt af van zijn bouwjaar)

als hij een K(E)-jetronic heeft snap ik zijn keuze in zoverre dat dit best zuiniger kan. Als je echter performance wilt: niets wijzigen; dit systeem is mechanisch en werkt eigenlijk zo simpel dat het ook eenvoudig te tunen is.

Als hij een EECIV heeft (net als ik :)) snap ik ook wel dat hier moeilijk aan te sleutelen is. Is een vrij lastige ECU die ook nog eens zelflerend is. Dit ding is nl wel volledig elektronisch, kan niet met drukvulling overweg, En hij spuit 3 injectoren tegelijk in wat niet erg eficient is. Daarnaast zijn er wel meer nadelige dingen.
dit is dus semi-simultaan. Je kan niet volledig simultaan met een V6 volgens mij.

half of volsequentieel is eigenlijk de enige winst die er te halen is. tja en iets maken voor drukvulling, maar dat kan ook op de bestaande met een andere map sensor (sierra cosworth)
Tja en hij zal vrij programmeerbaar zijn.

ik weet nl niet van welk jaar zijn donor sierra was en of het een 2.8 of 2.9 is (ik ga er do net weer 1 bijhalen als tijdelijke driver zolang mijn 2.9 nog niet in mijn nieuwe auto ligt. mijn tijdelijke is een 2.4, maar is alleen kleiner geboorde 2.9, alles is hetzelfde. ECU's zijn dus ook uitwisselbaar)

[Bericht gewijzigd door High met Henk op ]

Op 7 november 2006 16:02:22 schreef yokiamy:
@Orthello

Mag ik vragen wat je met die Honda's doet?
Wil ook wel eens experimenteren met mn gebakje ;)

Aanpassen van PM6/PM7 en PW0 (VTEC) ECU's.
Dit zijn ECU's van rond 1990. Vooral de PW0 is ERG leuk om mee te spelen.

Aanpassen brandstof en ontsteking tabelen, aansluiting op laptop voor het uitlezen van alle sensoren, Launch Control, en voor mij het belangrijkste.... aangepast voor drukvulling.

Maar dat is niet voor in dit topic.

Op 7 november 2006 16:25:30 schreef High met Henk:
[...]
Ik las ff neit goed: maar dit is een PROM. Hier zitten dus hoogstwaarschijnlijk enkel de kenvelden in (is bij de opel motoronic 4.1 ook zo). Om nou te zeggen dat het daarom opgebouwd is? Of zit er ook software in en is er slechts een processor (geen microcontroller dus)

Ik zou dit zelf afraden, daar een microcontroller net ff iets makkelijker is (combinatie van gehuegen en processor)

Er zit ook programmatuur in.
Deze is ook aangepast, om er launch control en datalogging (voor laptop) in te krijgen.

okeej, hij heeft dus een losse processor. Zou ik voor zelfbouw niet doen: maakt het nodeloos complex in de hardware. JE kan makelijker een uC nemen met genoeg intern geheugen om de software voor een ECU te draaien.

Loggen hoeft hier niet direct denk ik. En anders een bus prom eraan knopen. IS nog makkelijker vandaag de dag dan zo'n parallel prom

hij heeft volgens mij een K(E)-jetronic of een EECIV
(Hangt af van zijn bouwjaar)

als hij een K(E)-jetronic heeft snap ik zijn keuze in zoverre dat dit best zuiniger kan. Als je echter performance wilt: niets wijzigen; dit systeem is mechanisch en werkt eigenlijk zo simpel dat het ook eenvoudig te tunen is.

Als hij een EECIV heeft (net als ik :)) snap ik ook wel dat hier moeilijk aan te sleutelen is. Is een vrij lastige ECU die ook nog eens zelflerend is. Dit ding is nl wel volledig elektronisch, kan niet met drukvulling overweg, En hij spuit 3 injectoren tegelijk in wat niet erg eficient is. Daarnaast zijn er wel meer nadelige dingen.
dit is dus semi-simultaan. Je kan niet volledig simultaan met een V6 volgens mij.

half of volsequentieel is eigenlijk de enige winst die er te halen is. tja en iets maken voor drukvulling, maar dat kan ook op de bestaande met een andere map sensor (sierra cosworth)
Tja en hij zal vrij programmeerbaar zijn.

ik weet nl niet van welk jaar zijn donor sierra was en of het een 2.8 of 2.9 is (ik ga er do net weer 1 bijhalen als tijdelijke driver zolang mijn 2.9 nog niet in mijn nieuwe auto ligt. mijn tijdelijke is een 2.4, maar is alleen kleiner geboorde 2.9, alles is hetzelfde. ECU's zijn dus ook uitwisselbaar)

Het is een efi motor met een EEC IV computer.
Het gaat niet om zuinigheid, het gaat niet om vermogen, het gaat er gewoon om dat de auto redelijk rijdt. Ik begin met de injectoren allemaal parallel, dat lijkt me het eenvoudigst. Als alles werkt en ik heb mijn diploma binnen kan ik eens gaan kijken voor sequentieel.
Ja, met alle injectoren parallel heb je 6 keer zoveel in en uitschakeltijden en ik weet dat dit erg op kan lopen. Ik snap ook dat dit problemen geeft bij veel toeren. Ik wil gewoon eerst mijn diploma binnen hebben en dan pas gaan verbeteren.
Ieder half jaar uitloop kost weer 760 euro.

bij jouw uC is de conversie tijd te vinden op blz 231 en omgeving.(net even naar gekeken.)
dus ff goed lezen

Ja, dat stukje had ik al gevonden. Op de blz daarvoor staat ook nog wat. Is het zo dat het maar 2,4us duurt bij 85 graden?
Uit andermans programma´s kan ik het niet zien aangezien ze gewoon wachten tot het done bit 0 is. Hoelang dat duurt kan je er dan niet uithalen.
Wel vreemd dat een aparte a/d converter duurder is dan deze pic waar 13 a/d ingangen in zitten.

ik heb een wat late reactie, maar als het per-se met een PIC moet, misschien eens kijken naar een dsPIC30 of dsPIC33 ?

dit zijn 'gewone' PIC's met een DSP aan boord. 40 MIPS is voor een dsPIC ook geen enkel punt, lukt makkelijk.

aha: nu komt de aap uit de mouw: het is een afstudeer project.

Ik zou zeker hulp zoeken bij Paul Welther (beek autoracing), of bij iemand anders die hier veel kaas van gegeten heeft.

Dus combi Voertuig-electronica. En dan ook op het engineeringsvlak. Ga iig niet naar de innovam, dan kun je nl beter bij hun elektronica lesmateriaal leverancier aan de gang!

Ik weet niet waar je zit, maar kijk eens wat dicht in de buurt zit
DC2PCC zijn idee klinkt niet zo gek eigenlijk.

Hoelang dat duurt kan je er dan niet uithalen.

Dat staat in het datasheet van de uC, voorbeeld:

ATTiny26

ATtiny26 datasheet's section on the ADC (page 94), which states that conversion times from 13 to 260 microseconds are possible. In order for the ADC to be operating within its guaranteed parameters, you must ensure that its clock is operating in the range of 50 to 200 KHz.

Waarbij 8bits conversie uiteraard sneller klaar is dan 10 bits.

grappig....was ook mijn afstudeer project...opt MBO-electronica:)

aha: nu komt de aap uit de mouw: het is een afstudeer project.

Nee, het is geen afstudeer project. Mijn afstudeerproject is al klaar. Ik moet nog een paar vakken inhalen en inmiddels is het een soort van weddenschap geworden met mijn leraar.

Van waar kom je? Ik kan eens even kijken wie wat of waar zit voor je.

ik heb je ff prive gemaild met iets meer details.

zou dit wat zijn? AD7829 http://www.farnell.com/datasheets/68242.pdf
Hij heeft 8 ingangen en is erg snel, 420ns max.
Ik ben er nog steeds niet precies uit hoe snel de a/d converter in de pic is, maar hier kan geen enkele pic aan tippen. Het enige nadeel is dat ik dan voor de analoge signalen 14 of 15 i/o poorten gebruik in plaats van 8.

@Henk, ik zit niet achter mijn eigen computer. Volgende week lees ik je mailtje.

Ik heb nu de volgende pin indeling bedacht voor de 18f4520:

pin- poort - functie

02 - ra0 - reflectiesensor 1
03 - ra1 - reflectiesensor 2
04 - ra2 - reflectiesensor 3
05 - ra3 - reflectiesensor 4
06 - ra4 - reflectiesensor 5
07 - ra5 - reflectiesensor 6
14 - ra6 - kloksignaal
13 - ra7 - kloksignaal

33 - rb0 - OR-poort uitgang reflectiesensor 1-6, interrupt
34 - rb1 - uitgang motor aan/uit
35 - rb2 - injector 1
36 - rb3 - injector 2
37 - rb4 - injector 3
38 - rb5 - injector 4
39 - rb6 - injector 5
40 - rb7 - injector 6

15 - rc0 - timer1 kloksignaal
16 - rc1 - timer1 kloksignaal
17 - rc2 - bobine 1
18 - rc3 - bobine 2
23 - rc4 - bobine 3
24 - rc5 - ADC kanaalselect pin a0
25 - rc6 - ADC kanaalselect pin a1
26 - rc7 - ADC kanaalselect pin a2

19 - rd0 - parallelle ingang tbv ADC, bit0
20 - rd1 - parallelle ingang tbv ADC, bit1
21 - rd2 - parallelle ingang tbv ADC, bit2
22 - rd3 - parallelle ingang tbv ADC, bit3
27 - rd4 - parallelle ingang tbv ADC, bit4
28 - rd5 - parallelle ingang tbv ADC, bit5
29 - rd6 - parallelle ingang tbv ADC, bit6
30 - rd7 - parallelle ingang tbv ADC, bit7

08 - re0 - besturing ADC
09 - re1 - besturing ADC
10 - re2 - besturing ADC
01 - re3 - reserve

11 - vdd - +5v
32 - vdd - +5v
12 - vss - gnd
31 - vss - gnd

Heeft iemand hier commentaar op? Wat zouden jullie anders doen, en waarom?
Groeten,
Bas

je kunt i.p.v. de 6 reflectie sensoren .
één vliegwielsensor gebruiken

en voor de injectors zou je mogelijk
ook ééntje kunnen gebruiken
( ze kunnen volgens mij wel allemaal tegelijk inspuiten)
(scheelt weer heel wat poorten, en rekentijd)