Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OBD-II STN1110 - QFN Problem
#1
Zdravo drugari, na breadboard-u imam funkcionalan uredjaj koji koristi STN1110 DIP pakovanje, na osnovu tog breadboard-a imamo dizajniran PCB, proveren xyz puta visa, i na njemu imamo STN1110 QFN pakovanje. E sad, sve sem komunikacije izmedju STN cipa i MCP2551 radi identicno i na breadboard-u i na PCB-u sto smo odradili.

PCB varijanta vraca:
"Initializing ECU"
"Check if ignition is on"

Ovo je sa Torque-a.

Direktno kad se pusti komanda preko FTDI-a na STN kaze:
BUS INIT STOPPED 
BUS INIT FB ERROR

Probacemo sutra da damo da se prelemi taj cip, da ne bude da je nesto lose zalemljeno ili da je otisao taj cip nekako (ne znam kako), ali me  zanima da li neko ima jos neku ideju sta bi mogli da probamo.

Proverili smo kao sto rekoh minimum 10-15x ceo taj deo, proverili raspored pinova DIP vs QFN i sl. i sve odgovara datasheet-u. 

Meni iskreno ponestalo ideja, a ponestaje i zivaca s ovim Smile

Svaki predlog sta bi jos moglo da se proba, kako da se uporedi i sl. dobrodosao.
Reply
#2
Da li ti radi oscilator?
Da li ti dobri naponski nivoi za komunikaciju?
Da li si dobro dekaplovao napajanje?
Da li si proverio PCB vodove sa zujalicom, posebno one koji idu preko VIA-a?
Reply
#3
Oscilator radi, imam komunikaciju izmedju STN-a i mog kotrolera.
Naponski nivoi dobri.
PCB vodovi provereni.

E sad za napajanje nisam siguran na sta mislis.
Reply
#4
Pod dekaplingom za napajanje mislim na "gomilu" uglavnom SMD kondenzatora koji stoje sto blize STN-u i blizu regulatora napona ako ga imas na PCB.

Uzgred, nisi slucajno kupovao te STN na Ali ili Ebay? Smile
Reply
#5
(09-03-2016, 07:04 PM)mikikg Wrote: Pod dekaplingom za napajanje mislim na "gomilu" uglavnom SMD kondenzatora koji stoje sto blize STN-u i blizu regulatora napona ako ga imas na PCB.

Uzgred, nisi slucajno kupovao te STN na Ali ili Ebay? Smile

Nisam, porucio sam sa zvanicnog sajta.
Ali da imam gomilu kondenzatora blizu STN-a imam ...
Reply
#6
U redu, da makar to iskljucimo kao razlog.

Ja imam 0 iskustva sa tim OBD interfejsima, stvarno ne znam detalje sta se tu tacno desava, mada zelim da pomognem koliko mogu.

Nisam te najbolje razumeo u prvom postu, da li se STN bar nekako javi preko UART da je ziv ili samo neke specificne komande ne rade kako treba?

Postavi makar shemu da mozemo da ispratimo kolo.
Reply
#7
Sta bi trebalo da uradim sa tim sto si pomenuo? Da ih razmaknemo? (el. newbie pita Smile) Smile
Reply
#8
Javi se on, npr. ako posaljem komandu ATZ, cip se identifikuje, i sl. komande neke kad pustim.
Ali kad pustim neku komandu koja treba da ocita nesto sa auta \ simulatora npr. 0902 za VIN (neki auti nemaju ovo, ali simulator i ovaj auto imaju) ne dobijem nista, tj. dobijemo onu gresku:
BUS INIT STOPPED
BUS INIT FB ERROR
(ovo je sa PCB-a)

A sa breadboard-a kad uradim isto to, dobijem adekvatni byte array odgovor.

Znaci u tom trenutku kad ja pustim 0902 STN komunicira sa tim MCP2551 i sad sumnjam na taj deo nesto, ali ne znam sta.

A fora sto je taj deo tu prost, svega 3 otpornika i dva kondenzatora oko MCP-a za CAN High i CAN Low, i MCP-STN vezu za RT i TX ima samo pullup na TX-u i to je sve...
Reply
#9
@mikikg, evo seme u attachentu. Imamo i ovaj power save deo, ali smo tu stavili jumper da mozemo da otkacimo cisto jer nismo bili sigurni u taj deo, tako da ono sto je trenutno u igri izgleda ovako, odsekao sam taj deo seme jer nije povezan na PCB-u.

Nadam se da neko vidi tu neku sitnicu sto nas zeza ovde. Uporedjivali smo par puta vec sa breadboard-om, al moguce da nam neki deo promace i da ni ne primecujemo vise od tolikog gledanja a da je mozda banalan...

Reply
#10
Hvala za shemu, sad je malkice jasnije ...

Ocigledno imas neki problem na CAN strani.

Da li imas signale pre ulaza u MCP kada prozoves recimo 902 komandu?
Da li imas iste te logicke signale na izlazu iz MCP tj na CAN bus (diferencialni signal)?
Jel si gledao to sa osciloskopom?

