Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
STN1110 - CAN OBD-II
#1
Zdravo drugari, uzeo sam da se igram malo sa STN1110 i CAN-om. 

Evo kako izgleda trenutna sema:
[Image: OBD.png]

Preko FTDI-a imam komunikaciju sa STN-om (datasheet link), cip se odaziva na komande, medjutim kad prikopcam sve na auto\simulator koji sigurno imaju CAN protokol (I auto i simulator + potvrdjeno sa gotovim kupljenim ELM adapterom i detektovanim protokolom), ja ne dobijam nista ili ti mrka kapa.

Ono sto me malo buni, tj. na sta sumnjam je to sto sam ja kombinovao malo minimal i tipical configuration iz datasheet-a. Jer u minimal je samo ono da bi cip radio, a u tipical su ostali protokoli povezani. E sad, posto ja ne zelim da podrzavam nista drugo osim CAN protokola, svi ti drugi pinovi "vise" kod mene (kao na semi gore). Pitam se da li bi to mozda bio razlog sto ne dobijam nikakav odgovor, da je nesto mozda ispusteno a da je neophodno...

Bilo koji predlog ili gotova sema za STN1110 + CAN only bi bilo idealno ako ima neko da podeli, ili ako vidi gde je greska da skrene paznju.

Hvala unapred.

PS, tema mozda nije u pravoj grupi, ali nisam nasao bolju kategoriju pa sam stavio u ovu.
Reply
#2
Moj ELM327 bluetooth adapter nije hteo da radi dok nisam skinuo 120 Oma terminirajuci otpor izmedju CANH i CANL i povezao par 100 Oma i kondenzatore ka GND. To sam svojevremeno nasao negde na netu. Medjutim, moj prijatelj je na drugom autu ladnio koristio ELM bez skidanja tog 120 Oma. Ostale linije ti ne igraju nikakvu ulogu za CAN pa ih mozes ostaviti tako, jedino da probas sa dodavanjem tog 120 0ma otpornika. Koji to simulator koristis? Izmedju STN i MCP2551 ja bih pre koristio neki translator nivoa nego R6, R7 i R8.
Reply
#3
Zdravo Gorane, imam ovaj simulator ECUSim 2000. Pokusah da nadjem nesto slicno, ali ne vidim da iko spominje ista slicno za STN.
Reply
#4
Otvori ELM327 i pogledaj deo oko MCP2551. Posto ti on radi na simulatoru i na autu odradi tvoj interfejs na isti nacin kao i na ELM-u.
Reply
#5
Ok, gledam uporedo obe seme i sad, deluju isto. Mada, sta mu je ovaj pull-up resistor R7 na mojoj semi na ovom 5V_SW, sta mu je ovo SW uopste?
Ne vidim nigde koji tacno logicki level treba da bude za STN1110-MCP2551?
Meni inace radi i OBD-II UART od SparkFun-a koji ima STN1110 i MCP2551 na sebi i isto je povezan, ali na mojoj ploci iz nekog razloga nece...
Reply
#6
Taj STN je najverovatnije neki mikrokontroler koji radi na 3.3V. U ELM-u je to neki PIC24 (ne secam se koji). Starije verzije ELM-a su imale PIC18F. MCP2551 ti radi od 4.5 do 5.5V pa ti zato treba konvertor 3.3 na 5V i obrnuto na CAN-TX i CAN-RX linijama. To rade R6, R7 i R8. MOguce je da je tebi hardver sasvim OK. Da li si pokusao da komandom postavis CAN kao trenutni protokol?ELM krece sa radom tako sto postavlja redom sve protokole pa gde nadje nesto smisleno onda to proglasi za radni protokol i po tome nastavi da slusa OBD. Mozda ovaj tvoj zaglavi jer nemas hardverski sredjene sve interfejse. Zato mislim da bi bilo dobro da pokusas da postavis CAN kao protokol.
Reply
#7
Probao sa postavljenim CAN protokolom, isti djavo. Moracu izgleda da sacekam do sutra da mi stignu novi DIP cipovi pa da mogu opet lepo da probam od nule na breadboard-u... Inace onaj otpornik na CAN RX ne treba, to je samo ako se ne koristi... e sad, da li ima jos nesto sto propustam, ne znam.
Reply
#8
Bio sam u pravu. STN je ustvari PIC24HJ128GP502. U datasheet-u za STN imas kako se povezuju pinovi koje ne koristis (strane 9. i 10 minimal configuration). Ako imas osciloskop proveri sta imas na CAN_TX, CAN_RX, CANH i CANL, mozda te zeza breadboard. Ovde imas neku razvojnu plocu sa STN i MCP2551 od sparkfun pa proveri sta su oni radili.

