PIC mikrokontroler - komunikácia - problém

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa vsimjak » 24 Nov 2019, 19:34

Ahojte, potreboval by som pomocť s mikrokontrolérmy PIC. Mám zariadenie s tlačidlami [ ďalej ovládač ], ktoré slúži ako ovládač pre obslužnú skriňu [ ďalej OS], kde sú relátka. V ovládači je procesor 16F18854. Po stlačení klávesy na ovládači sa aktivuje relátko v OS, ktoré prislúcha danej klávese. V obslužnej skrini je procesor PIC18F67K40. Ovládač je prepojený s OS 3 vodičmi VCC, GND, DATA.

Chcem OS ovládať pomocou vlastného zariadenia a tak som chcel zistiť aké informácie vedu od ovládača k OS. Aby som si pomocou svojho zariadenia vedel posielať informácie do OS a ovládať ju sám.

Zo začiatku som si myslel, že posielanie dát z ovládača je realizované cez zbernicu UART, čiže DATA je Rx pin.

Pripojil som si Rx pin z ovládača na Tx na arduino, aby som zistil viac o týchto dátach. Pomocou malého programu som zistil, že BAUD je 4200 čo nie je štandardné.

Potom som si vytvoril program kde som tieto dáta čítal a nevidel som rozdiel pri stláčaní rôznych tlačidiel. Dáta boli nezrozumiteľné nedávali žiadny význam. Nedalo sa identifikovať tlačidlo.

Potom som pozrel kam vedie DATOVY pin na ovládači a zistil som, že je pripojený k procesoru na pin RB1 čo je CLK/CLS čo by odpovedalo komunikácií cez I2C ale RB2 (SDA) je pomocou rezistora pripojené na GND.

Momentálne som zmätený a nerozumiem akým spôsom komunikuje ovládač s OS.

Viete mi prosím poradiť ako sa pohúť dalej ? aby som sa dostal k prenášaným informáciam.

PIC16… [ ovládač ] - DATASHEET
http://ww1.microchip.com/downloads/en/D ... 01826D.pdf

PIC18… [ OS ] - DATASHEET
http://ww1.microchip.com/downloads/en/D ... 01841D.pdf

Na OS je pin RX privedený na RE3.
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: PIC mikrokontroler - komunikácia - problém

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

Vieme. Vezmi logický analyzátor, alebo digitálny osciloskop a zaznamenaj si priebeh signálu. Potom sa dá špekulovať na čo sa to podobá. Jedným drôtom I2C neurobíš. Takže to vidím tiež skôr na asynchrónny prenos.
Edit
To podporuje aj to že to RE3 je RX vstup nejakého UARTU. A tiež to že TX na tom prvom sa dá remapovať
All output signals shown in this row are PPS remappable. These signals may be mapped to output onto one of several PORTX pin options as described in Table 13-3.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa romiadam » 24 Nov 2019, 20:07

Presne ako vravi peterple.

Ak nems log. nalyzator a nesuri to kup si klon saleae o za par supov z ciny. Ak to suri kup si klon saleae z EU napr tento z talianska

https://www.ebay.ie/itm/LOGIC-ANALYZER- ... SwxoJci9si

alebo akchces podporit vyrovbcu tak si to kup do firmy orignal od Saleae

https://www.saleae.com/?gclid=EAIaIQobC ... gK6yvD_BwE

tam je ale cena v nebesiach... Budes musiet zavolat Vilovi Rozborilovi :biggrin:
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa vsimjak » 24 Nov 2019, 20:27

Ďakujem, za odpovede.

Našiel som analyzér aj na slovenskom e-shope.
https://techfun.sk/produkt/logicky-anal ... ov-24-mhz/
Objednám ho a vyskúšam to. Potom napíšem čo som zistil.

Zatial ďakujem.
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa romiadam » 24 Nov 2019, 22:11

ak ti k tomu nedaju sofware (alebo nenajdes na IT), tak sa ozvi.
Ten program ti rovno dekoduje najpouzivanejsie protokoly ako UART, I2C, SPI, 1-wire a pod.
Saleae.png
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa vsimjak » 27 Nov 2019, 09:35

Pozdravujem,

logický analyzátor mi prišiel. Napojil som RX na všetkých 8 kanálov čo analyzátor ponúkal a nastavil som rôzne konfigurácie pre čítanie signálu. Pre porozumenie [ AS 9b 1sb ] je Async Serial na 9bitov a 1 stop bit. Bit Rate som nastavil na AUTO lebo neviem abý baud sa používa. Program ukázal že baud je 4250. Zobrazené znaky su nastavené na Ascii. Posielam výsledok merania + nastavenie analyzátora.

Viete mi poradiť čo ďalej s tým, alebo ako postupovať aby som vedel prečítať dáta ?
Prílohy
Snímka obrazovky 2019-11-27 o 9.29.57.png
Snímka obrazovky 2019-11-27 o 9.23.58.png
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa romiadam » 27 Nov 2019, 11:26

To nebude sranda dekodovat to ked nic o o tej kmiunikacii nevies. To bude vela roboy a ani nevies ci to dekodujes. Cierna skrinka.

Najprv skus zistit co je to za protokol, z casovania signalu. Saleae nema tolko rozumu aby ti to presne zistil. On si "precita" dekoduje signal na zaklade tebou vybrateho protkolu.

ja by som zacal s tym ze by som stale stlcal jedno tlacidlo a sledoval ci su signaly identicke, ci sa posle len jeden sled dat alebo sa to opakuje, ci na to odpoveda druhy PIC. Potom stlacal ine tlacidlo a zase porovnaval a hladal v tom neaku logiku.

Tiez by som zistil ci oni medzi sebo neako komunikuju v neakych casovych intervaloch aj ked sa nic nestlaca.

Nebude to lahke, a mozno aj nemozne ale skusit to skus. Mozo na nieco prides. Vsak uvidis.

Skus si ponastudovat materialy od vyrobcu zariadenia, ci tam nespomina aka komunikacia sa tam pouziva, popripade kontaktuj vyrobcu. Za pokus to stoji.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

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

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa Atlan » 27 Nov 2019, 14:32

Protokoly tam n3davaj.

Len daj zosnimat signal na zaklade nejakej hrany. Osobne davam v binarnom tvare skor vidno ked sa meni j3dnotka a posuva hore dole. Bude tam nejaka hlavica ala start, nejake telo, nejaky crc, a stop bit.
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: PIC mikrokontroler - komunikácia - problém

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

Čo sa týka formátu jedného rámca, podľa mňa hneď druhé je správne. Teda 8b + stop bit. Ale neublížia ani dva. Je vidno že ďalší štart bit ide až o dobrú chvíľu neskôr
Rýchlosť je neštandardná. Najbližšia je 4800 ale to je pomerne ďaleko. Pravdepodobne to majú naladené na oboch procesoroch. Protokol ti z jedného paketu nikto nepovie. Ako písali predrečníci skúšať a skúšať a hľadať v tom nejakú logiku. Už nie si slepý a presne vidíš čo tam beží aj bez arduína. Prípadne si to môžeš naberať arduínom a vypisovať celý paket v binárnom tvare a na konci zariadkovať. Tam by si najskôr mohol zbadať nejakú závislosť. Teda konkrétne tento paket by vyzeral napr.

Kód: Vybrať všetko

1100_0000 0111_1111 0111_1111 0000_0001 0000_0001
Keby si to sypal takto na terminal riadok za riadkom tak sa tam niečo pravidelné možno aj objaví.
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
Tribec Zacks
Pokročilý člen
Pokročilý člen
Príspevky: 709
Dátum registrácie: 26 Jún 2010, 00:00
Bydlisko: Levice / Cork IRL
Vek: 41
Kontaktovať používateľa:

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa Tribec Zacks » 27 Nov 2019, 22:10

vsimjak, daj tych waveformov viac a hlavne napis co stlacas na tom ovladaci.
urcite uploadni, ak mas na tom ovladaci nieco rozumne iduce vedla seba ako 1,2, alebo +/-, up/down atd,
jedno stlacenie a jeden obrazok nech to vieme pridelit.
z toho co si poslal to vypada na nejaky start,prikaz,prikaz,hodnota,hodnota, 2x na detekciu chyby? kto vie, ale priebehy mas, baudrate tiez a replikovat to by nemal byt najmensi problem.
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa vsimjak » 28 Nov 2019, 00:35

Pozdravujem,

spustil som čítanie bez zvolenej zbernice a zistil som že sekvencia bitov čo príde je vždy rozdielna pre rôzne tlačidla, ale keď stlačím to isté tlačidlo tak príde vždy rovnaka. Prikladám obrázok. Červená čiara je začiatok pírchodu dát. Dáta prídu na začiatku vždy rovnaká až po modrú čiaru. Odtial ide unikátna sekvencia pre rôzne tlačidla. Na obrázku je to pekne vidieť.

Takže viem napr. že pre tlačidlo 1 mi príde vždy rovnaká sekvencia dát.

Na jedno stlačenie tlačidla príde vždy táto sekvencia 6 krát (prikladám obrázok), keď držím tlačidlo tak pojde sekvencia pokým to nepustím.

Po nastavení Baudu, 8 bit data, start bit, 1 stop bit. Spustím načítavanie dát. Správne načíta len začiatok potom vypíše pre niektoru skupinu bitov ”Frame Error” ( prikladám obrázok pre rôzne tlačidla) takže neviem čo tam príde keď dá error.

Napríklad pre Tlačidlo 1 tieto dáta 192 - 127 -127 - 1 - 1 - 1 - 127 - 127 - error - error

Prikladám aj foto ovládača, ktorý skúmam.
Prílohy
Frame 2.png
Frame 1.png
Snímka obrazovky 2019-11-27 o 23.52.43.png
batsi.png
batsi.png (46.84 KiB) 3900 zobrazení
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa romiadam » 28 Nov 2019, 01:24

A ten prijimac aj nieco posiela naspat do toho tlacidloveho ovladaca? Komunikuju medzi sebou, alebo len stale ten tlacidlovy modul posiela udaje?

Ak nekomunikuju medzi sebou, tak len okopiruj data ktore sa posielaju pre jednotlive tlacidla (dufam ze tam nemas kombinacie dvoch tlacidiel stlacenych naraz) a naprogramuj to do tvojho PIC MCU tak ako teraz idu, a mas to. Ak komunikuju, tak to bude tazsi oriesok.

Mozno ta firma co to vyrobila si tam dala svoj vymysleny protokol, aby sa to tazsie kopirovalo. Ktovie. Kontaktoval si uz tu firmu = texchnicku podporu? Za to nic nedas aj ked ti neodpovedia. Ak ti odpovedia/poradia, mas vyhrate. Nemas co stratit.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

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: PIC mikrokontroler - komunikácia - problém

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

Tvoje nové data dosť zásadne menia situáciu. Podľa tých prvých to bol klasický banálny asynchrónny prenos. Bol tam na začiatku štart bit(skok na T do nuly), potom data(8xT nejaká hodnota) a na konci stop bit (návrat do neaktivneho stavu na minimálne T). Lenže to nebol celý paket, takže záver bol chybný.
Teraz si to nechal sledovať dlhšie a tam je vidno že od modrej čiary to už nie je v tvare asynchrónneho prenosu. A už vôbec sa to po skončení (ak je to naozaj skončenie) nevracia späť do východzej logickej jednotky. Tá trvalá nula je v rozpore s podmienkami asynchrónneho prenosu. Čo znamená že to asynchrónny prenos nie je.
Mne na tých tvojich obrázkoch ešte chýba to, kedy sa to vráti do logickej 1 čo zatiaľ berieme ako východzí stav.
Písal si že to komunikuje len jedným signálom, ale pri tak dlhej správe by to chcelo nejakú synchronizáciu aj počas správy. Teda buď mať ešte jeden synchronizačný signál na ďalšom vodiči. Konektor má podľa obrázka 4 piny. Ten štvrtý je nezapojený? Nie sú tam nejaké hodiny čo synchronizujú data?

Alebo mať v pašovanú synchronizáciu do dát. Lenže štart a stop bity to nie sú. Potom ešte poznám zmiešanie dát a hodín do jedného signálu ako to robí napríklad Manchester kód. Ale na ten sa mi to tiež nepodobá.

Najjednoduchšie samozrejme je to presne omerať za každých okolností a to isté vygenerovať vlastným sw a neriešiť čo je to za divočinu.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

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

Pozdravujem,

posielam obrázok celého priebehu signálu po jednom stlačení. Prvá časť je sekvencia čo som posielal hore. Posiela sa to iste 5x za sebou asi preto že to držím určitý čas pri dlhšom držaní sa rovnaká sekvencia opakuje. Keď pustim tlačidlo tak ešte dobehnú dáta. a to je ten ostatok. Ale je to len nejaký seld dát takých neurčitých. A na konci sa vráti do Log 1.

Áno kolíky sú iba GND, VCC, DATA nič viac. Ten 4 nieje pripojený do ovládača. Ešte ma napadlo ako som písal hore že som pozrel kam vedie DATOVY pin na ovládači a zistil som, že je pripojený k procesoru na pin RB1 čo je CLK/CLS čo by odpovedalo hodinám ale ten istý kolík vedie dáta. Prikladám obrázok vyznačil som cestu DATA + Je tam radio vysielač. Zariadenie môže komunikovať aj Radiovo. V zelenom krúžku je súčiastka, ktorá riadi vysielací mód. V prípade že je pripojená baterka tak automatický prepne na Radiovu komunikáciu ak nieje tak ide po kábly.

Myslím si že nekomunikujú obojstranne ale po odoslaní ešte prebieha komunikácia. Možno to odosiela prijímač do tohto vysielača. A po odoslaní pošle p Takže by stačilo poslať to isté. Akým spôsobom by bolo najlepšie to odchytiti a odoslať ? Chcel by som to odosielať pomocou Raspberry pi prípadne Arduino.
Prílohy
Frame č.png
Frame 3 (1).png
0
Naposledy upravil/-a vsimjak v 28 Nov 2019, 09:49, upravené celkom 2 krát.

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

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa Atlan » 28 Nov 2019, 09:38

Nebol by som isty ze ten koniec nieje odpoved od prijimaca.
0

joži
Stály člen
Stály člen
Príspevky: 374
Dátum registrácie: 06 Júl 2014, 10:55
Bydlisko: Lazany

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa joži » 28 Nov 2019, 09:48

Pozri čo je to za typ RF modulu. to že zbernicu drži MCU v 1dnotke naznačuje že po pripojení zariadenia je ovladač v rečime vysielača. takže po stlačení tlačitka a vyslani dat ostava zbernica v nule, resp. nedrzi ju procesor pull upom. Podla ma caka na odpoved od prijimača, aj to je dvovod prečo 5x pošle ten isty prikaz.... osobne by som skusil dohladať typ toho RF modulu a podla toho sa ujistil či je jedno alebo obojsmerna komunikacia. vyzera to ako priemysleny ovladač, a neverím ze ak je ovladanie robene ako vysielanie daneho prikazu a nie kontinualny tok dat, že sa neoveruje prijatie paketu!

-- Spojený príspevok 28 Nov 2019, 09:54 --

Ak mas možnost odsledovať spojenie ovladač a primač, tak to ktory vysiela/prijima zistiš tak že si daš do serie nejaku shotky diodu (bat 43) a budeš merať signal len na jednej strane pred nou a za nou(dva vstupy analyzera). tym padom budeš vedieť už naisto či je obojsmerna alebo nie. to čo prejde za diodu je od vysielača a čo neprejde odpoveda primač
0

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

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

Spravil som test.

Pripojil som vysielač ku prijímaču a napojil data kolík na analyzator. Stlačil som tlačidlo a vypísalo sled dát.
Potom som vysielač dopojil od prijímača a napojil na Analyzátor a taktiež som stlačil tlačilo ( to isté ) a Analyzátor zaznamenal priebeh.

Vyšlo mi z toho že po stlačení tlačidla prijímač prijíme dáta a potom odošle niečo do vysielača. Na obrázokch je vidieť že po odoslaní sekvencie je prázdno alebo sled dát potom je tam zakončenie. Ak je prázdno tak vysielač nebol pripojený ku vysielaču. Aj sú tam dáta tak bolo meranie robené ked boli spolu spojené. Pravepodobne vysielač čaká vždy rovnaký čas na odpoveď z prijímača.
Prílohy
Frame 5.png
Frame 6.png
0

vsimjak
Okoloidúci
Okoloidúci
Príspevky: 9
Dátum registrácie: 24 Nov 2019, 14:47

Re: PIC mikrokontroler - komunikácia - problém

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

Ďalej som zistil že keď stlačím alebo držím tlačidlo tak sa Rele na prijímači aktivuje. Nieje potrebné čakať na ten zvyšok dát čo príde po uvoľnení tlačidla aby sa aktivovalo. Čiže pre aktiváciu relé je potrený ten prvý sled informácií.
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa romiadam » 28 Nov 2019, 15:40

No toto bude na vela vecerov.....
Chcem OS ovládať pomocou vlastného zariadenia a tak som chcel zistiť aké informácie vedu od ovládača k OS. Aby som si pomocou svojho zariadenia vedel posielať informácie do OS a ovládať ju sám.
Nebolo by jednoduchsie kupit este jeden taky ovladac a tam tie tlacidla nahradit neakymi optoclenmi alebo relatkami a tak to zariadenie ovladat?
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

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: PIC mikrokontroler - komunikácia - problém

Príspevok od používateľa peterple » 28 Nov 2019, 21:08

Nejak sa nám to stále viac a viac zamotáva. By ma tiež zaujímalo či je to komunikácia simplex alebo half duplex. Daj tam diodu ako písal Joži a uvidíme. Tiež uvidíme či relé zopne aj keď nedorazí prípadná odpoveď. ďalej by ma zaujímalo čo je to tam za linkový budič. Tá data linka funguje na akom napätí? 0 až 5V? To by už ale chcelo skop a nie analyzátor. Na akú vzdialenosť to dočiahne káblom? Pre priemyselné prostredie a zvyknú používať robustnejšie linkové budiče (prúdová slučka, RS422, RS485).
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