Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Ak máte problém s elektronikou v aute a motorke, alebo proste chcete do auta a motorky niečo zapojiť

Moderátori: mirosne, Moderátori

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 09 Nov 2019, 18:46

To že si do tej funkcie dal 1 ale neznamená že tá SPI tak aj naozaj pobeží.
SPI preddelič na MEGA328 sa dá nastaviť na max 128. Teda pri 16Mhz kryštály tam máš CLK=125kHz
Ten tvoj osciloskop sa môže aj rozkrájať, ale toto neuvidí.
Keby si nebol aduinista tak hodiny sa dajú tiež vydeliť až 256krát, alebo prepnúť na vnútorný 128kHz RC oscilátor. Ale na arduine by ti potom nefungoval bootloader a už by si to nerozbehal.
Takže to vidím v tvojom prípade ako no way.

Ešte ma napadla jedna realizovatelná cesta aj na arduine a to softverové SPI. Tam si to dokážeš oneskoriť koľko len chceš. Teda aj 1 sekundu.

-- Spojený príspevok 09 Nov 2019, 18:55 --

Ak to chceš naozaj nakódiť vlastné. Tak ako som už písal na Arduine nemôžeš použiť hardvérové SPI. Tam dáš minimálnu frekvenciu 125kHz

Napísať si vlastné SPI nie je zložité, ale chce to programátorský skill trochu viac než je arduinista-lepič knižnic. V tomto ohľade neviem ako na tom si. Určite aj sofwarové SPI už existuje. Takže možno stačí len pohľadať.
Inak je to trocha rotácií a kludne sa môže použiť aj delay na oneskorovanie.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 09 Nov 2019, 19:10

peterple napísal:Ak to chceš naozaj nakódiť vlastné. Tak ako som už písal na Arduine nemôžeš použiť hardvérové SPI. Tam dáš minimálnu frekvenciu 125kHz

Napísať si vlastné SPI nie je zložité, ale chce to programátorský skill trochu viac než je arduinista-lepič knižnic. V tomto ohľade neviem ako na tom si. Určite aj sofwarové SPI už existuje. Takže možno stačí len pohľadať.
Inak je to trocha rotácií a kludne sa môže použiť aj delay na oneskorovanie.
Heh, trocha programátorský skill. Úprimne som nekódil prakticky nič okrem pár hovadín v C++, Jave. Dá sa povedať že to čo je na tom Arduino fóre ten kód som naozaj zbúchal sám aj s tým že som si tú knižnicu študoval ako funguje (priznám sa vela veciam som nerozumel) bol môj hádam prvý nejaký poriadny kód čo aj niečo "užitočné" ako tak robí.
Úprimne som sa to najprv snažil robiť podľa vieda na Youtube. Sklamanie prišlo keď som zistil že tá moja používa SPI a tá jeho je nejaká ATMegácka obyčajná EEPROM s napr. 7 vstupmi a 7 výstupmi. (prip. link : Youtube, nádherne vysvetlene videa po ANG, je to borec)

Programovať viem tak na zakladnej urovni sa dá povedať. A už naozaj nemám ani len páru o tom ako spraviť SW SPI a dorobiť to do Arduina prakticky. Niečo skúsim nájsť.

Logický analyzátor som si stiahol, pôjdem ho otestovať.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 09 Nov 2019, 19:18

No tak sa pozri ako je robená software serial. Potom z toho vyhodíš štart a stop bit. Pridáš na ďalšie linky CLK a CS a už to je. Keď dáš poriadny delay a pripojíš si ledky tako v tom videu tak ani logický analyzator nebudeš potrebovať
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 09 Nov 2019, 21:49

Ešte som sa nestihol pozrieť na SW Serial no zapojil som nejaký ten Logic Analyzer.

Ten Clock sa mi nepáči a pri jednom bite nieje jednoznačne známe či je to 0 alebo 1 , CHIP_SELECT PIN funguje ako má , zdá sa že asi aj Serial In (MOSI) funguje fajn no ten clock to celé pokazil.