https://cdn.sparkfun.com/assets/2/4/d/c/...cc8c0e.pdf
Reply
#9
(08-02-2016, 08:47 PM)gorankg Wrote: Bio sam u pravu. STN je ustvari PIC24HJ128GP502. U datasheet-u za STN imas kako se povezuju pinovi koje ne koristis (strane 9. i 10 minimal configuration). Ako imas osciloskop proveri sta imas na CAN_TX, CAN_RX, CANH i CANL, mozda te zeza breadboard. Ovde imas neku razvojnu plocu sa STN i MCP2551 od sparkfun pa proveri sta su oni radili.

https://cdn.sparkfun.com/assets/2/4/d/c/...cc8c0e.pdf

Imam tu plocu, po njoj sam i isao inicijalno i zato mi je bilo sumnjivo sto kod mene nece Smile
Uzeo sinoc sklopio opet sve od nule identicno, povezao na simulator i sad hoce... e sad ko je tu lud ne znam, jedina razlika je sto sam u prvom primeru koristio QFN a sad u drugom DIP pakovanje za STN, sve ostalo isto... Smile

Naravno, vodio sam racuna da nisam omasio neki pin da sam spojio pogresno jer se ne gadjaju QFN i DIP raspored, a proverio i svi lepo bili zalemljeni.

To be continued...
Reply
#10
Onaj veliki metal plane na donjoj povrsini QFN treba da bude vezan na GND. Pretpostavljam da ga jesi vezao al ko zna u brzini dok juris da proradi cesto se i gresi. Aj jos jedno pitanje za tebe. Sto ti bas treba STN? Ja sam koristio neki PIC18 sa ECAN modulom i MCP2551..
Reply
#11
(08-03-2016, 06:25 PM)gorankg Wrote: Onaj veliki metal plane na donjoj povrsini QFN treba da bude vezan na GND. Pretpostavljam da ga jesi vezao al ko zna u brzini dok juris da proradi cesto se i gresi. Aj jos jedno pitanje za tebe. Sto ti bas treba STN? Ja sam koristio neki PIC18 sa ECAN modulom i MCP2551..

Zdravo Gorane, radi meni STN, odaziva se na komande preko UART-a, problem je STN-MCP2551 komunikacija, tako da ne verujem da je problem ta masa.
Odlucio sam se za STN jer je identican kao ELM po funkcionalnosti, a plus ima neke dodatne komande (koje iskreno mozda nikad necu ni da upotrebim), a ujedno i jeftiniiji (duplo). Za sve ostalo bi morao da pisem plus dodatni firmware i sam da vodim racuna o celom CAN saobracaju zar ne, npr. sa MCP2551+MCP2151+ATMega cip neki bi bilo mozda najjednostavnija "rucna" metoda ako bi radio sve sam.

Za pic nisam iskreno ni vidjao da je neko radio sam svoj firmware, deluje kao dosta vise posla zar ne? ...ako izuzemo ove sto to rade za ELM, STN cipove Smile
Reply
#12
Probao sinoc i na autu radi isto kao i na simulatoru.

Da ne otvaram novu temu prosiricu ovu novim potpitanjem ovde.
Na ceo sklop dodao sam sad i arduino i bluetooth.

I sad, stavljeno je da arduino prima komande od BT-a i da ih prosledjuje dalje STN-u, dakle kao "man in the middle" se ponasa, e sad tu ima nesto cudno.
Kad pustim "ATZ" komandu, dobijem adekvatan odgovor nazad na Bluetooth Terminal aplikaciji koju koristim kao klijent na mobilnom, medjutim ako probam npr. 0902 za VIN, ne dobijem nista.

