Shift regiszter
- szvarhegyi
- Újonc
- Hozzászólások: 14
- Csatlakozott: 2012. szeptember 10. hétfő, 6:00
Shift regiszter
Sziasztok.
Elolvastam a leckékben leírt magyarázatot a shift regiszter működésére majd az interneten is tovább mélyítettem a tudásomat, viszont még nem érkezett meg hozzám a shift regiszter ezért lenne egy két kérdésem.
Adat kiküldés, hogyan zajlik több shift regiszter esetén? Amennyiben én a shiftOut-ot kétszer meghívom egymás után akkor az első shiftOut az első shift regiszterre megy majd a második a másodikra, vagy az elsőt kiküldőm majd mikor küldöm a másodikat az kitolja az elsőt a második shift regiszterre?
Adat visszaolvasás. Olvastam, hogy van a shiftIn parancs amit kiadva visszakapom a shift regiszter lábainak állapotát (remélem jól értettem az angol dokumentációt). Amennyiben van nekem 5 shift regiszterem egymás után kötve akkor egy shiftIn parancs kiadása után milyen formában kapom vissza az egyes shift regiszterek állapotát?
Elolvastam a leckékben leírt magyarázatot a shift regiszter működésére majd az interneten is tovább mélyítettem a tudásomat, viszont még nem érkezett meg hozzám a shift regiszter ezért lenne egy két kérdésem.
Adat kiküldés, hogyan zajlik több shift regiszter esetén? Amennyiben én a shiftOut-ot kétszer meghívom egymás után akkor az első shiftOut az első shift regiszterre megy majd a második a másodikra, vagy az elsőt kiküldőm majd mikor küldöm a másodikat az kitolja az elsőt a második shift regiszterre?
Adat visszaolvasás. Olvastam, hogy van a shiftIn parancs amit kiadva visszakapom a shift regiszter lábainak állapotát (remélem jól értettem az angol dokumentációt). Amennyiben van nekem 5 shift regiszterem egymás után kötve akkor egy shiftIn parancs kiadása után milyen formában kapom vissza az egyes shift regiszterek állapotát?
Szia!
Nem tudom, hogy ezt elolvstad-e: http://avr.tavir.hu/modules.php?name=Fo ... opic&t=615, de ha nem akkor olvasd el mindenképpen! Gondolom, te is a 74HC595-ös shift (soros bemenetű, párhuamos kimenetű) regiszterre gondolsz.
Amennyiben egymás után meghívod kétszer a shiftout-ot, akkor az első shiftout-tal kimegy az első 8 bit (már ha 8-bittel dolgozol, de nyilván) az első regiszterre (ami az AVR-hez "közelebb van"). Ha a második shiftout is lezajlik, akkor ez "kitolja" az első regiszterből az adatokat a másodikba.
Viszont az adatok csak akkor kerülnek kiírásra amikor a latch out lábat (12-es láb) magas állapotba állítod, így az adatok írása alatt nem fognak össze-vissza villogni a LEDek a shift regisztereden (már ha LEDeket kötsz rá).
Valahogy így:
A beolvasás hasonlóan van, ehhez persze más shift regiszter kell, pl.: 74HC165 (párhuzamos bemenetű, soros kimenetű).
5 regiszernél, 5-ször használod a shiftin-t. Első shiftin - legközelebbi regiszter, ötödik shiftin - legtávolabbi regiszter.
Nem tudom, hogy ezt elolvstad-e: http://avr.tavir.hu/modules.php?name=Fo ... opic&t=615, de ha nem akkor olvasd el mindenképpen! Gondolom, te is a 74HC595-ös shift (soros bemenetű, párhuamos kimenetű) regiszterre gondolsz.
Amennyiben egymás után meghívod kétszer a shiftout-ot, akkor az első shiftout-tal kimegy az első 8 bit (már ha 8-bittel dolgozol, de nyilván) az első regiszterre (ami az AVR-hez "közelebb van"). Ha a második shiftout is lezajlik, akkor ez "kitolja" az első regiszterből az adatokat a másodikba.
Viszont az adatok csak akkor kerülnek kiírásra amikor a latch out lábat (12-es láb) magas állapotba állítod, így az adatok írása alatt nem fognak össze-vissza villogni a LEDek a shift regisztereden (már ha LEDeket kötsz rá).
Valahogy így:
Kód: Egész kijelölése
'...
Dim Ic1 as byte 'első regiszter adatai
Dim Ic2 as byte 'második regiszter adatai
'...
Dim IcX as byte 'X-edik regiszter adatai
Shiftout Data_out , Clock_out , IcX , 0 'X-edik regiszter (AVR-től legtávolabb)
Shiftout Data_out , Clock_out , Ic2 , 0 'második regiszter
'...
Shiftout Data_out , Clock_out , Ic1 , 0 'első regiszter (AVR-hez legközelebb)
Set Latch_out 'csak most kerülnek kiírásra az adatok
Reset Latch_out
'...
5 regiszernél, 5-ször használod a shiftin-t. Első shiftin - legközelebbi regiszter, ötödik shiftin - legtávolabbi regiszter.
Bence
A Googli is kiakadt a kérdésedtől:
https://www.google.hu/search?q=shift+re ... 53&bih=505
Vagy 1000 shiftregiszter alkalmazás képekben.
https://www.google.hu/search?q=shift+re ... 53&bih=505
Vagy 1000 shiftregiszter alkalmazás képekben.
- szvarhegyi
- Újonc
- Hozzászólások: 14
- Csatlakozott: 2012. szeptember 10. hétfő, 6:00
- szvarhegyi
- Újonc
- Hozzászólások: 14
- Csatlakozott: 2012. szeptember 10. hétfő, 6:00
Amit régebben indítottam téma a 230V-os relé mára egy működő rendszer lett (természetesen még sok dolgom van vele de egyenlőre nagyon meg vagyok vele elégedve). Jelenleg ~12 redőnyt vezérlek. A rendszer fejlődését megpróbáltam fotókkal ellátni, ha kész leszek akkor megosztom a fórumon, hogy tanácsokat kapjak illetve aki ugyan ezen az úton jár az lásson egy másik megoldást. Na de vissza a kérdésedre mi lett volna a feladat? Minden helységben van jelenleg egy kis szekrény ahol van betáp, redőnyvezeték illetve vezeték az arduioból. Elkezdtem elmélyedni a shift regiszterek és a 1Wire rendszerekben (természetesen még nagyon csak a felszínét érintem) és nagyon elkezdett érdekelni, ha minden szobába lenne egy nyák mibe befut 2-3 vezeték (jelenleg UTP vezeték van szóval a végső cél, hogy a nyákon legyen egy be illetve ki menet és sorba egymás után kötöm a szobákat, majd programból megcímzett eszközöket tudok kezelni.
Esetleg jó irány, ha ilyet szeretnék, ha veszek egy ilyet:
http://www.hestore.hu/prod_10024695.html
Tényleg próbálok minél gyorsabban beletanulni, hogy ilyen sületlenségeket ne kérdezzek tőletek!
Esetleg jó irány, ha ilyet szeretnék, ha veszek egy ilyet:
http://www.hestore.hu/prod_10024695.html
Tényleg próbálok minél gyorsabban beletanulni, hogy ilyen sületlenségeket ne kérdezzek tőletek!
Szia!
Shiftregiszteres nincs címzés, a kivitt bitsorrend határozza meg a kimenetek állapotát. (szállítószalag).
Alap gond, hogy 1 bit átírásához is ki kell vinni a teljes hossz adatait!
1W: cseles kis kapcsolásokkal lehet csökkenteni a vezérlőjelek számát akár egy érpárra is (hardver), de az nem a Dallas 1W szabvány.
Ha kihelyezett shiftregiszterekről van szó, akkor mindenképp számolj a vezetékkapacitások/hosszok miatti késleltetéssel, esetleg pufferelni kell a jeleket. Jópár, meghajtóval egybeépített regiszternek ezért vannak külön soros, pufferelt kimenete. Érdemes nem csak a HC595-t nézegetni, hanem a családot. (1 betű is sokat számít a típusjelzésben!!!)
Van olyan, amiben a kimenet direkt relékhez van, túlfeszelnyelővel és van olyan, aminél az órajel más élénél veszi a mintát az adatbemenetről, így 1 impulzussal 2 bitet is be lehet vinni.
Shiftreges alkalmazásoknál, ha van rá lehetőség, a legutolsó kimenetet vissza illik vezetni a vezérlőbe, így adatellenőrzést is meg lehet valósítani illetve meg lehet határozni a lánc hosszát (gagyi ledvezérlőknél a dobozon meg kell adni, milyen hosszú a lánc, biztos nem innenvaló ember tervezte...).
Ezt a témát lehet ragozni elég hosszúra, de én inkább valami RS485 szerű megoldásokon agyalnék, ha nagy hosszak/címezhetőség stb. kell.
JAni
Shiftregiszteres nincs címzés, a kivitt bitsorrend határozza meg a kimenetek állapotát. (szállítószalag).
Alap gond, hogy 1 bit átírásához is ki kell vinni a teljes hossz adatait!
1W: cseles kis kapcsolásokkal lehet csökkenteni a vezérlőjelek számát akár egy érpárra is (hardver), de az nem a Dallas 1W szabvány.
Ha kihelyezett shiftregiszterekről van szó, akkor mindenképp számolj a vezetékkapacitások/hosszok miatti késleltetéssel, esetleg pufferelni kell a jeleket. Jópár, meghajtóval egybeépített regiszternek ezért vannak külön soros, pufferelt kimenete. Érdemes nem csak a HC595-t nézegetni, hanem a családot. (1 betű is sokat számít a típusjelzésben!!!)
Van olyan, amiben a kimenet direkt relékhez van, túlfeszelnyelővel és van olyan, aminél az órajel más élénél veszi a mintát az adatbemenetről, így 1 impulzussal 2 bitet is be lehet vinni.
Shiftreges alkalmazásoknál, ha van rá lehetőség, a legutolsó kimenetet vissza illik vezetni a vezérlőbe, így adatellenőrzést is meg lehet valósítani illetve meg lehet határozni a lánc hosszát (gagyi ledvezérlőknél a dobozon meg kell adni, milyen hosszú a lánc, biztos nem innenvaló ember tervezte...).
Ezt a témát lehet ragozni elég hosszúra, de én inkább valami RS485 szerű megoldásokon agyalnék, ha nagy hosszak/címezhetőség stb. kell.
JAni
Ha rendszer építesz és gerinc ott van benne:
A, Minden végpont a központ 1-1 portjára megy amit le kell kezeni. itt HW-es megoldás jöhet szóba:
- RS232/MAX232 : sorosport. Központ ahány végpont, annyi valódi _hardware_ sorosport. ATMega1280/2560, Arduino mega a maga szívásaival.
- 1Wire: csillagban mehet, érzéketlen. Port I/O kapcsoló: DS2408
Ha buszra fűzhető (lineárissá tehető:
- 1Wire: lsd fenn. max 30 m hossz
- RS485 busz. Sorosport jellegű master/slave. ModBus(oda/vissza) illetve DMX(egyirányú) jó hozzá.
Illetve univerzálisan: rádiós kommunikációból valamelyik.
Viszont készül arra, hogy ezek nem az összedugom és megy rendszerek. itt rendszertervezést kellene előtte (utána ? ) csinálni. Sokat seígt a bővítésben. Nézz meg lakás/hátzfelügyeleti komplett rendszereket. Nem, nem megvenni. Ötletelni, mit hogyan oldottak meg .
A, Minden végpont a központ 1-1 portjára megy amit le kell kezeni. itt HW-es megoldás jöhet szóba:
- RS232/MAX232 : sorosport. Központ ahány végpont, annyi valódi _hardware_ sorosport. ATMega1280/2560, Arduino mega a maga szívásaival.
- 1Wire: csillagban mehet, érzéketlen. Port I/O kapcsoló: DS2408
Ha buszra fűzhető (lineárissá tehető:
- 1Wire: lsd fenn. max 30 m hossz
- RS485 busz. Sorosport jellegű master/slave. ModBus(oda/vissza) illetve DMX(egyirányú) jó hozzá.
Illetve univerzálisan: rádiós kommunikációból valamelyik.
Viszont készül arra, hogy ezek nem az összedugom és megy rendszerek. itt rendszertervezést kellene előtte (utána ? ) csinálni. Sokat seígt a bővítésben. Nézz meg lakás/hátzfelügyeleti komplett rendszereket. Nem, nem megvenni. Ötletelni, mit hogyan oldottak meg .
Re: Shift regiszter
Bemenetre, és kimenetre nem ugyanaz a shift reg használható! Van bemenetre pl. http://www.nxp.com/documents/data_sheet/74HC_HCT164.pdf vagy http://pdf1.alldatasheet.com/datasheet- ... 74165.html és társaik.
És egy jobb magyarázat róluk. http://irh.inf.unideb.hu/user/onigai/DT/DT_9.pdf Ha nem kell címzés, és elég egy-egy bemenetre, kimenetre, akkor érdemes lehet használni. Nem drágák, semmi speciális. Megy nekik órajel, és vagy beolvassák sorba a bemeneteket, vagy kiszórják.
Kimenetre a 74HC595 strobe jelére átteszi egy 8 bites tárolóba, OE jellel engedélyezheted a kimeneteket. Ha többet sorbakötsz akkor kell egy strobe, és az OE ha mindegyikre kimentek az adatok, és 8-16-á24 portot kvázi egyidőben tudsz írni. Relés kimeneteidre a sebességük bőven elég, elektronikához már figyelni kell az időzítésekre. Ami gyorsan változik az az átmeneti állapotban is ott van, csak mire műszerrel rámérsz már nem találod. I2C és 1W cuccokat még nem használtam. De most gyúrok arra is.
És egy jobb magyarázat róluk. http://irh.inf.unideb.hu/user/onigai/DT/DT_9.pdf Ha nem kell címzés, és elég egy-egy bemenetre, kimenetre, akkor érdemes lehet használni. Nem drágák, semmi speciális. Megy nekik órajel, és vagy beolvassák sorba a bemeneteket, vagy kiszórják.
Kimenetre a 74HC595 strobe jelére átteszi egy 8 bites tárolóba, OE jellel engedélyezheted a kimeneteket. Ha többet sorbakötsz akkor kell egy strobe, és az OE ha mindegyikre kimentek az adatok, és 8-16-á24 portot kvázi egyidőben tudsz írni. Relés kimeneteidre a sebességük bőven elég, elektronikához már figyelni kell az időzítésekre. Ami gyorsan változik az az átmeneti állapotban is ott van, csak mire műszerrel rámérsz már nem találod. I2C és 1W cuccokat még nem használtam. De most gyúrok arra is.
A hozzászólást 1 alkalommal szerkesztették, utoljára Gyurci 2013. január 6. vasárnap, 11:32-kor.
- szvarhegyi
- Újonc
- Hozzászólások: 14
- Csatlakozott: 2012. szeptember 10. hétfő, 6:00