Koliko shvatam MCP je samo interface, da li postoji neki loop-back test recimo kada se prespoji RX/TX na strani ulaza u MCP?

Cemu sluze R19, R20, C20 i C21? Kako si izabrao bas te vrednosti? Meni to lici kao vrlo "tesko" opterecenje na CAN bus?! Probaj da odkacis te komponente sa bus.
Da li je mozda potrebno tu neka terminacija za bus?

Izvnini na ovolikom broju pitanja, ne mogu drugacije da udjem u temu Smile
Reply
#11
Da li si na QFN povezao onaj donji veliki (exposed) pad na GND?
Reply
#12
@mikikg, nemam osciloscope ni logicki analyzer pa ne mogu da proverim to. Ove komponente sto si nabrojao nisu slucajne vrednosti, to je recommended design sa STN1110 datasheet-a.

Sto se tice terminacije, to mozda ima smisla, jer taj deo nisam mislio da je bitan ali na breadboard-u imamo kablic koji je 20tak cm, a na PCB-u kablic koji je duzi od pola metra....probacemo da stavimo kraci i da ga upredemo jer nije ni upreden.

@gorankg, nismo mi lemili QFN, vec smo unajmili nekog, ne znam da li je zalemljen taj deo, ali pretpostavljam da jeste.
Reply
#13
Hmm, osciloskop ti je jedan od osnovnih alatki za elektroniku.
Vidim da si se ozbiljno (predpostavljam komercialno) uhvatio teme oko tih interfejsa, bez osciloskopa mozes samo da nagadjas sta se tu tacno desava.

Predlazem ti da nabavis neki DSO ako hoces ozbiljno da radis na tome. Bar tebi "tamo" nije problem nabavka i cene su drasticno bolje nego kod nas.
Reply
#14
(09-04-2016, 01:41 PM)vsavic Wrote: @gorankg, nismo mi lemili QFN, vec smo unajmili nekog, ne znam da li je zalemljen taj deo, ali pretpostavljam da jeste.

Proveriti svakako da li je dobro zalemljen QFN. Možeš i sam da preventivno prelemiš, koristi flux obavezno ili pastu i prelemi sve padove.
Dešavalo mi se veoma često čak i kada su mašinski lemljeni čipovi kod više firmi (profi rade) da se to ipak ne zalemi kako treba... Znači običnom lemilicom tanak vrh i "prošetaj" po svim pinovima.
Reply
#15
Evo i ja da se ukljucim malo.
Pogledao sam tvoju semu, a pogledao sam i semu koja se nalazi u dokumentu:

https://www.sparkfun.com/datasheets/Widg...110-ds.pdf

Koliko mogu da vidim, identicne su, tako da bi ovo trebalo da radi. Jedina razlika te dve seme je u otpotniku R2. Kod tebe je to 1K, a u PDF-u je 1.5K. MCP ima interni pull-up od oko 25K (nema tacnog podatka i ova vrednost varira), tako da to moze da bude problem ako STN nema odgovarajuci strujni kapacitet. Mozda da probas bez to otpornika. Druga stvar je da mozda nije dobro zalemljen IC (hladan LEM na RX i TX kontaktima prema MCP). Licno ne verujem da je problem u exposed padu, posto u PDF-u ne pise nista u vezi njega.
Mozda ti je MCP neispravan ili pogresno zalemljen.

Pozdrav
Reply
#16
Proradila je komunikacija sa MCP-om kad smo skratili kablic i stavili terminalni otpornik od 120ohm-a. Medjutim sad ima druge zanimljive anomalije koje nema na breadboard-u, a koja je vezana izgleda nekako za code.

Naime, sad kad pustim neku komandu na serial (...inace ide BT - Arduino - STN - MCP) dobijem nekad dupli odgovor, nekad tek dobijem odgovor na prethodnu komandu kad pustim novu i tako u krug, kao da se ne prazni lepo buffer. Ista verzija code-a na PCB-u i na breadboardu... loodilo... Smile
Reply
#17
(09-05-2016, 02:39 PM)vojinilic Wrote: Evo i ja da se ukljucim malo.
Pogledao sam tvoju semu, a pogledao sam i semu koja se nalazi u dokumentu:

https://www.sparkfun.com/datasheets/Widg...110-ds.pdf

Koliko mogu da vidim, identicne su, tako da bi ovo trebalo da radi. Jedina razlika te dve seme je u otpotniku R2. Kod tebe je to 1K, a u PDF-u je 1.5K. MCP ima interni pull-up od oko 25K (nema tacnog podatka i ova vrednost varira), tako da to moze da bude problem ako STN nema odgovarajuci strujni kapacitet. Mozda da probas bez to otpornika. Druga stvar je da mozda nije dobro zalemljen IC (hladan LEM na RX i TX kontaktima prema MCP). Licno ne verujem da je problem u exposed padu, posto u PDF-u ne pise nista u vezi njega.
Mozda ti je MCP neispravan ili pogresno zalemljen.

