Przeróbka ECU w S13
Moderator: Moderator
- drummslayer
- Proszę nie bić nowego
- Posty: 24
- Rejestracja: pn 18 gru, 2006 21:10
- Lokalizacja: Prawie Rzeszow / Londyn
- Kontakt:
Tom RESPECT a na pytanie pic czy nie to odpowiem wielblad chyba nie jestes
- roball
- -#Moderator
- Posty: 3140
- Rejestracja: śr 29 cze, 2005 21:33
- Lokalizacja: dziura na zachód od Wieliczki
Tomek pewnie zasuwa z lutownicą i kodem tak ciężko że nie ma czasu taczek załadować,
a co dopiero bloga na forum pisać
władował testową płytkę i okazało się że ECU nie obsługuje prędkości naddźwiękowych...
a serio to mógłbyś coś skrobnąć, choćby lajkonicznie
a co dopiero bloga na forum pisać
władował testową płytkę i okazało się że ECU nie obsługuje prędkości naddźwiękowych...
a serio to mógłbyś coś skrobnąć, choćby lajkonicznie
Człowiek człowiekowi wilkiem,
a zombie zombie zombie...
a zombie zombie zombie...
Projekt niestety limitowany jest moim wolnym czasem, niestety poza nim mam prace, rodzine itd. Tak wiec nie moge mu poswiecac kazdej wolnej chwili.Andiqqqq pisze:Temat umarł czy co?? Tom jakieś postępy z ECU?
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
i jak prace?
Jak prace ?? a powoli...
W miedzyczasie podczas eksperymentow uwalilo sie kilka elementow w tym Xilinx-y
plytka testowa juz raczej kolejnej wymiany nie przetrwa, ale narazie wszystko idzie z mniejszymi oporami.
Jak zwykle brak czasu, a poza pisaniem finalnego softu jest jeszcze sterta innych programow i wsadow do CPLD do testowania, programowania itp. czystej plyty - ktore niestety trzeba napisac. Jednak prace powoli ida do przodu. Kilka fotek - jak zwykle z telefonu czyli jakosc do D... z prac nad ECU...
W miedzyczasie podczas eksperymentow uwalilo sie kilka elementow w tym Xilinx-y
plytka testowa juz raczej kolejnej wymiany nie przetrwa, ale narazie wszystko idzie z mniejszymi oporami.
Jak zwykle brak czasu, a poza pisaniem finalnego softu jest jeszcze sterta innych programow i wsadow do CPLD do testowania, programowania itp. czystej plyty - ktore niestety trzeba napisac. Jednak prace powoli ida do przodu. Kilka fotek - jak zwykle z telefonu czyli jakosc do D... z prac nad ECU...
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
Więc kiedy będzie można spodziewać sie efektów? I jakie koszty są przewidywane na tą chwile?
Odnosnie terminu trudno mi cos powiedziec, narazie walcze z troche dziwnym zachowaniem pamieci FRAM podczas zapisu danych. Narazie wystepuje dziwna sytuacja przy zapisie bajtu wiekszego od 7Bh tzn. dosc czesto nie zapisuje i robi to w nastepnym cyklu zapisu.Sputnik pisze:Więc kiedy będzie można spodziewać sie efektów? I jakie koszty są przewidywane na tą chwile?
Bardzo mi tutaj brakuje wielokanalowego analizatora stanow logicznych i szukam problemu po omacku
Jakie problemy jeszcze moga wyjsc trudno mi powiedziec....
Odnosnie ceny to jesli uklad pozostanie w takiej postaci jak teraz (bez zmiany elementow) - oraz ceny plytek jak i elementow utrzymaja sie na wmiare stalym poziomie to mysle o 800zl.
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
Wiec aby cos bylo w temacie - zwlaszcza dla tych niecierpliwych jak i interesujacych sie elektronika i innymi tego tupu <font class="red">PIP</font>
Tak jak wspominalem temat idzie wolnymi krokami do przodu. Problemy z pamiecia o ktorych wspominalem juz sa przeszloscia jednak nie jest to zwiastun szybkiego zakonczenia prac.
Niestety taki projekt mimo dosc prostej elektroniki jest niezbyt prosty w realizacji. Przykladowo w przypadku konstrukcji swinki itp. robimy elektronike piszemy soft na PC i soft dla procesora w swince.
Tutaj ze wzgledu na to ze uklad ma wspolpracowac z ECU, a konkretnie z procesorem ECU - niejako dodatkowy uklad scalony na plycie ECU. Sam projekt elektroniki jest juz dosc mocno ukierunkowany na taka wspolprace - a ze wzgledu na uproszczenia (minimalizacje kosztow).
Tak wiec aby np. przeprogramowac pamiec FRAM w EcuMiniMod musze:
1. Wyjac z ECU
2. Podlaczyc do niego zasilanie 5V
3. Wgrac specjalny soft do procesora (napisany tylko na te potrzeby)
4. Wgrac specjalna zawartosc do CPLD (Xilinx)
5. Odpalic na PC program Loadera (ktory tez trzeba bylo napisac ) - nizej screenshot
6. Zapisac/Odczytac pamiec FRAM
7. Wgrac do CPLD (Xilinx) wsad zapewniajacy wspolprace z ECU
8. Wgrac do procesora wsad zapewniajacy wspolprace z ECU
9. Wsadzic plytke do ECU
10. Podpiac ECU do zasilania
i co ciekawe trzeba ta czynnosc powtarzac bardzo czesto
Docelowo w pamieci FRAM bedzie zapisany specjalny BootLoader ktory zapewni wmiare szybkie i bezbolesne podmiany softu dla ECU - jednak trzeba go tez napisac
Oto fragment jego kodu:
jednak sama komunikacja ECU<->MOD jest ze wzgledu na uproszczenia elektroniki mocno skomplikowana i chwilami myslalem ze bez przeprojektowania elektroniki sie nie obejdzie.
Dalej jeszcze nie jest idealna - no ale zaczelo cos dzialac i jak narazie ECU na stole lazi od paru dni bez zwiechy
Wczesniej zamiast oryginalnego softu ECU bylo odpalane na krotkich procedurkach testujacych polaczenie w stylu:
Oczywiscie na takich softach ECU nie dziala tak jak powinien - wiec samochodem raczej nie odjedziemy - jednak przydatne one sa w celach testowych...
Reasumujac poza samym wykonaniem elektroniki i napisaniem softu na PC (dla uzytkownika) nalezy wykonac:
1. Soft na procesor w MOD zapewniajacy
a) komunikacje z procesorem ECU (wymyslenie calego protokolu komunikacji)
b) obsluge wszystkich wej/wyj na modzie
c) Upgrade Firmware w MOD i ECU
d) sterte innych obslugiwanych funkcji przez mod
2. Bootloader dla procesora w ECU
3. Przerobienie oryginalnego softu ECU (nissana) tak aby wspolpracowal z MOD-em
przy okazj jeszcze dochodzi pisanie calej sterty programow pomocniczych i testowych
Ot i to tyle na dzisiaj na koniec wspomniany screenshot programu pomocniczego do programowania pamieci FRAM na plytce MOD-u
Jakies Pytania ???
Tak jak wspominalem temat idzie wolnymi krokami do przodu. Problemy z pamiecia o ktorych wspominalem juz sa przeszloscia jednak nie jest to zwiastun szybkiego zakonczenia prac.
Niestety taki projekt mimo dosc prostej elektroniki jest niezbyt prosty w realizacji. Przykladowo w przypadku konstrukcji swinki itp. robimy elektronike piszemy soft na PC i soft dla procesora w swince.
Tutaj ze wzgledu na to ze uklad ma wspolpracowac z ECU, a konkretnie z procesorem ECU - niejako dodatkowy uklad scalony na plycie ECU. Sam projekt elektroniki jest juz dosc mocno ukierunkowany na taka wspolprace - a ze wzgledu na uproszczenia (minimalizacje kosztow).
Tak wiec aby np. przeprogramowac pamiec FRAM w EcuMiniMod musze:
1. Wyjac z ECU
2. Podlaczyc do niego zasilanie 5V
3. Wgrac specjalny soft do procesora (napisany tylko na te potrzeby)
4. Wgrac specjalna zawartosc do CPLD (Xilinx)
5. Odpalic na PC program Loadera (ktory tez trzeba bylo napisac ) - nizej screenshot
6. Zapisac/Odczytac pamiec FRAM
7. Wgrac do CPLD (Xilinx) wsad zapewniajacy wspolprace z ECU
8. Wgrac do procesora wsad zapewniajacy wspolprace z ECU
9. Wsadzic plytke do ECU
10. Podpiac ECU do zasilania
i co ciekawe trzeba ta czynnosc powtarzac bardzo czesto
Docelowo w pamieci FRAM bedzie zapisany specjalny BootLoader ktory zapewni wmiare szybkie i bezbolesne podmiany softu dla ECU - jednak trzeba go tez napisac
Oto fragment jego kodu:
Kod: Zaznacz cały
;===========================================================
;ECCS BootBlock Software v 1.0 Beta by ToM/Turbokillers
;-----------------------------------------------------------
org $C000 ;UWAGA !!!! Przesunac pod koniec pamieci po napisaniu calosci
;Nowy format tablicy vektorow dla firmware
New_Reset:
jmp BootBlock_Reset
New_IRQ1:
jmp BootBlock_IRQ1
New_NMI:
jmp BootBlock_NMI
;-----------------------------------------------------------
Checksum_XOR EQU _Checksum_XOR
Checksum_ADD EQU _Checksum_ADD
_Checksum_XOR:
dc.b $00
_Checksum_ADD:
dc.b $00
;-----------------------------------------------------------
BootBlock_IRQ1:
rti
;-----------------------------------------------------------
BootBlock_NMI:
rti
;-----------------------------------------------------------
BootBlock_Reset:
jsr CheckCRC
jsr CheckEcuMiniMod
jsr CheckCommand
ldaa DataCounter
cmpa #$00
beq NoCommand
jsr CommandInterpreter
NoCommand:
ldaa CRCError
cmpa #$ee
beq No_New_Reset
jmp New_Reset ;Skocz do vektora reset w firmware
No_New_Reset:
jmp BootBlock_Reset
;-----------------------------------------------------------
CheckEcuMiniMod:
;Wyslij znaki ECU
ldaa #$45 ;E
staa $3000
ldaa #$43 ;C
staa $3000
ldaa #$55 ;U
staa $3000
;Jesli odebrane w odpowiedzi OK to zakoncz w innym wypadku delay i sprawdz ponownie
ldaa $3001
ldab $3001
cmpa #$4f ;O
bne No_MiniMod
cmpb #$4b ;K
bne No_MiniMod
rts
No_MiniMod:
;Dellay
ldaa #$00
NoMiniMod_Loop:
inca
cmpa #$ff
bne NoMiniMod_Loop
jmp CheckEcuMiniMod
...
...
...
...
Dalej jeszcze nie jest idealna - no ale zaczelo cos dzialac i jak narazie ECU na stole lazi od paru dni bez zwiechy
Wczesniej zamiast oryginalnego softu ECU bylo odpalane na krotkich procedurkach testujacych polaczenie w stylu:
Kod: Zaznacz cały
New_Reset:
ldaa #$00
petla:
...
...
...
nop
nop
nop
nop
ldaa $3001
cmpa #$41
bne olej1
ldaa $3001
cmpa #$01
beq olej1
cmpa #$02
beq wyslijbajt
cmpa #$03
beq wyslijdane
jmp olej1
wyslijdane:
ldaa #$41
petla2:
staa $3000
inca
cmpa #$5B
bne petla2
jmp olej1
wyslijbajt:
ldaa #$45
staa $3000
ldaa #$43
staa $3000
ldaa #$55
staa $3000
jmp olej1
olej1:
ldaa #$00
nop
nop
nop
...
...
...
jmp petla
Kod: Zaznacz cały
New_Reset:
ldaa #$00
petla:
...
...
...
nop
nop
nop
nop
ldaa $3001
cmpa #$41
bne olej1
ldaa $3001
cmpa #$01
beq olej1
cmpa #$02
beq wyslijbajt
cmpa #$03
beq wyslijdane
jmp olej1
wyslijdane:
ldaa #$41
petla2:
staa $3000
inca
cmpa #$5B
bne petla2
jmp olej1
wyslijbajt:
ldaa #$45
staa $3000
ldaa #$43
staa $3000
ldaa #$55
staa $3000
jmp olej1
olej1:
ldaa #$00
nop
nop
nop
...
...
...
jmp petla
Kod: Zaznacz cały
New_Reset:
ldaa #$00
ldab #$00
petla:
ldab $3001
staa $3000
stab $3000
inca
jmp petla
Oczywiscie na takich softach ECU nie dziala tak jak powinien - wiec samochodem raczej nie odjedziemy - jednak przydatne one sa w celach testowych...
Reasumujac poza samym wykonaniem elektroniki i napisaniem softu na PC (dla uzytkownika) nalezy wykonac:
1. Soft na procesor w MOD zapewniajacy
a) komunikacje z procesorem ECU (wymyslenie calego protokolu komunikacji)
b) obsluge wszystkich wej/wyj na modzie
c) Upgrade Firmware w MOD i ECU
d) sterte innych obslugiwanych funkcji przez mod
2. Bootloader dla procesora w ECU
3. Przerobienie oryginalnego softu ECU (nissana) tak aby wspolpracowal z MOD-em
przy okazj jeszcze dochodzi pisanie calej sterty programow pomocniczych i testowych
Ot i to tyle na dzisiaj na koniec wspomniany screenshot programu pomocniczego do programowania pamieci FRAM na plytce MOD-u
Jakies Pytania ???
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
A jednak bedzie trzeba zmienic elektronike i robic nowe plytki
Niestety o ile wysylanie danych z ECU do Mod-a dziala to w druga strone calosc jest bardzo niestabilna. Powinno pomoc dolozenie buforow z zatrzaskami na szyne danych pomiedzy atmelem i ECU. Prawde mowiac to obawialem sie tego juz podczas projektu - jednak chcialem minimalizowac koszty i rozmiar plytki (cena).
No ale jak to mowia czlowiek uczy sie na swoich bledach. Do tego wystepuje jeszcze od czasu do czasu dziwna sytuacja tzn. procesor ECU idzie podczas startu gdzies w "las"...
CO ciekawe nie pomaga wlacz/wylacz - jak zaskoczy to juz dziala ok...
Narazie nie udalo mi sie tego zdiagnozowac i bez analizatora stanow logicznych przynajmniej 27 kanalowego trudno bedzie zdiagnozowac problem. Mozliwe ze bufory zalatwia sprawe bo wydaje mi sie ze przez Atmela wystepuja jakies zaklucenia na szynie danych. Chyba ze to problem z CPLD i adresacja FRAM lub moze cos innego....
Nic ale ten problem narazie odkladam - zajme sie nim w dalszym terminie.
Narazie jednak plytek zamawiac nie bede - szkoda troche kasy, podebne jeszcze jeden CPLD na kabelkach do obecnej plytki... jak juz wszystko zacznie dzialac to zamowi sie wtedy juz finalne obwody drukowane.
Jesli chodzi o bufor jaki chce dodac to nizjej w formie schematu (mysle ze bardziej czytelne niz zamieszczane wczesniej fragmenty VHDL-a). Bedzie on w kolejnej kosci Xilinx 9536XL - tutaj jeszcze sa kolejne watpliwosci. Ciekawe czy procesor z ECU dogada sie ok z logika 3.3V Xilinx-a.... No ale wyjdzie to w praniu...
Do tego doszedlem jeszcze do wniosku ze warto troche przerobic czesc UBS o ile wykrywa uklad ok (zdjecie) to zmienie aby zasilany byl z komputera i wlaczenie/wylaczenie zaplonu (odciecie czesci napiec do ecu) nie powodowalo non stop odinstalowywanie i wykrywanie sprzetu przez Windows - co jest przy dluzszych pracach dosc upierdliwe...
Niestety o ile wysylanie danych z ECU do Mod-a dziala to w druga strone calosc jest bardzo niestabilna. Powinno pomoc dolozenie buforow z zatrzaskami na szyne danych pomiedzy atmelem i ECU. Prawde mowiac to obawialem sie tego juz podczas projektu - jednak chcialem minimalizowac koszty i rozmiar plytki (cena).
No ale jak to mowia czlowiek uczy sie na swoich bledach. Do tego wystepuje jeszcze od czasu do czasu dziwna sytuacja tzn. procesor ECU idzie podczas startu gdzies w "las"...
CO ciekawe nie pomaga wlacz/wylacz - jak zaskoczy to juz dziala ok...
Narazie nie udalo mi sie tego zdiagnozowac i bez analizatora stanow logicznych przynajmniej 27 kanalowego trudno bedzie zdiagnozowac problem. Mozliwe ze bufory zalatwia sprawe bo wydaje mi sie ze przez Atmela wystepuja jakies zaklucenia na szynie danych. Chyba ze to problem z CPLD i adresacja FRAM lub moze cos innego....
Nic ale ten problem narazie odkladam - zajme sie nim w dalszym terminie.
Narazie jednak plytek zamawiac nie bede - szkoda troche kasy, podebne jeszcze jeden CPLD na kabelkach do obecnej plytki... jak juz wszystko zacznie dzialac to zamowi sie wtedy juz finalne obwody drukowane.
Jesli chodzi o bufor jaki chce dodac to nizjej w formie schematu (mysle ze bardziej czytelne niz zamieszczane wczesniej fragmenty VHDL-a). Bedzie on w kolejnej kosci Xilinx 9536XL - tutaj jeszcze sa kolejne watpliwosci. Ciekawe czy procesor z ECU dogada sie ok z logika 3.3V Xilinx-a.... No ale wyjdzie to w praniu...
Do tego doszedlem jeszcze do wniosku ze warto troche przerobic czesc UBS o ile wykrywa uklad ok (zdjecie) to zmienie aby zasilany byl z komputera i wlaczenie/wylaczenie zaplonu (odciecie czesci napiec do ecu) nie powodowalo non stop odinstalowywanie i wykrywanie sprzetu przez Windows - co jest przy dluzszych pracach dosc upierdliwe...
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
Wiec tak info mialem dac juz jakis czas temu...
Dodatkowy CPLD dolutowalem praktycznie tego samego dnia co padl pomysl... i komunikacja dziala w 100% idealnie. Mialem dac info tego samego dnia, ale rozlozyl mi sie komp i musialem robic reinstal + czesc sciagac z netu...
Kwestje dziwnych zachowan ecu - to chyba wina stosowanego przezemnie kompilatora - musze dokladnie oblukac program do patchowania i wyniki kompilatora.
Narazie uklad po starcie wpada po pewnym czasie w przerwanie IRQ1 i z niego nie wychodzi... ale wyglada to mi na OK chyba ze tak dziwnie wiesza sie procek za kazdym razem. Musze dokladnie oblukac przerwanie - ale wydaje mi sie ze czeka na odpalenie auta....
Choc nie mam teraz jak sprawdzic ukladu w samochodzie...
Przy bootloaderku wywala mi dosc czesto przerwanie bad-opcode - czyli nieznana instrukcja dla procesora.... albo to problemy z odczytem FRAM-u albo jak wspominalem wina kompilatora...
Jak narazie troche duzo problemow naraz i brak chocby analizatora stanow aby dokladnie przesledzic co sie dzieje na szynach adresowych i danych ECU.
Uklad obecnie moze nie wyglada najpiekniej - jednak i tak czuje ze jeszcze czesc hardware moze sie zmienic do wersji finalnej. W sumie sam MiniMod jako uproszczony uklad powstal niejako w kilka dni (wizja i schemat) - wiec sam sobie jestem troche winny ze nie porobilem
wczesniej testow...
Oto fotki dolutowanego wynalazku:
Dodatkowy CPLD dolutowalem praktycznie tego samego dnia co padl pomysl... i komunikacja dziala w 100% idealnie. Mialem dac info tego samego dnia, ale rozlozyl mi sie komp i musialem robic reinstal + czesc sciagac z netu...
Kwestje dziwnych zachowan ecu - to chyba wina stosowanego przezemnie kompilatora - musze dokladnie oblukac program do patchowania i wyniki kompilatora.
Narazie uklad po starcie wpada po pewnym czasie w przerwanie IRQ1 i z niego nie wychodzi... ale wyglada to mi na OK chyba ze tak dziwnie wiesza sie procek za kazdym razem. Musze dokladnie oblukac przerwanie - ale wydaje mi sie ze czeka na odpalenie auta....
Choc nie mam teraz jak sprawdzic ukladu w samochodzie...
Przy bootloaderku wywala mi dosc czesto przerwanie bad-opcode - czyli nieznana instrukcja dla procesora.... albo to problemy z odczytem FRAM-u albo jak wspominalem wina kompilatora...
Jak narazie troche duzo problemow naraz i brak chocby analizatora stanow aby dokladnie przesledzic co sie dzieje na szynach adresowych i danych ECU.
Uklad obecnie moze nie wyglada najpiekniej - jednak i tak czuje ze jeszcze czesc hardware moze sie zmienic do wersji finalnej. W sumie sam MiniMod jako uproszczony uklad powstal niejako w kilka dni (wizja i schemat) - wiec sam sobie jestem troche winny ze nie porobilem
wczesniej testow...
Oto fotki dolutowanego wynalazku:
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
Ja nadal jestem pod wrażeniem,i czekam z niecierpliwościa wersji finalnej
No i chyba zaczelo dzialac - jeszcze trzeba by wpakowac do auta i sprawdzic
Ale jutro spadam na Warszawe i raczej mi sie to nie uda...
Co prawda jeszcze nie dziala z bootloaderem, ale w petli wysylane sa do atmela glupie dane
Tak samo po przylozeniu napiecia na pin 45 zlacza ECU (Ignition On switch signal) procka ladnie startuje i zalacza pompe paliwa (w moim przypadku LED-a)
No nic testuje dalej - graty wezme chyba do Wawy - mysle ze Wildcat nie bedzie sie bal podlaczyc cuda w swoim aucie i bedzie mozna dzialac nad dalsza czescia software...
A to co wyswietla nizej
(BAT: 9C - napiecie akumulatora) : 9C = 156, 156 * 0.08 = 12.48V - i to by sie zgadzalo
zobaczymy jak reszta...
Ale jutro spadam na Warszawe i raczej mi sie to nie uda...
Co prawda jeszcze nie dziala z bootloaderem, ale w petli wysylane sa do atmela glupie dane
Tak samo po przylozeniu napiecia na pin 45 zlacza ECU (Ignition On switch signal) procka ladnie startuje i zalacza pompe paliwa (w moim przypadku LED-a)
No nic testuje dalej - graty wezme chyba do Wawy - mysle ze Wildcat nie bedzie sie bal podlaczyc cuda w swoim aucie i bedzie mozna dzialac nad dalsza czescia software...
A to co wyswietla nizej
(BAT: 9C - napiecie akumulatora) : 9C = 156, 156 * 0.08 = 12.48V - i to by sie zgadzalo
zobaczymy jak reszta...
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]
No i pare innych funkcji tez dziala TPS (podlaczony na stole potencjometr)
Nie chce zapeszac ale wrozylo by to chyba rozwiazanie problemow z Hardware - jeszcze nie wiem jak sie zachowa zapis do FRAM. Jednak mam nadzieje ze nie bedzie problemow...
Nie chce zapeszac ale wrozylo by to chyba rozwiazanie problemow z Hardware - jeszcze nie wiem jak sie zachowa zapis do FRAM. Jednak mam nadzieje ze nie bedzie problemow...
[scroll]>>>ORDYNUSS TEAM<<< member #005/06 Nie jestem alkoholikiem jestem koneserem bo pić nie muszę, piję bo lubię ...[/scroll]