Busa k5 euro malli - Se todellinen projekti !

Lähetä vastaus

Hymiöt
:D :) :;): :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :tyhmamina: :baaa: :bike: :blues: :pomppu: :bowdown: :thumbup:
Katso lisää hymiöitä

BBCode on Käytössä
[img] on käytössä
[url] on käytössä
Hymiöt ovat käytössä

Otsikko
   

Laajenna näkymää Otsikko: Busa k5 euro malli - Se todellinen projekti !

Kirjoittaja PetriK » 17 Joulu 2007, 15:53

No joo - otan osaa läppärin suhteen. Vähän on omiakin vastaavia kokemuksia viime kesältä...

Toi .bin varmaan löytyy jostain ja kartat saadaan aikaan tuolla RR:n tekemällä softalla merko varmasti. Eli niistä ei huolta.

Sitten toi upload komento. Aina kun otat boot modessa yhteyden ECU:uun niin siinä olevat tiedot nollataan (tai siis erase asettaa ne 0xFF tilaan). Jos sulla on täysin nollattu ECU niin ei muuta kuin reset ja uudestaan boot modessa kiinni. Pitäisi osata lukea alkuperäinen ohjelma sisään.

Kirjoittaja timo3 » 17 Joulu 2007, 15:29

Petrik oot sää koittanut tota FDT:n upload toimintoa?

Sain sillä ecun jotenkin sekaisin, ei enää ottanut yhteyttä AUD eikä FDT:n kautta ecu:n, sit aikani virrat pääälle virrat pois reset teppuilessa se alkoi toimimaan.
Siinä hässäkässä mää ton läppärinkin tiputin.

Kirjoittaja timo3 » 17 Joulu 2007, 15:12

:comp :1087
Ihan nyt ei kyllä kiinnosta kyllä mikään, V#tt#.

Arvaa pyyhkäsinkö läppärin lattialle pöydältä ja Poweri puolelta 2 diodia kuumenee tuhottomasta ja kovalevyn sisältä kuuluu normaalia isompaa helinää.

Ei läppäriltä väliä, muuta tuo oma saamattomuus, pitäis tehdä varmuuskopiot, varmuuskopiot.

Se kawan tunerprolle tehdyt määrittelytiedostotkin oli karttojen ja niiden tietojen jota tähänmennesä on tiedossa, tehty lähes valmiiksi.
Sitten Aprilian ja Ducatien tiedot myös.

Oli siellä tietysti aikojen saatiossa netistä keräiltyjä hyödyllisiäkin ohjelmia, mutta ne löytää kyllä varmaan uudestaan.

Kaikkein entiten hatuttaa, että tehopenkin viimeisin kääntämätön versio oli siinä koneella, jotain vanhempia kääntämättömiä versioita löytyy muilta koneilta kyllä, no täytyy toivoa, ettei siihen täytyisi tehdä enää muutoksia.

Täytyy keräillä muilta koneilta kaikki rippee mitä löytyy ja äimäillä kuinka ison vahingon sain tupoloinnillani aikaan.

Petrik jos sulla löytyy se kawan bin tiedosto lähetä mulle se, ettei täydy uudestaan lukea ecu:ta.

Kirjoittaja PetriK » 17 Joulu 2007, 13:47

RR oli tehnyt softatyökalun joka automaattisesti lukee kaikki kartat .bin tiedostosta ja tekee siitä enguinity määrittelytiedoston. Toimii busa, zx6 ja sv tiedostoissa. Luulisin että toimii myös z1000 tiedostossa.

Siihen kun rakentaa lisäominaisuuden tai jopa uuden softanpätkän jolla voidaan lukea myös IDAPron .idc tiedostosta karttojen nimet niin alkaa tulemaan karttojen määrittelystä paljon helpompaa.

Mulla ei ole mitään softankehitysympäristöä joka osaisi PC:n tiedostojärjestelmää.

Kiinnostaisiko Timo3:a tehdä tällainen softa joka lukee yhdestä tiedostosta stringin joka on aina muotoa "Map 0x00028010" ja etsii toisesta tiedostosta rivin MakeName (0X28010, "RPM_correction_Unk1_defs"); ja muuttaa tuohon ekaan tiedostoon sen "Map 0x00028010":n tilalle tuon "RPM_correction_Unk1_defs".

Tässä käytännön esimerkki:

.xml Tiedosto
<table type="2D" name= "289BE" category="Unk" storagetype="uint8" endian="big" sizex="17" sizey="17" storageaddress= "0x289BE" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x2897A" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x2899C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28A20" category="Unk" storagetype="uint8" endian="big" sizex="40" sizey="40" storageaddress= "0x28A20" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28980" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x289D0" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28B96" category="Unk" storagetype="uint8" endian="big" sizex="29" sizey="29" storageaddress= "0x28B96" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B22" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B5C" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>
<table type="2D" name= "28BD4" category="Unk" storagetype="uint8" endian="big" sizex="33" sizey="33" storageaddress= "0x28BD4" ><scaling units="UNKNOWN" expression="x" to_byte="x" format="#" fineincrement="1" coarseincrement="10" /><table type="X Axis" name="Throttle" storagetype="uint8" endian="big" storageaddress= "0x28B50" > <scaling units="%" expression="x*.00152587890625" to_byte="x/.00152587890625" format="0.0" fineincrement="1" coarseincrement="5" logparam="P8"/></table><table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="big" storageaddress= "0x28B92" ><scaling units="RPM" expression="x/2.56" to_byte="x*2.56" format="#" fineincrement="50" coarseincrement="100" logparam="P8"/></table></table>


.idc Tiedosto:
MakeName (0X28000, "Ambient_less_Manifold_correction_dword_28000");
MakeDword (x=0X28004);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28008);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2800C);
MakeDword (0X28010);
MakeName (0X28010, "RPM_correction_Unk1_defs");
MakeDword (x=0X28014);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28018);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (0X2801C);
MakeDword (0X28020);
MakeName (0X28020, "Gear1_defs");
MakeDword (x=0X28024);
OpOff (x, 0, 0X0);
OpOff (x, 128, 0X0);
MakeDword (x=0X28028);

MakeName (0X28010, "RPM_correction_Unk1_defs");
Tiedostoissa on paljon muutakin tauhkaa, mutta tämä on ainut etsi ja korvaa mitä tätyisi tehdä. Noita muutettavia taulun nimiä on yli sata.




Edited By PetriK on 1197892379

Kirjoittaja PetriK » 16 Joulu 2007, 23:44

Busasta löytyy kaksi TPS muuttujaa joita käytetään karttojen x akselin määrittelyssä:

Toinen on vaan jaettu 256:lla, muuten sama. "Normaalisäädöillä" tuo "kaasukahvan" liikealue näyttää olevan välillä 0x3900-DC00. Pienimmilläänkin ei mene alle 0xC00 vaikka olisi 0v.

FFFF8342, TPS 0xC00=0v, TPS normal range: 3900-DC00
FFFF8346, FFFF8342/0xFF

Noita TPS karttojakin on aika monta, varsinkin kun suurin osa on valittavissa ns. kytkimen takaa. Eli ns. ilokaasukartan tai peruskartan valitseminen on PortH bit 4 takana joka on kytketty siihen MS signaaliin.

Kirjoittaja PetriK » 15 Joulu 2007, 21:39

1v/5v = 20%, eli jos on tyhjäkäynnillä 1v niin silloin on 20% ? Vref on varmaan 5.05v AD muuntimella ja nollataso on nolla volttia. Noista kun laskee niin vaikuttaisi aika luonnolliselta luvulta. Mutta kun päästään pidemmälle disassembloinnissa sunkin koodissa niin eiköhän asia ala selviämään...

Kirjoittaja timo3 » 15 Joulu 2007, 13:00

Tossa TPS skaalauksessa on jotain hämärää kun se alkaa sytytyskartassakin niin ylhäältä.

Niinkuin jo aikaisemmin mainitsit, ruiskussa ohjas on alhalla AP kartalla pääsäntöisesti, mutta sytytyksessä TPS 20 on aika iso arvo kartan pienimmäks TPS skaala arvoksi vai?

kawassa TPS jännite on idle 0.99-1.03v ja full 4.19-4.39v, se skaala on varmaan sidoksissa tohon TPS jännitteeseen jollain kaavalla, eikä prosentteihin tai asteisiin.




Edited By timo3 on 1197716653

Kirjoittaja PetriK » 15 Joulu 2007, 10:22

Eilen illalla selvittelin karttojen RPM skaalausta. Niissä on käytössä kaksi menetelmää:

RPM = 24*10 / MUUTTUJA * 65535

tai

RPM = MUUTTUJA/256 * 10

Tuo ylempi saattaa myös auttaa sytytysennakon arvon laskemista karttoihin koska se perustuu kampuran pyörän 24 hampaaseen ja juuri tätä informaatiota olisi järkevä käyttää myös ennakon määrittelyssä.

Kirjoittaja PetriK » 14 Joulu 2007, 22:02

Kyselit näistä kierrosrajoittimista. Busassa kierrosrajoittimet ovat tällaisella alueella, löytyy siitä z1000 IDA tiedostosta.:

ROM:00029576 RPM_10800: .data.w h'56D ; DATA XREF: sub_E014:off_E0C4o
ROM:00029578 RPM_10900: .data.w h'560 ; DATA XREF: sub_E014:off_E0C8o
ROM:0002957A RPM_11005: .data.w h'553 ; DATA XREF: sub_E014:off_E0CCo
ROM:0002957C RPM_11100: .data.w h'547 ; DATA XREF: sub_E014:off_E0D0o
ROM:0002957E RPM_10700: .data.w h'57A ; DATA XREF: ROM:off_E178o
ROM:00029580 RPM_10800_0: .data.w h'56D ; DATA XREF: ROM:off_E17Co
ROM:00029582 RPM_10500: .data.w h'594 ; DATA XREF: ROM:off_E180o
ROM:00029584 RPM_10600: .data.w h'587 ; DATA XREF: ROM:off_E184o
ROM:00029586 byte_29586: .data.b h'80 ; DATA XREF: sub_E014:off_E0B8o
ROM:00029587 byte_29587: .data.b h'12 ; DATA XREF: ROM:off_DA58o
ROM:00029587 ; ROM:off_DAB4o ...
ROM:00029588 Gear3rpmlimit_11400_byte_29588:.data.w h'7200 ; DATA XREF: ROM:off_E8D4o
ROM:0002958A Gear3rpmlimit_11600_unk_2958A:.data.w h'7400 ; DATA XREF: ROM:off_E8D8o
ROM:0002958C Gear3rpmlimit_11800_byte_2958C:.data.w h'7600 ; DATA XREF: ROM:off_E8DCo
ROM:0002958E Gear3rpmlimit_12000_unk_2958E:.data.w h'7800 ; DATA XREF: ROM:off_E8E0o
ROM:00029590 Gear4rpmlimit_11400_word_29590:.data.w h'7200 ; DATA XREF: ROM:off_E8E4o
ROM:00029592 Gear4rpmlimit_11600_word_29592:.data.w h'7400 ; DATA XREF: ROM:off_E8E8o
ROM:00029594 Gear4rpmlimit_11800_word_29594:.data.w h'7600 ; DATA XREF: ROM:off_E8ECo
ROM:00029596 Gear4rpmlimit_12000_word_29596:.data.w h'7800 ; DATA XREF: ROM:off_E8F0o
ROM:00029598 Gear5rpmlimit_11400_word_29598:.data.w h'7200 ; DATA XREF: ROM:off_E8F4o
ROM:0002959A Gear5rpmlimit_11600_word_2959A:.data.w h'7400 ; DATA XREF: ROM:off_E8F8o
ROM:0002959C Gear5rpmlimit_11800_word_2959C:.data.w h'7600 ; DATA XREF: ROM:off_E8FCo
ROM:0002959E Gear5rpmlimit_12000_word_2959E:.data.w h'7800 ; DATA XREF: ROM:off_E900o
ROM:000295A0 Gear6rpmlimit_10000_unk_295A0:.data.w h'64A6 ; DATA XREF: ROM:off_E904o
ROM:000295A2 Gear6rpmlimit_10000_unk_295A2:.data.w h'64E4 ; DATA XREF: ROM:off_E908o
ROM:000295A4 Gear6rpmlimit_11800_byte_295A4:.data.w h'7600 ; DATA XREF: ROM:off_E90Co
ROM:000295A6 Gear6rpmlimit_12000_unk_295A6:.data.w h'7800 ; DATA XREF: ROM:off_E910o


Ja luvut tunnistaa siitä että ne on busassa joko

rpm/100

tai

rpm/256*100

Kirjoittaja PetriK » 14 Joulu 2007, 19:06

Sitten tuosta emulaattorista...

Emulaattori toimii suurinpiirtein, aina silloin tällöin tulee virhekoodi kun osat ei ole ihan täysin mitoitettu.

Injektoreiksi löytyi kaksi viimeistä linjamuuntajaa partcosta. Niiden edessä on 100Ohm vastus ja yhteen muuntajaan tulee kaksi signaalia. Ecussa kaikki paluupulssit menevät konkkien kautta samaan, joten ei haittaa vaikka pulssit tulevatkin vähän eri tahtia - mutta vaiheiden pitää olla samoin päin.

Eli käytännössä puoliksi ja injektoreiksi käynee kaksisisääntuloiset muuntajat niin että niitä tarvitaan yhteensä kaikenkaikkiaan neljä.

Sitten tästä toisesta emulaattoriin liittyvästä asiasta. AUD liitännän avulla pystyy seuraamaan reaaliaikaisesti muuttujia, eli näen suoraan mm. kierrosnopeusmuuttujan sekä tps:n arvot 16 bittisistä muuttujista. Noiden avulla päästään kiinni niihin karttoihin vähän tarkemmin myöhemmässä vaiheessa.