Pozdrav

Dvoumio sam se dugo oko tog otpornika, jer u zvanicnoj dokumentaciji stoji 1k, a ovo je dokumentacija koja je sa sparkfun-a, tj. obe su zvanicne, ali ako se pogleda datum kad je koja objavljena, ona koja je linkovana sa zvanicnog sajta pokazuje 1k otpornik tu.
Reply
#18
STN1110 je ustvari PIC24HJ128GP502 to sam već negde pisao. U datasheet-u za PIC stoji preporuka da exposed pad treba vezati na VSS. Terminacioni otpornik treba da imaš na oba kraja CAN bus-a. Ne znam šta je kod tebe druga strana (čini mi se da si pominjao neki OBD simulator) ali proveri kako je tamo terminirano. Vrednost tog otpornika može da se kreće od 60-120 Oma. Ovaj R2 ti je level translator jer ti se STN napaja sa 3.3V a MCP2551 sa 4.5V-5V. Skini taj R2 i odradi level translator bolje. 
Reply
#19
Hmm, ja tek sad vidim da su STN i MCP na razlicitim napajanjima.
Tu ti srdacno preporucujem da postavis "aktivan" konverter nivoa.
Evo ti prosta shemica koja provereno radi odlicno, cak je i dvosmerna, moze posluziti i za I2C protokol, naravno i za sve ostale jednosmerne protokole tj jednosmerne linije.

[Image: attachment.php?aid=20812]

Sto se tice terminacije, uh to je must-have prakticno za sve digitalne signale/linije gde imas frekvencije >100kHz i duzine provodnika vece od nekih 10cm.
Skoro sam imao probleme sa tim na nekom mom HW, pojavljivao mi se overshot koji mi je lazno "okidao" ulazna kola i brljavio celu logiku dok nisam postavio redno otpornik sa tim linijama. Koliki otpornik trebas staviti to prakticno ne mozes da znas dok ne uradis prototip PCB-a jer zavisi od XY faktora ali se sa osciloskopom to sve lepo vidi, onda malo eksperimentises sa raznim otpornicima dok ne dobijes skoro perfetne pravougaone signale na linijama.

Zasto je bitna ispravna terminacija pogledaj ovaj vrlo simpatican i poucan retro video od Tektronix-a:
Tektronix - Transmission Lines - YouTube


Attached Files Thumbnail(s)

Reply
#20
(09-05-2016, 10:59 PM)mikikg Wrote: Hmm, ja tek sad vidim da su STN i MCP na razlicitim napajanjima.
Tu ti srdacno preporucujem da postavis "aktivan" konverter nivoa.
Evo ti prosta shemica koja provereno radi odlicno, cak je i dvosmerna, moze posluziti i za I2C protokol, naravno i za sve ostale jednosmerne protokole tj jednosmerne linije.

[Image: attachment.php?aid=20812]

Sto se tice terminacije, uh to je must-have prakticno za sve digitalne signale/linije gde imas frekvencije >100kHz i duzine provodnika vece od nekih 10cm.
Skoro sam imao probleme sa tim na nekom mom HW, pojavljivao mi se overshot koji mi je lazno "okidao" ulazna kola i brljavio celu logiku dok nisam postavio redno otpornik sa tim linijama. Koliki otpornik trebas staviti to prakticno ne mozes da znas dok ne uradis prototip PCB-a jer zavisi od XY faktora ali se sa osciloskopom to sve lepo vidi, onda malo eksperimentises sa raznim otpornicima dok ne dobijes skoro perfetne pravougaone signale na linijama.

Zasto je bitna ispravna terminacija pogledaj ovaj vrlo simpatican i poucan retro video od Tektronix-a:
Tektronix - Transmission Lines - YouTube

Hvala na komentarima, ko sto rekoh iznad, uspeo sam da dobijem odgovor od auta sa terminal resistorom od 120ohm-a. 

Sad nesto drugo ne stima, iz nekog razloga code se ponasa drugacije, npr. sad dobijem nekad lepo poruku, nekad dobijem dva responsa za jednu poruku, nekad ne dobijem odgovor, pa dobijem odgovor na tu komandu kad pokrenem sledecu...vrlo cudno, a to isto radi bez problema na breadboard-u. 

Uzeo sam logic analyzer, cekam da stigne pa cu da proverim sta se desava...a do tad cu da proverim jos malo code.

Izgleda da na pcb-u ne detektuje terminator uvek, koji je inace ">" lepo i da se nesto ne cisti lepo iz buffer-a. Moguce da propustam neku komandu koju sam mozda izvrsio na breadboard-u koja je vezana za setup STN-a...a koju nisam ukljucio u code-u.

U code-u izvrsim samo ove:

ATZ
ATSP0
STSATI xxx
STS@1 xxx

Samo da resetujem, da stavim na auto protokol i promenim info za cip. 

Probao sam da se igram i sa hederima i echovanjem i line feed al no luck.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)