Označenie PINOV v programe :
PIN 10 ... CS(Chip Select)
PIN 11 ... SI [MOSI] (Serial In)
PIN 12 ... CLK (Clock)
Zobrazenie v programe
Zobrazenie v programe
Naznačene 0, 1
Naznačene 0, 1
LogicAnalyzer2.png (4.08 KiB) 4697 zobrazení
0

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 10 Nov 2019, 00:00

Pri rôznych testoch s tým Logic Analyzerom som prišiel na jednu vec. Buď tá SPI knižnica si zo mňa robí srandu (tzv. je na hovno) alebo ja fakt netuším.
Tak ako celý kód som proste dal do jendoduchej formy. Typu CS PIN dám LOW, pošlem na SI [MOSI] PIN hodnotu 0x00 čo je 8 Bitov však ? No a teraz nech mi niekto vysvetlí prečo vidím poslaných iba 6bitov ? A prakticky toto isté mi robilo aj hneď pri prvom programe čo som sem poslal. Doslova vynechával bity. Našiel som na Stack Exchange že ak chcem poslať 16bit adresu napr. mal by som použiť:

SPI.transfer(address >> 8 ); // Send the upper byte first ... Address = uint16_t
SPI.transfer(address); // Send the lower byte

No aj napriek tomu som na Logic Analyzery videl iba 11bitov ? a z toho 2 nejasné či je to 1 alebo 0. Chyba je v tých hodinach ako vidím

Kód: Vybrať všetko

#include <SPI.h>
//Pins
#define CS 10
#define MOSI 11
#define MISO 12
#define SCK 13

SPISettings eeprom(1000, MSBFIRST, SPI_MODE0); //SPI settings for M95160 , (maxSpeedOfCommunication, dataOrder, dataMode)

void read_eeprom(uint16_t address){
  SPI.beginTransaction(eeprom);
  digitalWrite(CS, LOW); //ChipSelect PIN , LOW while reading
 SPI.transfer(address >> 8);
 SPI.transfer(address);
  digitalWrite(CS, HIGH);
 SPI.endTransaction();
}

void setup() {
  Serial.begin(115200);
  pinMode(CS,OUTPUT);
  pinMode(MOSI, OUTPUT);
  pinMode(MISO, INPUT);
  pinMode(SCK, OUTPUT);
  digitalWrite(CS, HIGH);
  SPI.begin();
}

void loop() {
  read_eeprom(819); //Nahodne cislo ... Pri 16bit by to malo byt Binarne : 0000 0011 0011 0011
  delayMicroseconds(200); //Delay pre lepsie zobrazenie v Logic Analyzery

}
Označenie PINOV v programe :
PIN 10 ... CS(Chip Select)
PIN 11 ... SI [MOSI] (Serial In)
PIN 12 ... CLK (Clock)
Prílohy
poslanych 8bit
poslanych 8bit
poslanych 16bit (kod v texte)
poslanych 16bit (kod v texte)
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1146
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa Atlan » 10 Nov 2019, 00:39

Len aby bolo jasne, casovat delayom na us u arduima nejde. Pac si zije vlastnym zivotom...
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 10 Nov 2019, 09:09

Atlan: Prečo by to nešlo? Nepoužíva milis, takže ho neprerušuje timer. Má tam iba serial ten prerušuje ale len pri príjme a vysielaní, čo nie je také strašné. A on ten terminál používa len opačným smerom teda z PC nič neposiela a teda ani ten serial neprerušuje ten delay Tak čo by tam kazilo to časovanie cez ten delay?

Lukas: No to už je lepšie zobrazenie ten logický analyzátor. Len vždy treba vedieť aké to má limity a ako to pracuje. Ak je to zase niečo čo zbúchal nie moc namakaný arduinista tak to polepil z existujúcich adruino kódov. Napr pre časovanie použil milis, pre prácu s portami tie ich mega pomalé funkcie a pod. Tam potom môže dochádzať k situácii na ktorú upozorňuje Atlan. A to je to že to arduino bude po určitú dobu z pohľadu snímania logických stavov odstavené. Deje sa to práve pri tom kedy musí stíhať počítať čas, posielať data a pod. Assemblerista by to s kludom nahnal možno do 1MHz plynulého vzorkovania. Arduinista potom bude kludne aj 10 či 100 krát pomalší.
A to je pravdepodobne dôvod že ti to klame a neukazuje všetko ako má.