Siis konkreettisesti terminaalille tulee mm. seuraavanlaista tietoa:

Coolant temperature,FFFF81D2 = 000000AD
Ambient pressure,FFFF81CA = 000000A7
Gear position sensor,FFFF83CF = 00000040
Unk AN10,FFFF81DC = 00000000
Actual RPM ,FFFF8398 = 00000019
TPS Sensor ,FFFF81E6 = 00000011
PORTH ,FFFFF72C = 000000FF
PORTH H RAM ,FFFF8160 = 00000002

Eli tuosta näkyy että on kuutonen päällä 0x40 (100000) ja kieroksia näyttää olevan mittarin mukaan 2800. Tuosta veikkaan että 0x19 = 25 eli 2500 kierrosta voisi olla oikea luku...

Kirjoittaja PetriK » 14 Joulu 2007, 18:56

Ensiksi suurkiitos PIC ohjelmoinnista ja sen neuvomisesta!

Sitten tuohon pulssin muotoon: Suunnilleen +20V ja -6V taisi markerit antaa luvuiksi kun katsoin. Pulssin muoto ei ole muuttunut vaan on edelleen tämä alla oleva, vain jännitetasot on nostettu.

Kuva

Kirjoittaja timo3 » 14 Joulu 2007, 18:09

Petrik paljon sulla on siinä pulsissa jännite huipusta huippuun, silloin kun se ecu tunnistaa ne kampiakselipulssit?

edit:

Mittappas silloin kun ecu on käynissä ja kierrokset "koneessa" ja laita kuva pulssin muodosta jos passaa.




Edited By timo3 on 1197648845

Kirjoittaja PetriK » 13 Joulu 2007, 23:58

Timo3:lta tuli tänään postissa valmiiksi ohjelmoitu PIC. Todella suuri kiitos Timo3:lle. PIC oli yllättävän helppo kytkeä toimintakuntoon, jo noin 30 min päästä ECU oli käyttökunnossa PIC pohjaisella signaaligeneraattorilla ja prosessorikortti vapautettiin muuttujien ja porttien arvojen lukemiseen. Eli kohta päästään varsinaiseen testausvaiheeseen kunhan ensin saan vielä muutaman muuntajan hankittua simuloimaan injetoreita niin että loputkin virhekoodit häviävät.

Kirjoittaja PetriK » 11 Joulu 2007, 20:25

No niin, sain korjattua vian kampuran ja nokkapulssin generoinnissa. Lisäsin transistorit ja syötön +5V sekä lisäksi ajan muuntajia 2:1 moodissa (jännitteen tuplaus). Nyt toimii hienosti.

Samalla tuli testattua kierrosrajoittimen noston vaikutus. Nyt busa pyörittää 12.000 rpm saakka ;-)

Näistä lähtökohdista PIC lienee kuitenkin toimiva vaihtoehto jotta tuon Renesasin prossukortin saa vapautettua AD muunnoksille sekä AUD debuggaukselle testauksen aikana ? Onko se PIC kytkis riittävän yksinkertainen meikäläiselle toteuttaa ? (Huom, en ole pelannut vuosiin elektroniikan parissa ennen tätä projektia ja nytkin tämä on enemmän sähkömekaniikkaa kuin varsinaista elektroniikkaa).

Kuva

http://macmadigan.no-ip.com/Public/ECU/ProjectStatus_11.12.2007.jpg

Kirjoittaja PetriK » 11 Joulu 2007, 01:09

timo3 kirjoitti:No jos et saa sillä synteemillä toimii lähetän sulle tosta kytkiksen, sillä pitäis onnnistua, muutin säätöjännitteen 0-4560mv nyt pääsee riittävän alas ja ylös taajuudella.

Ainoa mikä on tuo 12 bittinen A/D muunnin MAX187 maksaa joku 20-30 euroa riippuu mistä tilaa, aikonaan MAX:lta sai sampleja, en tiedä onko nykyään politiikka muuttunut
PIC vaikuttaa hyvältä, toisaalta tuo äänikortin käyttö vielä houkuttaisi. Se olisi mahdollista jokaiselle harrastajalle hyvin pienellä vaivalla (pelkän kaapelin liittäminen liittimiin). Sillä voisi testata oman pyörän injektorit ja puolat paikallaan ollessa.

Löysin netistä paljon ns. sound generator softia, mm www.wavebuilder.com joka teke siniaaltoa käyttäen windows sound systemiä. Kyllä se softa onnistuisi sinnekin jos olisi vaan API tiedossa ?

http://www.google.com/search?....Bsource

Ylös