Stránka 1 z 3

Komunikace více PIC přes izolovanou sběrnici

Napsal: 04 úno 2016, 08:59
od dracekvo
Zdravím,

chtěl jsem se jen ujistit že můj nápad je nejjednodušší. Mám 16x procesor PIC12F1571 na něm je využitý 1 pin ADC a jeden IO pin jako výstup. Zbytek je nevyužitý. Pracovní napětí 2,5V až 3,5V.

Potřebuji posílat data z ADC do nadřazeného PIC, ale problém je, že se nesmí spojit země.
Tak mě napadlo udělat si vlastní dvoudrátovou sběrnici kde bude jeden vodič jako vysílací a jeden jako přijímací a oddělené to bude obyčejným opto izolátorem 817.

Komunikací jsem se inspiroval u teplotního čidla DS18b20.
Tj, delším přidržením vysílací sběrnice v log 1 bych provedl reset, pak bych pomocí dlouhých a krátkých pulzů definoval log, 0 a 1. Tím bych oslovil konkrétní PIC jeho adresou a pak bych vysílací sběrnici použil jako hodinový signál a na vstupní sběrnici četl hodnotu, kterou by mi poslal oslovený PIC.

Je to tak schůdné, nebo někoho napadne něco lepšího?

Napsal: 04 úno 2016, 09:22
od Jirka525
Tohle je sice možné. Mě ale připadá komunikace s DS18B20 taková těžkopádná a nevýkonná. Já bych raději použil zabudovaný UART, s galvanickým oddělením. Dostaneš standardní synchronní/asynchronní komunikační kanál, na kterém můžeš provozovat některý ze standardních kom protokolů (třeba Modbus) nebo vlastní.

Napsal: 04 úno 2016, 09:27
od Zaky
Podívej se na izolátory ADUM od Analog, taky bych to řešil asi UARTem.

Napsal: 04 úno 2016, 09:31
od dracekvo
PIC12F1571 UARTem nedisponuje, ale tak mohl bych vzít jiný PIC, který by ho měl. Akorát je problém, že všechny izolátory sběrnic nejsou moc levný.

Jde mi taky o cenu. Koukal jsem na ty adumy a 2 kanálový oddělovač stojí 50,-. To je 8 stovek za 16ks. 100ks 817 stojí dohromady stovku.

Napsal: 04 úno 2016, 09:42
od Jirka525
dracekvo píše:PIC12F1571 UARTem nedisponuje

Omlouvám se. Špatně jsem přečetl katalogový list. EUSART má typ PIC12F1572.

Napsal: 04 úno 2016, 09:46
od dracekvo
To nevadí, PIC bych klidně změnit mohl na nějaký co by UART měl.
Ale spíš mi jde o ty ceny oddělovačů sběrnic, proto sem se vydal touto kostrbatou cestou.
Kdyby byl nějaký oddělovač za 20kč, tak bych do toho šel, ale 50 a víc už je moc.

Napsal: 04 úno 2016, 09:54
od Zaky
I UART můžeš oddělit optočleny, i levnými, akorát ho musíš provozovat pomalu.

Napsal: 04 úno 2016, 09:59
od dracekvo
Rychlost nepotřebuji.
Mohl by jsi mě trošku navést jak na to? V tomhle dost plavu.

Napsal: 04 úno 2016, 10:05
od Zaky

Napsal: 04 úno 2016, 10:12
od Zaky
ještě se podívej taky na toto: http://www.farnell.com/datasheets/1857644.pdf Cena je nižší, než u ADUMů a je to menší, než s optočleny.

Napsal: 04 úno 2016, 10:19
od Jirka525

Napsal: 04 úno 2016, 10:23
od Zaky
To je samozřejmě v pohodě funkční řešení, ale za dvacku v jednom směru.

Napsal: 04 úno 2016, 10:26
od termit256
Pokud rychlost nehraje roli, pouzij klidne uart nebo cokoliv co se ti hodi. Jen posli bajt/paket dvakrat za sebou. Prijimaci strana vyhodnoti jestli jsou oba stejne a pokud ne, posle povel k opakovani prenosu. Oddelit to muzes v klidu optocleny z ebay, jen pozor na tu rychlost. Ja to tak bezne delam a ani v prumyslovych podminkach s tim nejsou zadne problemy. Neni spatne logovat si nekde a vyhodnocovat pocet chybnych prenosu, pokud se bude zvetsovat, bude to indikovat nejaky pocinajici problem.

Napsal: 04 úno 2016, 10:32
od Jirka525
No při těch počtech, o kterých mluví by dosáhl na množstevní slevu cca 11 Kč/ks bez DPH

Napsal: 04 úno 2016, 11:01
od dracekvo
Co jste mi poslali za odkazy tak je o víkendu pěkně v klidu prostuduju.
Určitě se ještě ozvu. Z farnellu budu stejně objednávat ty PICy, takže něco k tomu přihodit by nebyl problem.