Probam opet preko FTDI-a dobijem odgovor, probam takodje i iz code-a u arduinu, isto dobijem odgovor...sta bi moglo da bude?

Da nije mozda da je komunkacija spora, pa da to nesto utice, jer imam 2 software serial-a u code-u?

(svi baud rate-ovi su mi na 9600)
Reply
#13
Taj 0902 (VIN) je "multiline response" pa je moguce da se nesto zabode jedan od ta dva seriala. Pusti nesto jednostavnije npr. 0100 ili 010C (RPM)
Reply
#14
Isto se ponasa. Ipak mislim da je problem sa sinhronizacijom dva software serial-a.
Reply
#15
Onda ti ne preostaje ništa drugo do da napišeš sam softver za neki atmel koji ima hardverski implementirana dva USART modula. Pogledaj malo po netu sigurno ima primera.
Reply
#16
Resio sam sa postojecim hardverskim, stavicu samo jumper neki da mogu da koristim isti i za ubacivanje firmware-a i da moze kasnije da radi sa ovim drugim uredjajem.
Reply
#17
Hej drugari, da ne otvaram novu temu. Povezao sam sve, i sve radi ocekivano, e sad bi samo hteo da optimizujem ovu moju skalameriju da moze da radi u "low-power" modu kad je auto ugasen, posto je plan da ovo bude non stop ukljuceno. E sad na njihovom datasheet-u kazu da se za to koristi pin "SLEEP" i "PWR_CTRL" ali ne kazu ili ja nisam primetio kako da se sve to poveze.

Mislim, video sam na semi da ide pull-up otpornik od 100 ohm sa tog SLEEP pin-a na 3.3v power, al sta mu je ovo "from-host" za SLEEP? Takodje nigde ne kazu da li ANALOG_IN mora da bude zakacen za ovu funkcionalnost i da li su ikako povezani...

Inace evo sta kazu za low-power:

[Image: c9248bd19d474985acf08661179fb150.png]

Takodje za PWR_CTRL kazu da se koristi kao signal da moze i neki drugi uredjaj da se ukljuci u low-power ili sam to pogresno razumeo?
Reply
#18
SLEEP je ulazni pin sa internim pull-up otporom. U default konfiguraciji pull-up je omogućen i pin je aktivan na niskom naponskom nivou. Služi da STN gurne u sleep kada želiš manju potrošnju svog uređaja. 
PWR-CTRL je open-drain izlazni pin kojim možeš da neki drugi deo svog uređaja gurneš u sleep.
ANALOG-IN nema veze sa ova dva jer služi kao analogni ulaz i pošto uređaj koristiš u vozilu njim bi mogao da meriš napon akumulatora.
Reply
#19
Hvala na objasnjenju Gorane, a sta bi mu bilo ono "from host" sto ide levo na njihovom dijagramu od tog sleep pina? I kako onih 3.3v koji su inace regulisani utice na to da se ode u sleep, zar i kad je auto ugasen ti nemas tu uvek 3.3v...jer to ide od 3.3 regulatora, koji ide o 5v regulatora, koji ide od VBat-a (akumulatoar), i ti tu imas na Vbat 12v cak i kad je ugasen...
Reply
#20
STN je mikrokontroler čiji je jedan od modova rada SLEEP režim. U tom režimu treba da troši onoliko koliko stoji u datasheet-u. Host je u tvom slučaju arduino čiji jedan izlazni pin spojiš na taj SLEEP pin STN-a. Pull up imaš na STN-u tako da ti ništa više ne treba. U normalnom režimu rada tvog uređaja nivo na tom pinu treba da bude visoki (3.3V). Kad obaviš sav posao spustiš taj pin na nisko (0V) i STN ode u SLEEP. Dodatno, i arduino valjda može komandom da se gurne u sleep režim. Napon napajanja 12V, 5V i 3.3V postoji ali je struja u SLEEP režimu minimalna.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)