Korrekt RS-232
Korrekt RS-232
Sziasztok!
Érdeklődnék hogyan lehet teljesértékű RS-232 portot
létrehozni a ATTiny2313-re. Értem ezalatt hogy
ne csak az Rx/Tx/GND menjen át hanem a hárdveres kézfogás is.
Illetve kérdezném hogy a PB1-7 lábak használhatók-e
Rx/Tx ként? Tulajdonképpen pontosan milyen funkciókat
tudnak ezen lábak?
Üdv: Peti
Érdeklődnék hogyan lehet teljesértékű RS-232 portot
létrehozni a ATTiny2313-re. Értem ezalatt hogy
ne csak az Rx/Tx/GND menjen át hanem a hárdveres kézfogás is.
Illetve kérdezném hogy a PB1-7 lábak használhatók-e
Rx/Tx ként? Tulajdonképpen pontosan milyen funkciókat
tudnak ezen lábak?
Üdv: Peti
Megoldható teljes handshake is. Ez lehet HW vagy SW alapú.
HW alapút neked kell a DCE/DTE lábakat is leprogramoznod. SW alapú pedig a Xon/Xoff protokollal megy.
Szinte bármely láb bárminek használható. DE:
* van a hardveres megkötés, ekkor a feladatot a HW látja el. (pl. TX/RX/Int/reset/T0, stb. funkciók)
* SWből ha valaki leprogramozza bármelyik lábra rakható (ilyen pl. a szoftveres TX/RX port, illetve pl. a Tiny chipben az I2C busz. Ez utóbbak hátránya, hogy nem tudnak megszakítást generálni, ha foglalkozni kell velük, így Neked kell megvalósítanod ezt is SW-ből. Valamint értékes programmemória helyet foglal a SW.
Az hogy melyik láb mit tud kb. 4 oldal felsorolni. Az ATMEL honlapján a 8bit RISC CPUk területén az adatlapban megtalálod. Vagy itt az oldalon a kb. 4. fejezetből is be van linkelve.
De mihez kell tulképpen?
HW alapút neked kell a DCE/DTE lábakat is leprogramoznod. SW alapú pedig a Xon/Xoff protokollal megy.
Szinte bármely láb bárminek használható. DE:
* van a hardveres megkötés, ekkor a feladatot a HW látja el. (pl. TX/RX/Int/reset/T0, stb. funkciók)
* SWből ha valaki leprogramozza bármelyik lábra rakható (ilyen pl. a szoftveres TX/RX port, illetve pl. a Tiny chipben az I2C busz. Ez utóbbak hátránya, hogy nem tudnak megszakítást generálni, ha foglalkozni kell velük, így Neked kell megvalósítanod ezt is SW-ből. Valamint értékes programmemória helyet foglal a SW.
Az hogy melyik láb mit tud kb. 4 oldal felsorolni. Az ATMEL honlapján a 8bit RISC CPUk területén az adatlapban megtalálod. Vagy itt az oldalon a kb. 4. fejezetből is be van linkelve.
De mihez kell tulképpen?
Sziasztok!
A sorosporti figyelés hogyan történik.
Úgy vezsem ki hogy addig fut egy ciklusban a sorosport figyelés amíg
nem történik valami. De mi van a többi programrészel?
Esetleg nem lehetne a sorosporti RxD, TxD vonalakat valamiféle
megszakítás lábra is rákötni és megszakitás vezérelve beolvasni a portról?
Üdv: Peti
A sorosporti figyelés hogyan történik.
Úgy vezsem ki hogy addig fut egy ciklusban a sorosport figyelés amíg
nem történik valami. De mi van a többi programrészel?
Esetleg nem lehetne a sorosporti RxD, TxD vonalakat valamiféle
megszakítás lábra is rákötni és megszakitás vezérelve beolvasni a portról?
Üdv: Peti
Ha IT alapon kell:
A bejövő Rx lábból egy leágazás valamelyik külső megszakítíásra. Ez SW-ből utána úgyis tiltható. A Tinyn van külső megszakítás 2 (Int0/1) + 8 (PortC, Portchange IT). Ennyi lábat nem is kell felhasználni, kivéve ha a láb menet + IT detektálást is tud. Portonként így kell 4 láb a teljes HWUART-hoz (ugye a kézfogás miatt 2 + 2 a Tx/Rx lábakra).
A Tiny-n van 20-2-2-1 (Össz-táp-kvarc-Reset) 15 láb. Ez 3 UARTot tud így. illetve a Mega164/324/466(?) ennek 40-6lába szabad. Ez 34 láb...
Portchange itt is ITt generál.
A bejövő Rx lábból egy leágazás valamelyik külső megszakítíásra. Ez SW-ből utána úgyis tiltható. A Tinyn van külső megszakítás 2 (Int0/1) + 8 (PortC, Portchange IT). Ennyi lábat nem is kell felhasználni, kivéve ha a láb menet + IT detektálást is tud. Portonként így kell 4 láb a teljes HWUART-hoz (ugye a kézfogás miatt 2 + 2 a Tx/Rx lábakra).
A Tiny-n van 20-2-2-1 (Össz-táp-kvarc-Reset) 15 láb. Ez 3 UARTot tud így. illetve a Mega164/324/466(?) ennek 40-6lába szabad. Ez 34 láb...
Helló mindenkinek!
Lenne egy kérdésem a sorosporttal kapcsolatban:
-Lehet 2 AVR-nél többet úgy összekötni, hogy ne legyen zavar?
Vagy ha több mindnet kell összekötnöm, maradjak inkább az i2c-nél?
Csak az i2c-vel meg az a bajom,hogy a tavolság,amig jól müködik kb 10m,nekem ennél több kell
Rs 485-tel meg ugyanaz a helyzet mint az Rs232-vel,vagyis félek,hogy 3 AVR-nél már bekavarodik...
Vagy ez nem igaz??
Lenne egy kérdésem a sorosporttal kapcsolatban:
-Lehet 2 AVR-nél többet úgy összekötni, hogy ne legyen zavar?
Vagy ha több mindnet kell összekötnöm, maradjak inkább az i2c-nél?
Csak az i2c-vel meg az a bajom,hogy a tavolság,amig jól müködik kb 10m,nekem ennél több kell
Rs 485-tel meg ugyanaz a helyzet mint az Rs232-vel,vagyis félek,hogy 3 AVR-nél már bekavarodik...
Vagy ez nem igaz??
de most esett csak le...ez nekem megint nem lesz jo (pedig már örültem...), mert ha csak egy lehet master.... 
Az lenne a lényeg, hogy egy központi egységet bármely masik eszköz, bármikor megszólíthasson, de ugy,hogy közben persze fusson más program (vagyis megszakítást kell generálni)...
Most akkor ez tényleg nem megoldható?
Vagy én vagyok már nagyon fáradt
Az lenne a lényeg, hogy egy központi egységet bármely masik eszköz, bármikor megszólíthasson, de ugy,hogy közben persze fusson más program (vagyis megszakítást kell generálni)...
Most akkor ez tényleg nem megoldható?
Vagy én vagyok már nagyon fáradt
Fáradtság....
I2C-n is úgy működik, hogy van egy master, meg 1000 kliens. Ha kliens akar valamit, akkor INT vonalon szól a Masternak, az meg lekérdezi.
Nálad:
Mindenki figyelő állásban van, a Master is.
Egyik kliens INT-et generál a Masteren (A klienseken egy dióda van az INT lábon, így csak alacsony vagy magas jelszint okoz INT-et és egymáséba nem zavarnak bele).
Master vette az INT-et, így végigkérdezgeti a Slave-kat, hogy kinek van hasfájása...
- Slave 1?
- Semmi, kösz, nyugtázva
- Slave2?*
- Semmi, kösz, nyugtázva
- Slave3?
- Én voltam. Az a bajom, hogy.......
- Slave4?
....
*Itt esik be az INT...
Ha közben újabb INT esik be, akkor azt megjegyzi.
A sort illik végigkérdezni, kivéve ha csak 1 INT volt. De a biztos - hátha többen is hasfájósak - a sort teljesen körbekérdezni, amíg _minden _ eszköz azut nem mondja, hogy "- Semmi, kösz, nyugtázva". Ekkor senkinél nem ragadt mondanivaló.
Így egyetlen INT láb elegendő, kissé beáldozva a sebességen (körbekérdezés)....
Amiire vigyázz:
Print esetén 16 bytes FIFO tárad van. Azaz a buszra írás után ennyit várj , amíg vételre nem kapcsolod a chipet (alapban minden Slave input-on van!) . Én a print után egy waitms (szükséges *1,2) szoktam adni.
9600 bps esetén: 1 byte 10 bit (start, stop+8).
1 sec 9600 jel, akkor 10 jel: 1.04 msec.
->waitms 2
I2C-n is úgy működik, hogy van egy master, meg 1000 kliens. Ha kliens akar valamit, akkor INT vonalon szól a Masternak, az meg lekérdezi.
Nálad:
Mindenki figyelő állásban van, a Master is.
Egyik kliens INT-et generál a Masteren (A klienseken egy dióda van az INT lábon, így csak alacsony vagy magas jelszint okoz INT-et és egymáséba nem zavarnak bele).
Master vette az INT-et, így végigkérdezgeti a Slave-kat, hogy kinek van hasfájása...
- Slave 1?
- Semmi, kösz, nyugtázva
- Slave2?*
- Semmi, kösz, nyugtázva
- Slave3?
- Én voltam. Az a bajom, hogy.......
- Slave4?
....
*Itt esik be az INT...
Ha közben újabb INT esik be, akkor azt megjegyzi.
A sort illik végigkérdezni, kivéve ha csak 1 INT volt. De a biztos - hátha többen is hasfájósak - a sort teljesen körbekérdezni, amíg _minden _ eszköz azut nem mondja, hogy "- Semmi, kösz, nyugtázva". Ekkor senkinél nem ragadt mondanivaló.
Így egyetlen INT láb elegendő, kissé beáldozva a sebességen (körbekérdezés)....
Amiire vigyázz:
Print esetén 16 bytes FIFO tárad van. Azaz a buszra írás után ennyit várj , amíg vételre nem kapcsolod a chipet (alapban minden Slave input-on van!) . Én a print után egy waitms (szükséges *1,2) szoktam adni.
9600 bps esetén: 1 byte 10 bit (start, stop+8).
1 sec 9600 jel, akkor 10 jel: 1.04 msec.
->waitms 2
Énnekem is mindíg aludni kell a dolgokra. Ma is összeraktam 10 alappanelt meg 10 teljesítményvezérlést (potom 10-12 óra forrasztás). Naná hogy nem megy valami benne.
Majd holnap megálmodom mi a hasfájása. a legszebb, hoyg ez ~24 példányban már működik, csak az kb. 1,5 hónapja készült el....
A RS485-n - ha nem akarsz INTet - akkor a Master egyfolytában kérdezgeto a Slave áramköröket elv is járható. Hogy a Slave-knek legyen idejük a saját feladataikat is ellátni, én 1..5 sec-es időablakkal dolgoznék.
Ekkor beesik egy megszólítás, megnézem nekem szól-e. Ha nem, akkor a sorosporti vételt tiltom addig (a bufferbe hadgyűljön az adat.) Az idő lejárta előtt (pl. TIMERrel nézem az időt) 0,1 seccel megnézem üres-e a buffer. ha nem, akkor kiolvasgatom a bennelevőket, és egyből el is dobom ezt az adatot (ez csak az időablakban futó kommunikáci nem nekem szóló része). A buffer kiürült, és nem telt épp le az időablak.
A master megszólítja a következő Slavet. Ha nem én vagyok -> előző procedúra. ha én vagyok, akkor van ~ 4 másodpercem, hogy a masterral megbeszéljem, hogy mi a hasfájásom. A 5...5 mp közötti időben _nem_ lehet a bsuzon forgalom, mert mindenki ekkor üríti a buffert....
Kérdés, hogy mekkora késleltetésed lehet az adat keletkezése és a masterre elvitele között. Ha kis sebesség elég, és rel. lassú válaszidő, akkor ez a megoldás teljesen jó.
Majd holnap megálmodom mi a hasfájása. a legszebb, hoyg ez ~24 példányban már működik, csak az kb. 1,5 hónapja készült el....
A RS485-n - ha nem akarsz INTet - akkor a Master egyfolytában kérdezgeto a Slave áramköröket elv is járható. Hogy a Slave-knek legyen idejük a saját feladataikat is ellátni, én 1..5 sec-es időablakkal dolgoznék.
Ekkor beesik egy megszólítás, megnézem nekem szól-e. Ha nem, akkor a sorosporti vételt tiltom addig (a bufferbe hadgyűljön az adat.) Az idő lejárta előtt (pl. TIMERrel nézem az időt) 0,1 seccel megnézem üres-e a buffer. ha nem, akkor kiolvasgatom a bennelevőket, és egyből el is dobom ezt az adatot (ez csak az időablakban futó kommunikáci nem nekem szóló része). A buffer kiürült, és nem telt épp le az időablak.
A master megszólítja a következő Slavet. Ha nem én vagyok -> előző procedúra. ha én vagyok, akkor van ~ 4 másodpercem, hogy a masterral megbeszéljem, hogy mi a hasfájásom. A 5...5 mp közötti időben _nem_ lehet a bsuzon forgalom, mert mindenki ekkor üríti a buffert....
Kérdés, hogy mekkora késleltetésed lehet az adat keletkezése és a masterre elvitele között. Ha kis sebesség elég, és rel. lassú válaszidő, akkor ez a megoldás teljesen jó.
ugy nezem,hogy valami jo megoldas csak osszejhon itt
Eddig ugy mukodott (csak 2AVR volt es RS232-t hasznaltam), hogy egy kozponti egyseg figyeli 8 helyseg homersekletet i2c-n, illetve ez vilagitasokat is vezerel,de azt csak egy szálon, pwm-mel.
Illetve vt egy RFID belepteto, ami kezelte szepen a belepest, s a fontosabb infokat elkulte soroson a kozpontnak,h "Figyelj,belepett valalki...",s ezt meg megszakitassal egybol jelezte a kozpont, el is tárolta.
Ez nagyon szepen mukodott mert egy master s egy slave vt, de...
van egy szellozeteto vezerles,amint lehet vezerelni helyben, de meg kene oldani,hogy a kozpont is vezerelje, illetve visszajelzest kapjon az aktualis allapotrol!
S ha ez menne,utanna lenne meg egy RFID egy masik helysegben...vagyis ez mar 3slave....
De amiket irtal,az tenyleg nagyon hasznos,s akkor ugy tunik,hogy atalakitom eloszoris RS485re, s "szep lassan" alkalmazom,amiket ajanlottal
Annyira nagy komm.sebesseg nem szukseges ide,de azert meg aznap erjen at az adat...
vagyis kozben figyelni kell a helysegek homersekletet,s annak megfeleloen szabalyozni helysegenkent a termosztatikus releket.
Ugy erzem ezzel elleszek par napig...
Nekem meg sok szerencset, hogy meglegyen a hiba
Eddig ugy mukodott (csak 2AVR volt es RS232-t hasznaltam), hogy egy kozponti egyseg figyeli 8 helyseg homersekletet i2c-n, illetve ez vilagitasokat is vezerel,de azt csak egy szálon, pwm-mel.
Illetve vt egy RFID belepteto, ami kezelte szepen a belepest, s a fontosabb infokat elkulte soroson a kozpontnak,h "Figyelj,belepett valalki...",s ezt meg megszakitassal egybol jelezte a kozpont, el is tárolta.
Ez nagyon szepen mukodott mert egy master s egy slave vt, de...
van egy szellozeteto vezerles,amint lehet vezerelni helyben, de meg kene oldani,hogy a kozpont is vezerelje, illetve visszajelzest kapjon az aktualis allapotrol!
S ha ez menne,utanna lenne meg egy RFID egy masik helysegben...vagyis ez mar 3slave....
De amiket irtal,az tenyleg nagyon hasznos,s akkor ugy tunik,hogy atalakitom eloszoris RS485re, s "szep lassan" alkalmazom,amiket ajanlottal
Annyira nagy komm.sebesseg nem szukseges ide,de azert meg aznap erjen at az adat...
vagyis kozben figyelni kell a helysegek homersekletet,s annak megfeleloen szabalyozni helysegenkent a termosztatikus releket.
Ugy erzem ezzel elleszek par napig...
Nekem meg sok szerencset, hogy meglegyen a hiba