Ik ben begonnen aan een opdracht waarbij ik met een pic processor de bobines en injectoren van een auto aanstuur. De pic die ik gebruik is een 18f4520. Die heb ik nou eenmaal en er zitten veel poorten en a/d ingangen op.
Ik heb nog nooit met een pic gewerkt, dus wat dat betreft komen er in de toekomst vast nog enkele vragen op dit forum, maar om te beginnen zijn er wat dingen die ik moet weten voordat ik mijn experimenteer printplaat kan maken ivm de ruimte op de printplaat...
1 Kan ik de igbt´s die de bobines aansturen op dezelfde printplaat als de pic zetten of geven de piekspanningen teveel storing?
2 Het gaat om een 6 cilinder motor. Ik heb 3 dubbele bobines en 6 injectoren. Het is van belang dat de pic weet hoever de motor is. In de oude stroomverdeler van de auto zit nu een schijf met een wit puntje erop die langs 6 reflectie sensors gaat. Het probleem is dat er maar 3 interrupt ingangen op de pic zitten. Wat doe ik?
Zelf dacht ik aan een 6 ingangs or-poort en de uitgang daarvan op één van de interrupt ingangen en de 6 signalen van de sensors op 6 pic-ingangen en op de or-poort.
3 Ik ben op internet op zoek gegaan naar kenvelden (lookup tables) van bestaande auto´s. Voor bijvoorbeeld de vervroeging van het ontstekingsmoment wordt de inlaat luchtdruk uitgezet tegen de draaisnelheid van de motor in rpm, en als uitkomst de vervroeging in graden.
Het enige dat ik kan doen is de tijd meten tussen 2 pulsen van de reflectie sensors en voorspellen over hoeveel tijd de volgende puls komt. Moet ik gaan rekenen met tijden in plaats van rpm´s en graden? Heeft iemand een een suggestie hoe hiermee om te gaan?
4 Zomaar een vraagje tussendoor. Kan iemand laten zien hoe je in ASM een 16 bits getal deelt door een 8 bits getal?
5 Ik heb 16 bits timer1 of timer3 nodig ivm de ccp mode. Een tel van de timer moet ongeveer 16us duren voor mijn toepassing. De prescalers gaan maar tot 1/8 en ik weet niet of ik met een pic die 0,5 MIPS uitvoert nog wel alles binnen de tijd kan uitrekenen. Heb ik dan een externe klok nodig of kan het ook anders?
6 Is er iemand die een zelfde soort projectje heeft gedaan?
7 Heeft iemand nog tips in het algemeen?
Alvast heel vriendelijk bedankt voor het meedenken en voor de reacties.
Bas
1- geen idee
2- in wezen heb je maar één sensor nodig
de "bdp" sensor, nog beter een sensor die 40 graden eerder staat, wanneer deze puls komt, kun je keurig de (voor of na) ontsteking regelen voor de eerste ( en zesde cilinder)
( eentje valt altijd in het tuimelen van de kleppen )
ook kun je hieruit de ontsteking regelen voor cil 2 en 5
en weer 120 graden later voor 3 en 4.
(let wel dat vroeger ( zo.n 15 jr terug )
het ontstekings modul opzichzelf werkte
3- de tijd die tussen de "bdp" pulsen liggen is een gegeven voor de snelheid van de motor , rpm dus..
aan de hand van de "tussentijden" kun je de ontstekings vervroeging aanpassen
helaas mis ik bij jou de stand van de gasklep.. die
bepaald de belasting van de motor, daarmee kun je je kenveld weer bij aanpassen, wel zeer belangerijk dus
(was je het vergeten?)
4- ( helaas ik werk in basic+ )
( maar ben ook met ontsteek systemen bezig , motofietsen)
5 - abacadabra
6 -
7 - koop er eentje , kost niet veel,(nou niet veel) en helemaal via de pc regelbaar
volgens mij ben je hieraan begonnen zonder enige voorkennis...
Wat heb je nodig?
.1 een exact timing element.
Je moet dus iets hebben als idd een BDP met een 60 tands wiel, waarbij voor cyl 1 in BDP tanden missen. Je kan dan exact de snelheid van de motor weten (RPM)
.2 een inlaatluchtmeter luchtmassameter / MAP of MAF sensor incl inlaatlucht temp meter / lucht hoeveelheidsmeter
.3 een gaskleppositie sensor spreekt voor zich dnek ik.
pas nu heb je de data voor KEN velden.
wat ik er zelf nog bij zou zetten?
.4 motor temperatuur sensor (voor auto choke)
.5 lambda sensor dan weet je of wat je idd ingespoten hebt klopt. Bij voorkeur een breedband type.
.6 pingel sensor Dan weet je ook of je motor niet pingelt (dus of je ontsteking klopt)
als je het echt deftig wilt doen
.7 brandstof druk sensor Weet je of je ingespoten hoeveelheid echt klopt (of jij moet een super constante druk hebben))
als je dit allemaal te complex is. koop een kronenberg systeem of een DTM (d8 dat die laatste zo heete) kun je niet tegen bouwen!
Beste Henk:
Ik wilde gewoon antwoorden op mijn vragen. Niet op vragen die ik niet gesteld heb.
Ik koop niet gewoon zo´n ding, ik moet er één maken, en het moet met een pic. Het is met de tijd een soort weddenschap geworden.
Uitgangspunten zijn dat ik alle mogelijke sensoren heb en een pic met voldoende analoge ingangen. Het enige probleem is dat ik nog niet genoeg ervaring met pics heb, en dat is waar ik jullie hulp bij nodig heb.
Ik zal de vraag wat concreter stellen:
-Ik heb 6 reflectiesensoren die het bdp van een cilinder aangeven. Ze zijn zelfs verdraaibaar dus ik kan de hoek ook aanpassen. Uit de sensoren komt na bewerking een perfecte blokgolf die iedere keer weer precies op een bepaald (instelbaar) aantal graden voor (of na) het bdp een puls geeft.
-Ik heb 8 analoge signalen, map, temp, gasklepstand, enz.
-Ik heb een kristal voor het kloksignaal.
-Ik heb misschien een kristal nodig voor een 2e kloksignaal voor de timer.
-Ik heb 3 igbt´s die de bobines aansturen.
-Ik heb 6 igbt´s die de injectoren aansturen.
Nu zijn de vragen:
1: welke pinnen van de pic gebruik ik waarvoor?
2: Kan ik de igbt´s die de spoelen aansturen op dezelfde printplaat maken als de pic?
Groeten Bas
1, data sheet lezen van de pic die je wilt gebruiken
2, ja dat kan, of het verstandig is is een ander verhaal
Op 5 november 2006 13:43:17 schreef shiptronic:
1, data sheet lezen van de pic die je wilt gebruiken
2, ja dat kan, of het verstandig is is een ander verhaal
Dat laatste gebeurd in een fabrieks ECU ook.
De driver transistors/FET's/IGBT's etc zitten links en rechts aan de zijkant.
Ik vraag mij of de TS überhaupt weet wat een ECU is en doet.
Succes met nabouwen en software ontwikkeling.
Of neem eens contact op met http://www.beekautoracing.nl/ misschien kan je een jaartje tijd inhuren bij ze.
@hugo:
is dit sluikreclame voor je broer?
@bas auto:
ik heb wel enige indruk waar ik over praat: Ik ben al 2 jaar in de vrije uurtjes bezig met inventariseren wa tik nodig heb. Ik wil ook een mms op een V6 (ford 2.8 en 2.9 motor), maar die hebben alleen een ontstekings als opnemer en nog een gewone distributie.
Ook beroepsmatig ben ik bezig met motormanagement ssytemen en ik zie daar nergens maar 3pulsen per omwenteling vandaag de dag, zeker niet als je ook nog met DIS moet werken. (wat je impliceert met je 3 dubbele bobines) Veel auto's hebben vandaag de dag zelfs zowel krukas als nokkenas opnemers.
Je zal vast wel iets krijgen wat werkt, maar of het beter is als het origineel en of het echt bruikbaar gaat zijn?
kleine tip: Mijn voorgangers bij het bedrijf waar ik nu zit hebben er ook 1 gebouwd, is meer jaren plan geworden (okee, geef toe die had wel IETS meer eisen)
Ik heb ook een ford V6, uit een sierra XR4i. Hij zit nu in een ford taunus. Het probleem om te beginnen was dat de verdeler niet onder de motorkap past. Die heb ik dus doorgezaagd. Nu past ie wel, maar heb ik dus geen functionerende verdeler meer. Vandaar het mms idee.
Daarnaast nadert het einde van mijn studie elektrotechniek. Mijn leraar bij wie ik nog wat vakken in moest halen is overgestapt naar de studie autotechniek. Het is een ingewikkeld verhaal, maar het komt er nu op neer dat als ik met een rijdende ford taunus op school kom, ik mijn studie af heb.
Ik ben begin van de zomer begonnen aan de opdracht. Het valt me erg tegen, er komt veel meer bij kijken dan ik in eerste instantie dacht, maar langzaam komt er toch een plaatje in je hoofd hoe het moet worden.
Ik heb zo´n beetje alle onderdelen die ik denk nodig te hebben. Ik ken de datasheet van de pic haast uit mijn hoofd, ik heb alleen geen ervaring met pics. Ik heb hier een pin overzicht van de pic voor me liggen, alle pinnen voor voeding, kloksignalen, programmeren, enz heb ik doorgestreept. Nu blijft er een aantal pinnen over. Die kan ik dus vrij gebruiken (denk ik?). Ik wil graag wat reacties van de "pic mensen" hier, vandaar mijn keus voor dit forum. Met vragen over auto´s zoek ik wel een auto-forum op. Je verwacht ook geen raketgeleerde op een groente en fruit forum.
@henk, ik begrijp niet dat je al jaren ergens over nadenkt zonder daadwerkelijk ergens aan te beginnen. Zo kom je er nooit. Als je eens wat onderneemt kom je sneller tot het gewenste resultaat dan door alleen maar na te denken. Misschien met vallen en opstaan, maar je komt er heus wel. Het is onmogelijk om door alleen ergens over na te denken alle onverwachte dingen uit te sluiten. Je komt altijd wel wat tegen. Ik zou zeggen, koop vandaag nog een soldeerbout en bak die auto in elkaar. Of je moet het erover nadenken leuker vinden, dan moet je dat gewoon nog jaren blijven doen natuurlijk.
@Hugo, bedankt, ik wist alleen van die paar auto´s waarmee ik heb gewerkt dat er een losse "onstekingsmodule" onder de motorkap zit. Hierin zitten de igbt´s en een koelelementje. Dat ze ze tegenwoordig al in de "computer" stopten wist ik niet, maar als een ander dat kan, dan kan ik dat natuurlijk ook.
Henk, wat bedoel je met "een ontstekings als opnemer"?
Hugo, wat is een "TS"?
@bas auto: ik ben mijn 2.9 op dit moment in een andere auto aan het leggen. de 2.8 ligt nog in onderdelen, maar is wel gereviseerd (geboord, gehoond, nieuwe kleppen, nieuwe lagers enz.)
En ja, ik ga het ook wel bouwen, maar heb andere prioriteiten en kan mijn tijd maar 1x gebruiken. intussen zoek ik wel heel veel info. en die soldeerbout(en) heb ik ook wel. Zoals ik zeg: ik werk beroepsmatig met MMS'en en andere voertuigelektronica! Maar mij ontbreekt beetje de tijd. In die tijd inventariseer ik wel. (dat kan tijdens mijn werk). Ik vindt wel steeds beter regelingen
Op 6 november 2006 11:29:05 schreef bas auto:
[knip]
Hugo, wat is een "TS"?
TS is topic starter.
De eindtrappen zitten vanaf de eerste Bosch ECU's al in de doos.
Haal op de sloop eens een oude Motronic of andere Bosch ECU en bekijk eens hoe dit in elkaar zit.
Ik gaf de link van het bedrijf van mijn broer omdat daar al tig studenten hebben geprobeerd af te studeren op soortgelijke projecten. Helaas met PIC en AVR gaat dat niet lukken.
Je hebt domweg geen tijd genoeg om de output uit de A/D converters te mappen met de EPROM tabellen en dan ook nog te realiseren dat de motor daarmee overweg kan. Tegen de tijd dat je dat allemaal heb geregeld is de motor al 1000 events verder.
In de ouder ECU's werden meestal derivaten van de 80C51µP gebruikt, tegenwoordig zijn dat wat meer geavanceerde µP's. Er draait nog net geen Windows XP in.
Je kan tegenwoordig nog enigszins betaalbaar een DSP nemen 
Paar kleine atmel's of PIC's om de vertaalslagen te maken, zodat de DSP zich niet bezig hoeft te houden met toerentallen en sensor aansturingen/fout afhandelingen.
Dit is ook het enige deel wat ik nog onder de knie moet krijgen: DSP proggen.
Hebe r op dit moment wederom geen tijd voor, maar volgend jaar na mijn trouwerij wel wat meer. Nog 1 heel jaartje en iets minder dan 1 weekje wachten dus. (en dan de huwelijksreis nog)
hallo bas,
ik heb vorig jaar een ECU gebouwd voor een bmw 320i (6 cilinder)
hier heb ik samen met 2 klasgenoten 5 maanden 20 uur per week(p/p) aan gebouwd/ontworpen.
het is een leuk iets om te doen, maar denk niet dat je het " eventjes" doet.
ik weet niet welke taal je wil proggen, maar ik zou zeker voor een hogere programmeer taal gaan.
je zegt dat je geen ervaring hebt met PIC's. heb je wel uC ervaring? anders wordt het erg lastig.
zelf heb ik voor onze ECU een TMS470 microprocessor gekozen. dit is een 32-bit 40Mhz proc, met 16 ADC's en 40+ GIO's.
injectie is goed te doen.(als je het gewoon batch-fire doet)
ontsteking is een stuk lastiger en nauwkeuriger.
groeten,
wim
@hugo welther:
jouw broer Paul heeft mij hierbij ook geholpen, en kan wel zeggen dat het zonder zijn kennis niet gelukt was, of iig nog niet:)
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
The new ADuC7024 Microcontroller from Analog Devices includes a huge 64kB Flash Program Memory space, ideal for the largest of applications. Together with 8kB of Data Ram space, whihc is perfect for large data-logging applications. The microcontroller also features a high-speed, high-performance, ARM7 core with a maximum speed of up to 40 MIPS. The ADuC7024 is ideally suited for analog data monitoring with a total of 10 12-bit A/D Channels, these ADC's feature both high-accuracy being a full 12-bits, as well as a fast conversion rate. Also included within the microcontroller is a 12-bit DAC, 16-bit PWM output, numerous timers plus a JTAG interface for easy program debugging.
$44.90 @ futurlec.com
Kijk ook eens op: http://www.pgmfi.org/twiki/bin/view/Library/WebHome
Dit is specifiek Honda, maar wel tot op een redelijk diep niveau. Helaas ook geen 6 pitter.
Zeer leerzaam om te lezen.
Die Yanks zijn echt compleet gek.
Bedankt voor alle reacties. Ik dacht dat dit een plaats was waar je een vraag kan stellen, en waar mensen die het antwoord hebben een reactie kunnen plaatsen.
Hoever ben ik nu?
Op vraag 1 heb ik nu een duidelijk antwoord. Bedankt daarvoor. Nieuwe vraag: Als het er bij alle bosch ecu´s al in zit, wat is dan de functie van dit: http://www.motec.com.au/drawings/m12.pdf ?
Op punt 6 en 7 wil ik geen reacties meer.
Ik zoek nu nog antwoord op de vragen 2, 3, 4 en 5 van het eerste bericht.
Ik heb dus op 1 vraag van de 5 een antwoord. Verder alleen commentaar dat het onmogelijk is.
Natuurlijk is het mogelijk, en wel om de volgende reden:
- De pic heeft genoeg i/o poorten en analoge ingangen.
- De pic kan 10.000.000 instructies per seconde uitvoeren. Hij heeft bij het hoogste toerental ruim 1,5ms om uit te rekenen wanneer de vonk moet komen. Dit betekent 15.000 instructies.
Moet kunnen lijkt me.
Gatze
Congratulations on your purchase. To begin using your quantum computer, set the power switch to both off and on simultaneously
16bit getal delen door een 8 bit getal kijk op http://www.piclist.com/techref/microchip/math/div/index.htm
Ik dacht dat dit een plaats was waar je een vraag kan stellen, en waar mensen die het antwoord hebben een reactie kunnen plaatsen.
volgens mij zit er ruim genoeg nuttige replies tussen, dus waar klaag je over?
en een 10Mhz snel genoeg? ligt eraan hoe snel je jouw ADC's kan uitlezen, en hoeveel je er uitleest. ADC's kostten relatief veel tijd.
wil je dit in ASM proggen? gezien je vraag of iemand ADC's kan uitlezen met ASM.
antwoord op vraag 3.
het is gewoon een kwestie van experimenteren. heb ik ook gedaan en werkte.
ook een vraag aan jou:
heb je rekening gehouden met de andere sensoren? en met een koude start verrijking? cranking? temp correctie enz enz enz?
"Ik heb dus op 1 vraag van de 5 een antwoord. Verder alleen commentaar dat het onmogelijk is."
lees jij wel? ik zie een stuk meer antwoorden staan.
je vraagt enkel dingen, en geeft er geen antwoorden op tegenvragen. mss ook eens doen.
misschien een tip om eerst eens injectie te maken voor een auto. is al ingewikkeld genoeg, als ik zo hoor hoeveel kennis jij erover hebt.
ik wacht op jouw antwoord 
Bijna goed. Je gaat eraan voorbij dat een aantal instructies meer dan 1 cycle nodig hebben.
Naar mijn idee is 1.5mS erg rooskleurig. Als ik je goed begrepen heb, is het een 6-cylinder. Per omwenteling dus 3x ontsteken en 3x injector (toch?). Ding loopt vast wel 7000 rpm (of moet dat kunnen). Dus 140uS per omwenteling. Daarin moet je 3x alles berekenen, aan zetten, uit zetten en ondertussen nog wat andere grappen bijhouden ook. Uit de dikke duim: je hebt 50uS om het spul te berekenen. Dat zijn in het gunstigste geval 500 instructies. En dan ga je voorbij aan conversiegrappen enzo.
Ik wil niet zeggen dat het niet kan, maar eenvoudig is het niet. Gezien het niveau van je vragen... Nou ja, die opmerking is eerder gemaakt.
Verder klopt je instelling denk ik niet helemaal (zo je wilt: helemaal niet). Het is hier geen kostenloze vraagbaak. 'Ik wil' in de context van 'jullie hebben te' is niet erg gepast. Dat je niet de reacties krijgt die je zou willen hebben, kan natuurlijk ook wat over je vraagstelling zeggen...
Op 7 november 2006 12:29:01 schreef Marco69:
Naar mijn idee is 1.5mS erg rooskleurig. Als ik je goed begrepen heb, is het een 6-cylinder. Per omwenteling dus 3x ontsteken en 3x injector (toch?). Ding loopt vast wel 7000 rpm (of moet dat kunnen). Dus 140uS per omwenteling.
7000 rpm = 117 omw/s
dus 1 omw duurt 1/117s = 8,5ms
toch?
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Natuurlijk is het mogelijk, en wel om de volgende reden:
- De pic heeft genoeg i/o poorten en analoge ingangen.
- De pic kan 10.000.000 instructies per seconde uitvoeren. Hij heeft bij het hoogste toerental ruim 1,5ms om uit te rekenen wanneer de vonk moet komen. Dit betekent 15.000 instructies.
Moet kunnen lijkt me.
Volgens iemand die er ervaring mee heeft dus niet:
Ik gaf de link van het bedrijf van mijn broer omdat daar al tig studenten hebben geprobeerd af te studeren op soortgelijke projecten. Helaas met PIC en AVR gaat dat niet lukken.
Daarom gaf ik ook de link naar dat futurlec bord van 40MIPS
Heb je gewoon nodig, blijkt ook uit onderstaande quote van iemand die al zoiets gemaakt heeft.
zelf heb ik voor onze ECU een TMS470 microprocessor gekozen. dit is een 32-bit 40Mhz proc, met 16 ADC's en 40+ GIO's. injectie is goed te doen.(als je het gewoon batch-fire doet) ontsteking is een stuk lastiger en nauwkeuriger.
Op 7 november 2006 12:47:52 schreef GJ_:
[...]
7000 rpm = 117 omw/s
dus 1 omw duurt 1/117s = 8,5ms
toch?
Yep.. Je hebt gelijk. 't was laat en vroeg vanochtend... Scheelt een factor 60... Wordt iets reeler dan, maar dan nog...
ben toch ook wel benieuwd wat voor electronica-opleiding/kennis de TS heeft. niet dat dit alles zegt. maar toch als indicatie.
ben toch ook wel benieuwd wat voor electronica-opleiding/kennis de TS heeft. niet dat dit alles zegt. maar toch als indicatie.
De voorkennis is hbo elektrotechniek en gezond verstand.
7000 rpm = 117 omw/s
dus 1 omw duurt 1/117s = 8,5ms
toch?
Ja, 8000 rpm --> 2,5ms tussen 2 vonken.
ook een vraag aan jou:
heb je rekening gehouden met de andere sensoren? en met een koude start verrijking? cranking? temp correctie enz enz enz?
Ja, ik houd rekening met de inlaat lucht temperatuur en met de motortemperatuur.
Ik houd tot een bepaald aantal rpm een vaste vervroeging aan die ik instel met de verdraaibare schijf waar de reflectiesensoren op zitten.
Ik houd rekening met versnellend of vertragend toerental door niet te rekenen met de laatst gemeten tijd tussen de pulsen, maar door de volgende puls te voorspellen aan de hand van de voorgaande. Als in "vul aan: 3, 5, 7, ?"
wil je dit in ASM proggen? gezien je vraag of iemand ADC's kan uitlezen met ASM.
Ik kan me die vraag niet herrinneren, maar, ja, ik ga in asm programmeren.
je zegt dat je geen ervaring hebt met PIC's. heb je wel uC ervaring? anders wordt het erg lastig.
Ik heb een beetje ervaring met een msp 430. Hier heb ik voor school ooit een temperatuurregeling mee gemaakt in C. Het programmeren in C is alleen niet zo bevallen. Vandaar dat ik het nu in ASM ga proberen. Daarmee heb je veel beter kijk op wat de processor daadwerkelijk doet, en vooral op wanneer iets gebeurt.