Arduino nepřenáší data po sběrnici

Jenda

Re:Arduino nepřenáší data po sběrnici
« Odpověď #60 kdy: 14. 01. 2016, 11:35:24 »
Správně neprepinam. Nano pouze odesílá cca každou vteřinu.
tak začněte, ono to naprosto zbytečně žere docela hodně
Hlavně praní se o směrnici by mohlo vysvětlovat ten problém, že kterým sem vůbec přišel.


Honza

Re:Arduino nepřenáší data po sběrnici
« Odpověď #61 kdy: 14. 01. 2016, 11:45:35 »
jenom pro jistotu - na jednu sběrnici (kroucený pár + dva terminátory) může připojit hodně zařízení jako odbočky (multi drop), je to sběrnice nikoliv hvězda, ale neznamená to omezení na dvě zařízení

Super to sem potřeboval vědět. Vím že se jedná o základní znalost ale s RS485 pracují poprvé. Zas jsem o něco chytřejší.

Ohledně toho časování. Je mi jasné že když budou vysílat dvě zařízení ve stejnou dobu nebude to fungovat. Hodlám to celé řídit pomocí megy. Mega odešle 1. Na sbernicu bude cca 10 termostatu 1-10. Všechny to přijmou ale pouze 1 odpoví. Potom vyšle třeba zase 4 a odpoví jen termostat 4.

v

Re:Arduino nepřenáší data po sběrnici
« Odpověď #62 kdy: 14. 01. 2016, 11:46:46 »
Správně neprepinam. Nano pouze odesílá cca každou vteřinu.
tak začněte, ono to naprosto zbytečně žere docela hodně
Hlavně praní se o směrnici by mohlo vysvětlovat ten problém, že kterým sem vůbec přišel.
ne, to neodpovídá popisu

v

Re:Arduino nepřenáší data po sběrnici
« Odpověď #63 kdy: 14. 01. 2016, 11:51:46 »
Super to sem potřeboval vědět. Vím že se jedná o základní znalost ale s RS485 pracují poprvé. Zas jsem o něco chytřejší.
podívejte se na ten odkaz na stránku maximu, pár věcí vám to osvětlí (např. že ty odbočky mají od sběrnice mají být krátké)

Ohledně toho časování. Je mi jasné že když budou vysílat dvě zařízení ve stejnou dobu nebude to fungovat. Hodlám to celé řídit pomocí megy. Mega odešle 1. Na sbernicu bude cca 10 termostatu 1-10. Všechny to přijmou ale pouze 1 odpoví. Potom vyšle třeba zase 4 a odpoví jen termostat 4.
takhle se to většinou dělá, možná byste mohl i uvážit nějaký standartní protokol, asi nejrozšířenější je modbus rtu

ehmmm

Re:Arduino nepřenáší data po sběrnici
« Odpověď #64 kdy: 15. 01. 2016, 07:59:18 »
Trosku offtopic, zpatky k osciloskopum:

Kdyz uz se chci osciloskopem koukat, co se na te RS485 deje, tak obvykle bude na obou vodicich namodulovanych 50 Hz s nejakou amplitudou. Pokud nemam k dispozici osciloskop na baterky nebo oddelovaci trafo nebo napajeci kabel s uskripnutym zelenozlutym, tak mi nezbude nez dat jednu sondu na vodic A, druhou na vodic B a zobrazovat rozdil. A otazka zni: umi nejaky levny osciloskop triggrovat na rozdil dvou kanalu (nebo obecne na MATH)? Umi to treba ten zminovany Rigol 1052E? Dokazal by to ten chytrejsi 1054Z?


dustin

Re:Arduino nepřenáší data po sběrnici
« Odpověď #65 kdy: 15. 01. 2016, 08:47:36 »
Trigger na rozdíl A-B je celkem standardní funkce.

Ten 1054Z má (po "aktualizaci") přímo analýzu vícedrátových sériových protokolů (sériák, I2C, atd.). Rovnou vypisuje (bin/dek/hexa) přijaté/odeslané bajty. Myslím, že lze trigrovat i konkrétní zaslanou hodnotou. Analyzoval jsem s ním sériový protokol předávaný nějakými váhami do bluetooth modulu a byla to práce na chvíli.

Jinak není problém jej hodiny napájet z nabité obyčejné UPSky odpojené od sítě, na ty generované hranáče šlape OK, měřil jsem takto triakový primár třífázové svářečky, samozřejmě trochu opatrněji :-)

k

Re:Arduino nepřenáší data po sběrnici
« Odpověď #66 kdy: 15. 01. 2016, 08:56:35 »
Ohledně toho časování. Je mi jasné že když budou vysílat dvě zařízení ve stejnou dobu nebude to fungovat. Hodlám to celé řídit pomocí megy. Mega odešle 1. Na sbernicu bude cca 10 termostatu 1-10. Všechny to přijmou ale pouze 1 odpoví. Potom vyšle třeba zase 4 a odpoví jen termostat 4.