V prvom rade som písal že najmenší CLK čo vie arduino urobiť je 125kHz. Dá sa ti to aspoň približne overiť tým analyzátorom. Je tam tá x os časovo kalibrovaná?

Neviem si predstaviť že by SPI neposlalo 8 bitov. Je to hw a ten funguje dobre. Jediná možnosť ako to dohúkať je, že dáš vysielať nový údaj počas vysielania predchádzajúceho. To určite tá knižnica rieši. Stačí si pozrieť ako je napísaná funkcia na odoslanie znaku. Určite sa tam čaká na príznak že je SPI neaktívne.
Okrem toho by to blblo iba pri vysielaní viacerých znakov. To vysielanie jedného znaku s následným počkaním by aj prípadnú chybu sw eliminovalo.
Takže s takmer 100% istotou si dovolím tvrdiť že ta klame ten logický analyzátor.
To overíš tak že si okrem nuly dáš vysielať aj rozumnejšie hodnoty. Ako napríklad 1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80, 0x55, 0xAA a pod.
Z toho už by sa malo dať vydedukovať kde ten analyzátor zablbne.

Ako vidno stále je sledovanie takýchto rýchlostí za hranicou tvojich možností. Ale inak zatiaľ good job, ktorá má hlavu a pätu. :thumbup:

-- Spojený príspevok 10 Nov 2019, 09:31 --

Čo sa týka rýchlosti tak to asi sedí. Ak veríme že ten delay urobilo arduino 250μs tak potom doba vysielania tej nuly je asi 72μs. Čo dá f CLK 110kHz čo je dosť blízko očakávaným 125kHz. Merané pravítkom na 24" monitore s presnosťou okolo 1mm. Takže ďalší argument že SPI funguje tak ako má. S tým to by sa už dalo experimentovať ohľadom čítania a zápisu tej EEPROM čo máš ako samostatný chip.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
rogi
Stály člen
Stály člen
Príspevky: 401
Dátum registrácie: 23 Apr 2009, 00:00
Bydlisko: Ružindol

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa rogi » 10 Nov 2019, 10:04

