Strana 1 z 1

I2C protokol dekodovanie.

Napísané: 31 Jan 2023, 14:51
od používateľa pajky
Caute.
Toto je pokracovanie debaty z

https://svetelektro.com/phpbb/?phpbb=dm ... Q9MTM4MA==

Trochu som to dal dokopy.
I2c z Bms ide na 12V urovni. Tak som spravil prevodnik na 5v a je to pripojene k arduinu.
Nahral som do neho nejaky program z netu, kedze velmy programovat neviem.
Prikladam foto vysledku. Napada niekoho nieco?
I2c scan mi vrati adresu Bms.
I2c read 0x(adresa) 16 (pocet bytov ktore ma precitat) mi vypise 16 x FF.
Podla logickeho analizera mam pocit, ze tam za adresou i2c chyba este nejaky znak..??
Dakujem za pomoc.

Re: I2C protokol dekodovanie.

Napísané: 10 Feb 2023, 18:03
od používateľa pajky
No co pani kurnik, nikoho nic nenapada?
Teraz nemam cas laborovat, ale ten pride a budem rad ak niekoho nieco napadne, resp vie ako ma komunikacia vyzerat.. a pak sa mi poznatky budu hodit.
Hladal som nejaky projekt, ktory dam do arduina dosky. Asi som bohvie co nenasiel.vid foto.
Nieco co preposiela terminal na i2c.
Blbost, a ziadny projekt na nete. Neviem skoro programovat , tak sa mi to nechce cele si napisat samemu.
Co ale spravim ak bude treba.
Pouzivam AvrStudio a idem v Ccku. Nebudem riesit nejake pseudojazyky.

Re: I2C protokol dekodovanie.

Napísané: 10 Feb 2023, 19:03
od používateľa Atlan
Naposledy ked som sa hral s SMB od notasovej baterky, tak sa mi podarilo odbornym citanim a zapisovanim, pomenit nejake hodnoty v BMS. az tak mi to nevadilo lebo som mal stiahnuty dump, a vedel to naspet prepisat ked som to spojazdnil. Dokonca som mal aj datasheet integraca takze som vedel co kde zapisujem a menim. ALe takto naslepo si koledujes o pruser.

inak kludne BMS moze byt uzamknuta tj nacitas len uzivatelske data.

skusil by som teda nacitat bezne uzivatelske data, bude tam vyrobca datum baterky kapacita napatie a podobne mrkni nejake programi pre SMB notasa

SMB_Arduino pozri si protokol niekde bude popisany
SMB_bus_v3.rar
(32.14 KiB) 48 stiahnutí

Re: I2C protokol dekodovanie.

Napísané: 10 Feb 2023, 23:53
od používateľa pajky
Toho za bojim aby som nepomenil nejake veci. Tak by sa celkom aj hodilo, ak by tam boli len uzivatelske data.. to by mi stacilo.

Ked to dodrbem, tak pojde do kosa a dam tam svoju BMS.

Re: I2C protokol dekodovanie.

Napísané: 24 Feb 2023, 21:39
od používateľa pajky
Pripomeniem sa. Nejake napady, doporucenia, kompletne zdrojaky? Uz s tym budem musiet pohnut.

Re: I2C protokol dekodovanie.

Napísané: 24 Feb 2023, 23:30
od používateľa peterple
Keď chceš radu ohľadom I2C tak si prečítaj akýkoľvek datasheet k nejakej I2C pameti, alebo RTC. Zožen si taký modul a vyskúšaj si či tomu správne chápeš. Plno kódov pre arduino.
Ohľadom reverz inžinieringu tej dosky by som išiel na to inak. Zahodil by som ten prevodník úrovní. Na doske by som vysledoval kde to prevedú a kam to majú pripojené na ten ich MCU. Tam budú pravdepodobne slušné I2C úrovne. Tam by som pripojil ten logický analyzátor, nabral čo najviac komunikácie a môžeš analyzovať do úplného vyanalyzovania.
A samozrejme treba potom ešte chytiť nejaké programátorské grífy. Nečakaj žiadne veľké programovanie od pospolitého ľudu. Nemá totiž prečo zabíjať čas tvojimi problémami. Ani ťa učiť veci čo sa dnes dajú naučiť z kdejakého youtube videa.

Re: I2C protokol dekodovanie.

Napísané: 25 Feb 2023, 14:49
od používateľa pajky
Tam nic ine nekomunikuje na i2c. Takze neodchytim ziadnu komunikaciu...
Nj, kto by sa mi s tym drbal, ani mne sa nechce. Ale skusil som chatGPT a ten je schopny nejaky kod napisat, bol to s nim trosku boj, ale nejaky zaklad mi dal, tak budem skusat.

Re: I2C protokol dekodovanie.

Napísané: 02 Mar 2023, 19:38
od používateľa pajky
Páni.
Tak po uvodnej frustracii, pokracuje, ale nieje konecna.
Nejakym zazrakom som sa pripojil a vyzera to ze musim poslat adresu a dalsie 3 byt.
Prvy z nich vyzera na register. Nejde to od 0x00 a dalej, je to skokovo. Tak skor stastie ze som trafil.
Este neviem, ako data interpretovat. A ktore su co. Nemam oskenovane vsetky adresy, chcelo by to nejaky script, nech to prebehne cele.
Prikladam foto z terminalu. Posiela mi to ako odpoved 2 byt.
Koho co napada?

Re: I2C protokol dekodovanie.

Napísané: 29 Mar 2023, 17:09
od používateľa pajky
prikladam vypis. pridam este popis dnes.

No caute.
Napada niekoho ako interpretovat tieto hodnoty?
Prvy stlpec je adresa v pamäti. Zapisujem ju v tvare 0x10(adresa i2c) 0x00-0xff(adresa pamät) 0x00 0x00
Prvy stlpec je teda adresa
Druhy stlpec je byt vycitany 0, potom byt 1, potom 2.
Dalsi trojstlpec su tie 3 byty prevedene na ciselnu hodnotu.
A dalsi do ascii.



Subor
Aaa- bms napajana z laboratorneho zdroja, nepripojene clanky, snimanie teploty a prudu.
Bbb- bms s baterkami, vsetko pripojene.
Ccc- ako bbb, ale o 1min pozdejsie.

Re: I2C protokol dekodovanie.

Napísané: 29 Mar 2023, 23:44
od používateľa pajky
Tak podla vsetkeho to sedi na SMBus.
Zhruba polovica dat sa asi bude dat rozlustit. A potom tam budu este nejake uzivatelske.
Takze sa mozem ucit dalej programovat.
Pekna prplacka.

Musim zistit ci by to slo previest na polintech protokol.

Re: I2C protokol dekodovanie.

Napísané: 07 Apr 2023, 23:04
od používateľa pajky
Kua, ako vycitam string? Aky je tam rozdiel oproti citanu word?
Ide o adresu 0x20. To je info vyrobca.
Smb je v1.0

Aky je rozdiel medzi prikazom I2c-start a i2c-repeat start?

Re: I2C protokol dekodovanie.

Napísané: 08 Apr 2023, 08:45
od používateľa YellowJacket
String nie je nic ine, ako pole byte-ov, ukonceny nulovym znakom. Citas kazdy byte, az pokial neprecitas 0.

Re: I2C protokol dekodovanie.

Napísané: 08 Apr 2023, 09:34
od používateľa peterple
pajky napísal:
07 Apr 2023, 23:04
Aky je rozdiel medzi prikazom I2c-start a i2c-repeat start?
Žiadny. Slúži to len na malé, bezvýznamné urýchlenie komunikácie (netreba urobiť STOP). Kludne používaj START - STOP ak ti to robí problém naprogramovať.

https://learn.adafruit.com/working-with ... ated-start

Re: I2C protokol dekodovanie.

Napísané: 08 Apr 2023, 12:12
od používateľa pajky
Pekny popis na tej stranke.

Podla vsetkeho to tak mam aj napisane, ale akoby mi precitalo len 2 byty.
Ale nemam este spravenu citaciu slucku pre string.
Citam 4 byty.
A vysledok je akoby prve 2 pismena a potom 0xff 0xff.
Pritom by to malo byt v tvare: pocet bytov k citaniu, potom byty stringu.
Skusim este tu citaciu slucku pre 32byt co to spravi.

Inak to funguje celkom ok. Co som chcel hlavne vycitat uz mam, skusim este tie stringy a potom este interpretovat data do ludskej reci.

I2c ide na 100khz
Uart 115200
Jeden ciklus asi 0,7s.

Re: I2C protokol dekodovanie.

Napísané: 08 Apr 2023, 13:09
od používateľa peterple
Ak si po dvoch znakoch dostal 0xff 0xff tak to asi nebude string. 0xff nie je žiadny rozumný znak. Zvyčajne to býva "prázdna hodnota". To preto lebo 0xff je obsah bunky po aplikácii operácie erase. Nemusí to platiť absolútne. Ak sú tam napr uložené čísla tak tie samozrejme môžu obsahovať aj bajty 0xff.

Re: I2C protokol dekodovanie.

Napísané: 08 Apr 2023, 17:17
od používateľa pajky
Jj, je to divne, ale podla SMB by to mal byt string, tak este skusim. Ostatne veci vyzeraju ze sedia.
Ale zajtra, dnes idem nakuknut dielnicku.
Inak logicky analyzer je na toto paradna vec, mozno kupim aj original seale logic.

Mozno by sa hodil a nejaky Jtag programator, ako to s nim je? Vidim v realnom case stav premennych pouzitych v progame? Nieco ako pri programovani PLC?

Len pri tom ako casto programujem proesory, tak neviem ci to ma vyznam.