Na jeden kroucený pár můžeš připojit dvacet zařízení s RS485 bez větších úprav, samozřejmě musíš správně přepínat vysílání/příjem. Hvězdicí se myslí desítky metrů odboček a to fungovat nebude. Prostá odbočka 10 cm fungovat bude.
Protokol je nutno zabezpečit CRC. Ukázka komunikace: 0xFF 0xFF pro stabilizaci linky, pak protokol: 0x01 povel data 0x80 CRC_LO CRC_HI
Ukázka CRC: http://stjarnhimlen.se/snippets/crc-16.c

Kdyz uz se chci osciloskopem koukat, co se na te RS485 deje, tak obvykle bude na obou vodicich namodulovanych 50 Hz s nejakou amplitudou.

S triggerem na RS485 problémy nejsou, má 5 V, šum bývá podstatně menší.

ehmmm

Re:Arduino nepřenáší data po sběrnici
« Odpověď #67 kdy: 15. 01. 2016, 10:22:39 »
Trigger na rozdíl A-B je celkem standardní funkce.

...

Jinak není problém jej hodiny napájet z nabité obyčejné UPSky odpojené od sítě, na ty generované hranáče šlape OK, měřil jsem takto triakový primár třífázové svářečky, samozřejmě trochu opatrněji :-)

No dobra, odpovim si sam.  :)  Rigol DS1052E umi dle navodu CH1, CH2, EXT, AC line a nejaka verze ma jeste digitalni vstupy, ale nikde nevidim MATH, nebo neco takoveho. Je tam sice moznost Alternate (CH1 or CH2), u kazdeho kanalu muzu chytat ruzne siroke pulsy, radky video signalu... A kdyz koukam na ten DS1054Z, tak nema ani EXT a pri triggerovani RS232 se mu musi vybrat jeden kanal. Take tam nevidim moznost chytat na MATH, nebo tak neco. Je to zvlastni, asi predpokladaji, ze kdo chce, ten si nejak poradi. Nebo to triggerovani vyhodnocuje nejaky rychly HW a MATH se pocita az potom pri zobrazeni. (?)

UPS me nenapadla. Je sice vetsi nez oddelovaci trafo, ale zase nemusim hledat na hale zasuvky a tahat prodluzovak.

S triggerem na RS485 problémy nejsou, má 5 V, šum bývá podstatně menší.

Praveze uz jsem videl i vetsi vlny, nez samotne A-B u RS485. Se svym jednoduchym osciloskopem jsem dokazal trigrovat pouze pakety bud na horni nebo dolni uvrati 50Hz vlny.

k

Re:Arduino nepřenáší data po sběrnici
« Odpověď #68 kdy: 15. 01. 2016, 10:46:32 »
Praveze uz jsem videl i vetsi vlny, nez samotne A-B u RS485. Se svym jednoduchym osciloskopem jsem dokazal trigrovat pouze pakety bud na horni nebo dolni uvrati 50Hz vlny.

To se samozřejmě může stát a rovnou jste odhalil problém se zemními smyčkami :)

dustin

Re:Arduino nepřenáší data po sběrnici
« Odpověď #69 kdy: 15. 01. 2016, 11:55:13 »
A kdyz koukam na ten DS1054Z, tak nema ani EXT a pri triggerovani RS232 se mu musi vybrat jeden kanal. Take tam nevidim moznost chytat na MATH, nebo tak neco.

Ok, sorry, spletl jsem si to s math. Ten rigol trigger na a-b neumí. Je to logické, je to digitál a výsledky přijdou až se zpožděním.

[/quote]
Je to zvlastni, asi predpokladaji, ze kdo chce, ten si nejak poradi.
Citace

V tomto případě tedy asi holt jo. Operák na rozdíl a trigrovat přes další kanál.

Mirek

Re:Arduino nepřenáší data po sběrnici
« Odpověď #70 kdy: 16. 01. 2016, 16:25:51 »
A kdyz koukam na ten DS1054Z, tak nema ani EXT a pri triggerovani RS232 se mu musi vybrat jeden kanal. Take tam nevidim moznost chytat na MATH, nebo tak neco.

Ok, sorry, spletl jsem si to s math. Ten rigol trigger na a-b neumí. Je to logické, je to digitál a výsledky přijdou až se zpožděním.

Je to zvlastni, asi predpokladaji, ze kdo chce, ten si nejak poradi.
Citace

V tomto případě tedy asi holt jo. Operák na rozdíl a trigrovat přes další kanál.

A nebo primityvní přípravek s MAX485 zapojenou na trvalý příjem a trigovat hezky na přijatý TTL/3.3v signál...

Mirek

Re:Arduino nepřenáší data po sběrnici
« Odpověď #71 kdy: 16. 01. 2016, 17:52:37 »
 :o Doprčic, hrubka jak vrata...