Prečo Slováci vždy komplikujú riešenie problému? Ze by to bolo len pre to to ,Pre niekoho aj cesta je cieľ! Možno sa ti to podarí pri tak starom aute, kde neboli také softvérové ochrany, na novom by to nešlo. Držím palce.
Čo som videl len na body computeri prepísať program, aj to občas nejde. Zámena riadacka ak je v nej nahraný softvér sa nedá prepalit dáva sa nová, tak to majú dnešné auta poriešené.
0
viem iba základy s elektrotechniky, viem urobiť plošák foto cestou, osadiť súčiastkami, keď to nefunguje som v koncoch :( ale nie celkom :D
požívam tieto MM, DT9205B, PU500, PU140, najviac BM235

jurosdi
Stály člen
Stály člen
Príspevky: 162
Dátum registrácie: 06 Máj 2016, 20:49
Bydlisko: Prašice

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa jurosdi » 10 Nov 2019, 18:53

Viem o jednej RJ na Stilo 1.6 benzin. Kamoš má buračku.( motor sa dá naštartovat).
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 11 Nov 2019, 20:04

Mýlil som sa keď som tvrdil že minimálna frekvencia pre SPI na arduine je 125kHz. Dnes ma napadlo ako na to. Je to taký malý hack a upozorňujem že sa vďaka tomu spomalí všetko (aj delay, aj seriová komunikácia). Najpr ako to vyzerá keď ten tvoj posledný program lusknem do svojho arduina a naberiem analyzátorom za 10€
Vyslanie dvoch byte f SCK = 125kHz
Vyslanie dvoch byte f SCK = 125kHz
Mezera medzi dvomi prenosmi 202μs
Mezera medzi dvomi prenosmi 202μs
Potom som upravil tvoj setup takto

Kód: Vybrať všetko

void setup() {
  noInterrupts();   //blokovanie preruseni, pretoze povolenie zmeny CLK za 4 tiky vysumi
  CLKPR = 1<<CLKPCE;  // povol zmenu CLK
  CLKPR = 1<<CLKPS2;  //    clk/16
  interrupts();  
  
  Serial.begin(115200);
  pinMode(CS,OUTPUT);
  pinMode(MOSI, OUTPUT);
  pinMode(MISO, INPUT);
  pinMode(SCK, OUTPUT);
  digitalWrite(CS, HIGH);
  SPI.begin();
}
a výsledok je tento
Vyslanie dvoch byte f SCK = 7.8kHz
Vyslanie dvoch byte f SCK = 7.8kHz
Mezera medzi dvomi prenosmi 3.2ms
Mezera medzi dvomi prenosmi 3.2ms
Využil som to že na týchto megách (MEGA328) je možné za jazdy prepínať rýchlosť. Takže po resete bootloader beží plnou rýchlosťou a všetko funguje ako má. Až potom v setupe sa tá rýchlosť zníži 16x. Teda MCU nebude taktované 16MHz ale iba 1MHz. Kedže ale neviem ako sa to dá arduinu vysvetliť tak si všetky rutiny myslia že bežia na 16MHz a teda všetko je 16x spomalené.

Pokiaľ ta to ešte neprestalo baviť, toto uvidíš už aj na tom tvojom analyzátore z arduína. Maximum ktorým sa dá deliť oscilátor je 256. Takže to ide ešte 16krát spomaliť
Happy hacking.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 12 Nov 2019, 00:46

Ospravedlňujem sa za chvíľu neaktivity.

rogi : Ono áno je to komplikovanie problému. Áno viem že sa to tak robí že sa kupuje nová keď už no ide o to ,že je to finančne náročnejšie ako sa zdá. Keby nie nešpekulujem tu takýmto spôsobom. Ďalšia vec je, že sa toho mnoho priučím a aj s tým podtónom to robím. Veľa vecí som sa dozvedel už od pána peterple , ktoré som netušil.

jurosdi : Vďaka za ponuku ale bola by mi na 2 veci nakoľko by som musel robiť prakticky to isté. Tiež mám dve RJ (tú moju a tu čo sa tu snažím naprogramovať) z benzínových 1.6tiek. Ale vďaka za ponuku. V prípade, že by som mal záujem a bolo by to aktuálne napíšem súkromnú správu.

peterple : Prv sa vrátim k tej staršej správe. Skúšal som na starom kóde aj rôzne hodnoty a robilo to presne to isté takže celé nanič. Skúšal som aj SPI clock divider cez príkaz jeden na 128 ale tak či tak to bolo to isté. Inak Ďakujem za pochvalu :biggrin: . Už v tej staršej správe Ďakujem za objasnenie.

No ale k novej správe. Naštval som sa a nieje to posledný raz čo budem s takýmto niečím robiť. Baví ma to tak som si z Ali objednal do buducna pre bastlenie Logický analyzátor.
Tento krát ten tvoj kód funguje úplne úžasne. Clock je krásny symetrický tak ako by mal byť. Fakt sa nestačím diviť a že zízam že mi to ten Arduinácky Logic Analyzer ukazuje skoro tak ako tebe . Už teraz sa musím poďakovať za tvoj investovaný čas :agree: . A nie neprestalo ma to baviť, musím tú RJ proste spraviť ale zároveň ma to baví. No začala znova škola a aj to trebalo robiť tak som sa k tomu hneď nedostal. Dúfam že sa mi to podarí spraviť.

No je tu možno jeden malinký problém. Pri posielaní nieje problém všetko vychádza. No nemohol som si nevšimnúť špičky po ukončení / začatí nového príkazu. V prílohách to bude vidno. Možno to je len chyba toho Arduino Analyzera.

Ešte by som sa rád spýtal, ak mám nastavený SPI_MODE0 tak mi berie hodnotu ktorá je na MOSI pri tom ako CLOCK stúpne (rising edge) alebo až keď klesa (falling edge) ?

Špičky sú označené červenou šípkou. Priebeh je rozdelený podla aktualneho prikazu, ktorý prebieha.
Na ľavo dole je označený asi dosť dôležitý údaj , ktorý značí asi X-ovú os po kolko je delená alebo ako to nazvať.

Prikladám ešte kód :

Kód: Vybrať všetko

#include <SPI.h>
//Pins
#define CS 10
#define MOSI 11
#define MISO 12
#define SCK 13
//Instructions
#define READ 0x06

SPISettings eeprom(100000, MSBFIRST, SPI_MODE0); //SPI settings for M95160 , (maxSpeedOfCommunication, dataOrder, dataMode)

byte read_eeprom(uint16_t address){
  byte data = 0;
  SPI.beginTransaction(eeprom);
  digitalWrite(CS, LOW); //ChipSelect PIN , LOW while reading
  SPI.transfer(READ);
  SPI.transfer(address >> 8);
  SPI.transfer(address);
 // data = SPI.transfer(0xFF);
  digitalWrite(CS, HIGH);
  SPI.endTransaction();
  return data;
}
void setup() {
  noInterrupts();   //blokovanie preruseni, pretoze povolenie zmeny CLK za 4 tiky vysumi
  CLKPR = 1<<CLKPCE;  // povol zmenu CLK
  CLKPR = 1<<CLKPS2;  //    clk/16
  interrupts(); 
 Serial.begin(115200);
  pinMode(CS,OUTPUT);
  pinMode(MOSI, OUTPUT);
  pinMode(MISO, INPUT);
  pinMode(SCK, OUTPUT);
  digitalWrite(CS, HIGH);
  SPI.begin();
  //for(uint16_t add = 0; add < 2048; add++){
     // Serial.println(read_eeprom(add),HEX); 
   //   delayMicroseconds(200);
//  }
}
void loop() {
  read_eeprom(2047);
  delayMicroseconds(200);

}
Označenie PINOV v programe :
PIN 10 ... CS(Chip Select)
PIN 11 ... SI [MOSI] (Serial In)
PIN 12 ... CLK (Clock)
Prílohy
Poslane 0x00 16bit
Poslane 0x00 16bit
Poslane 0x00 8bit
Poslane 0x00 8bit
Poslane 0x7FF
Poslane 0x7FF
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 12 Nov 2019, 07:40

No, už to je celkom použitelné ten arduino LAN. Tie špicky na konci tam naozaj sú a ničomu nevadia. Neskôr odkážem prečo tam sú.
Ako je to s tým MODE0. Tu sa ukazuje že je potrebné čítať dokumentáciu ak človek nechce byť Sherlock Holmes a dedukovať a dedukovať.
Tak najprv dedukcia. Keď si pozrieš tie moje obrázky tak ti tam ukazuje na nabežnej hrane také šipky. To je doba kedy by sa mal vzorkovať údaj z/do pamäti. Prečo vtedy? Lebo pri dobežnej sa ten údaj mení. Tak som ten SPI analyzer toho môjho LAN nastavil na nábežnú hranu ani som nečítal dokumentáciu. Pri dobežnej by totiž bolo riziko že vďaka nerovnakým oneskoreniam v šírení signálu by tie obvody mohli chytiť raz hodnotu pred a raz hodnotu po zmene. Teda by to fungovalo ako hádzanie mincou. Lebo tam sú vždy dve hodnoty. Tesne pred dobežnou hranou je nejaká a tesne po dobežnej hrane je opačná. Tragédia je že aj takto špatne nastavené SPI dokáže niekedy fungovať. Ale vtedy platia Murphyho zákony. Pravdepodobnosť zlyhania je priamo úmerná počtu prítomných generálov a druhý že zariadenie zlyhá vtedy keď môže spôsobiť najviac škody.
A teraz cez dokumentáciu
http://ww1.microchip.com/downloads/en/D ... f#page=139
Tu je všetko popísané. Vrátane toho prečo sú tam tie Spike. Je tam zobrazený aj bit CPHA ktorý ti arduino knižnica zamlčuje. Ten dovoluje nastaviť z akej úrovne sa na začiatku vychádza a končí. Zrejme je CPHA=1 a teda to začína z 1 a končí v 1 po vyslatí. Potom keď pošleš ďalší znak tak sa to opäť nastaví na 0.
Teda nie je to chyba analyzatora ale je to realita na tej MOSI linke. Vidíš to len vďaka tomu že všetko je tam 16x pomalšie a teda aj doba než sa začne posielať ďalší byte. Pri plnej rýchlosti ten spike trvá tak krátko (možno <1μs) že ten tvoj LAN si to ani nevšimne.

No a ten údaj na x ose o rýchlosti moc platný nie je, ak tam nie je zobrazené nejaké pravítko. Lebo ja si z toho neviem predstaviť nič. To je akože 2.5μs na jeden pixel obrazu či ako? Ale to je podstatné len v tedy ak chceš odčítavať časy. Čo v tomto prípade už tak dôležité nie je. Ale aspoň má človek orientáciu čo to dokáže. A je teda jasné že veci trvajúce pod 5μs sa už budú zobrazovať problematicky.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 12 Nov 2019, 17:36

Ďakujem veľmi pekne za vysvetlenie peterple. Pochopil som to , teraz už viem ktorú hodnotu odčítať.

Ohľadom toho LAN fakt netuším ako to tam je. Aspoň že niečo vidím. To je tak robiť z Arduina takéto srandy :D

No takže k veci,
Riadiacu som zapojil na BreadBoardu , kód s tvojou opravou CLOCKu som tam nahral a len som dúfal čo a ako. A je tu další problém. Nejaké hodnoty dostávam ale že aké.
Serial mi beží na 115200 Baud Rate. Tak som nastavil aj Serial Monitor . V arduine mi nič neukazuje a 3rd party Serial Monitor (používam RealTerm) mi ukazuje stále rovnaký pattern. Potom som si spomenul , že však všetko je spomalené 16 krát, tak laicky čo je asi zle som videlil BaudRate 16timi , vyšlo mi 7200. No aj pri tomto to vypisuje bludy.

Skúšal som len tak aj nejaký nižší ako je 115200 ale ako vidno tak nič z toho.
SerialMon1.png
SerialMon2.png
SerialMon3.png
SerialMon4.png
Len pre vizualizáciu čo by malo byť vidno cca.
Prílohy
data.png
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 12 Nov 2019, 18:07

tých 7200baud je OK. ale terminal ti vypisuje hexa kod prijatých znakov a nie prijate znaky
0x0d a 0x0a je prechod na nový riadok
46 je kod pismena F
takze ti to pise

Kód: Vybrať všetko

FF
FF
Prepni si terminal na ascii zobrazenie a otestuj si to tak ze na uvod vypises nejaky text
Tak isto si rýchlost môžeš omerať tým tvojím LAN ak budes schopný naciachovať nejako tú x os.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

jurosdi
Stály člen
Stály člen
Príspevky: 162
Dátum registrácie: 06 Máj 2016, 20:49
Bydlisko: Prašice

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa jurosdi » 12 Nov 2019, 19:35

Pre moju zvedavost( občas podobné veci riešim), prečo nešlape Immo,ked si dal immobox, Ecu a klúče s jedného auta???
0

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 12 Nov 2019, 20:03

jurosdi napísal:Pre moju zvedavost( občas podobné veci riešim), prečo nešlape Immo,ked si dal immobox, Ecu a klúče s jedného auta???
Netuším, pokiaľ správne viem Immobox je Body Computer u Stila (viď. príloha) ten som vymenil, RJ som vymenil , kľúče som mal a dokonca zapalovaciu skirnku (tedy tam kde picháme kluče) som vymenil dokonca aj ten senzor toho čipu som vymenil len pre istotu no to sa deje čo som písal netuším kde je problém.
bodycomp.png
peterple napísal:tých 7200baud je OK. ale terminal ti vypisuje hexa kod prijatých znakov a nie prijate znaky
0x0d a 0x0a je prechod na nový riadok
46 je kod pismena F
takze ti to pise

Kód: Vybrať všetko

FF
FF
Prepni si terminal na ascii zobrazenie a otestuj si to tak ze na uvod vypises nejaky text
Tak isto si rýchlost môžeš omerať tým tvojím LAN ak budes schopný naciachovať nejako tú x os.
Ten Arduino LAN je taký že to je ako sám hovoríš hod mincou. Raz to zachytí ale nie všetko a raz skoro nič. No prakticky som tam niekedy vôbec nevidel že by EEPROM niečo poslala naspať z PINU Serial Out (MISO) , No ale učinil som tak ako si písal. Začal som čítať hodnoty, prvých 10 ? krása nejake hodnoty nabehli čo niesu len tak random. A potom samé nuly . Potom po prehraní programu zmene delayu napriklad už zase samé FF, skúšam len tak odpojiť od napajania EEPROM. Vyhodí mi Nuly samé , zapojím naspať, FF. TO znamená že Serial Out MISO nereaguje. Nakoľko sa ukladá hodnota z príkazu

data = SPI.transfer(0xFF);


Ale už sme sa to niekam dostali. Len ešte niekde bude zádrhel. Raz to ide raz nie.

Dopĺňam ešte kód :

Kód: Vybrať všetko

#include <SPI.h>
//Pins
#define CS 10
#define MOSI 11
#define MISO 12
#define SCK 13
//Instructions
#define READ 0x03

SPISettings eeprom(1000000, MSBFIRST, SPI_MODE0); //SPI settings for M95160 , (maxSpeedOfCommunication, dataOrder, dataMode)

byte read_eeprom(uint16_t address) {
  byte data = 0;
  SPI.beginTransaction(eeprom);
  digitalWrite(CS, LOW); //ChipSelect PIN , LOW while reading
  SPI.transfer(0x03); // Read Instruction
  SPI.transfer(address >> 8); // First 8bits of Address
  SPI.transfer(address); // Second 8bits of Address
  data = SPI.transfer(0xFF); //Reading from MISO
  digitalWrite(CS, HIGH);
  SPI.endTransaction();
  return data;
}
void setup() {
  noInterrupts();   //blokovanie preruseni, pretoze povolenie zmeny CLK za 4 tiky vysumi
  CLKPR = 1 << CLKPCE; // povol zmenu CLK
  CLKPR = 1 << CLKPS2; //    clk/16
  interrupts();
  Serial.begin(153600);
  pinMode(CS, OUTPUT);
  pinMode(MOSI, OUTPUT);
  pinMode(MISO, INPUT);
  pinMode(SCK, OUTPUT);
  digitalWrite(CS, HIGH);
  SPI.begin();
  for (uint16_t add = 0; add < 2048; add++) {
    Serial.print("Addrress ");
    Serial.print(add);
    Serial.print(" : ");
    Serial.println(read_eeprom(add), HEX);
    delay(50);
  }
}
0
Naposledy upravil/-a lukasSVK1 v 12 Nov 2019, 20:33, upravené celkom 1 krát.

jurosdi
Stály člen
Stály člen
Príspevky: 162
Dátum registrácie: 06 Máj 2016, 20:49
Bydlisko: Prašice

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa jurosdi » 12 Nov 2019, 20:26

Napr. pri koncerne VW je častý problém v malom dvojpinovom štekri(na spínačke) pre cievku,ktorá sníma čip v klúči. Stačí malý pohyb a už bliká klúč na budíkoch....
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 12 Nov 2019, 20:36

Takže terminál ti už zobrazuje znaky spoľahlivo?
To čítaš tú M93C86 čo máš na volno? Ak áno tak si preštuduj tie priebehy z katalógového listu, a pozmeň tomu zodpovedajúco ten tvoj program. Tie prebehy sú diametrálne odlišné.

Pokiaľ nedáš program a nabraný priebeh a presný typ pamäte, tak nie je veľmi o čom sa baviť. Ak sa to nedá naberať lebo tam nie je spúšťanie na udalosť na vybranej linke tak to musíš opakovať dovtedy dokiaľ to nenaberieš. Inak si slepý, hacking skončil a už je to len veštenie. Ak sa to nedá tak si ešte spomaľ viac ten procesor. Dá sa ešte spomaliť až 16x.

Aj tak si myslím že ideš míľovými krokmi. Ked ja som v 18tich hackoval sériovú komunikáciu s logickou sondou a analógovým osciloskopom tak mi to trvalo 3 mesiace než som to rozbehal. Holt dnes sú iné možnosti.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

lukasSVK1
Okoloidúci
Okoloidúci
Príspevky: 37
Dátum registrácie: 14 Nov 2018, 14:30
Bydlisko: Levice / Banská Bystrica
Vek: 22

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa lukasSVK1 » 12 Nov 2019, 20:48

jurosdi napísal:Napr. pri koncerne VW je častý problém v malom dvojpinovom štekri(na spínačke) pre cievku,ktorá sníma čip v klúči. Stačí malý pohyb a už bliká klúč na budíkoch....
Tak tieto autá sú večná záhada. Mne nešiel panel na hmlovky, parkovačky , ... . A zistil som že pri výmene sa jednemu konektoru daju posúvať piny o 4 polohy a samozrejme to bolo cele vysunute. Proste nejde odstaví ťa. Si predtav v kolóne kde sa ti nedá naštartovať auto všetci nervóznya ty vystupiš z auta a musíš vypojiť bateriu počkať chvilku a daž naspať aby sa to resetlo. No v poslednej dobe už ani to nepomahalo . Ani na jednej sa nedá jazdiť. A uprimne nechapem prečo to nešlo.
peterple napísal:Takže terminál ti už zobrazuje znaky spoľahlivo?
To čítaš tú M93C86 čo máš na volno? Ak áno tak si preštuduj tie priebehy z katalógového listu, a pozmeň tomu zodpovedajúco ten tvoj program. Tie prebehy sú diametrálne odlišné.

Pokiaľ nedáš program a nabraný priebeh a presný typ pamäte, tak nie je veľmi o čom sa baviť. Ak sa to nedá naberať lebo tam nie je spúšťanie na udalosť na vybranej linke tak to musíš opakovať dovtedy dokiaľ to nenaberieš. Inak si slepý, hacking skončil a už je to len veštenie. Ak sa to nedá tak si ešte spomaľ viac ten procesor. Dá sa ešte spomaliť až 16x.
Áno , nakoľko v kóde som si to ešte k tomu ošetril nech mi ich vypisuje ako HEX. Nie nečítam tú čo mám na voľno. Tá má iba 3bitové inštrukcie a 11bitovu adresu používa. Rovno som to pichol na RJ. TO že maju tieto 2 EEPROM rozdielne priebehy viem. Preto som to nepichal na nu proste načo keď viem že už posielam iba čisto READ inštrukciu a prepísať by som nemal nič. Skôr teraz ide prečo robí to čo robí. Skúsim to ešte spomaliť.

peterple napísal:Aj tak si myslím že ideš míľovými krokmi. Ked ja som v 18tich hackoval sériovú komunikáciu s logickou sondou a analógovým osciloskopom tak mi to trvalo 3 mesiace než som to rozbehal. Holt dnes sú iné možnosti.
Naozaj si vážim tvoje slová. Že ma vôbec niekto pochválil . Možná je to aj tým že ma to baví a proste to musím urobiť. Toho auta už mám plné zuby. Od výmeny motora až po toto.

Áno dnes sú iné možnosti. Dnes naozaj ked človek chce všetky datasheety, source kódy, referencie, literaturu, fóra, pomoc od druhých a podobne nájde na internete z pohodlia domova. Urýchluje to učenie. A úprimne naozaj som veľmi rád za tvoje slová aspoň viem že to má aspoň nejaký zmysel. Keď sa to aj nepodarí (čo fakt dúfam že sa to podarí) tak som sa mnoho mnoho priučil za posledné 2 týždne ako sa s tým hrám ako hádam ešte nikdy.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Fiat Stilo 1.6 16v ECU(Riadiaca Jednotka) Oprava/Klon

Príspevok od používateľa peterple » 12 Nov 2019, 20:51

Vidim že si nahodil aj kod. To sa nečuduj ze na tom LAN málokedy co chytiš. Dokiaľ si tam nemal tie výpisy tak sa ti to motalo v slučke kde 2ms sa posielalo po SPI a 3ms sa čakalo. Lenže teraz posielaš plno znakov rýchlosťou 9600 bit/s. To znamená že že jeden znak trvá tak okolo 1ms
Spočítaj si koľko je to ms a porovnaj to s tými 2. To je pomerne malá pravdepodobnosť že sa ten LAN trafí do toho SPI prenosu. Predpokladám že nejaké spúštanie (trigger) tam možné nie je.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok