SFH5110-36 + Attiny13
-
Hooligan01
SFH5110-36 + Attiny13
Hello!
Akadt egy kis problémám infra távirányitó készités közben.
Az adó egy attiny13 lenne, de timer1 hiányában nem lehet a bascom-al rc5-re rábirni. Ezért gondoltam megoldom soros-infra átvitellel.
Ez valojában müködne is szépen, de a vevő SFH5110 középfrekije 36Khz.
Egy pnp és egy npn tranyó közé beraktam az infra ledet, a p-s tranzisztort a szoftveres sorosrol hajtom,(minden baudrate-al kiprobáltam) az n-es tranyót meg egy timer0 megszakitásbol 36Khz-el. Nem jutott eszembe jobb megoldás. De nem müködik sajnos. Az SFH5110 kimenetén mérek ugyan adáskor valamit frekimérővel, de szkópom nincsen, ugyhogy kb. vak vagyok.
Megköszönném ha segitene valaki hogy vajon mit rontottam el, de egyéb müködö koncepció is érdekelne a témában!
Thx!
Akadt egy kis problémám infra távirányitó készités közben.
Az adó egy attiny13 lenne, de timer1 hiányában nem lehet a bascom-al rc5-re rábirni. Ezért gondoltam megoldom soros-infra átvitellel.
Ez valojában müködne is szépen, de a vevő SFH5110 középfrekije 36Khz.
Egy pnp és egy npn tranyó közé beraktam az infra ledet, a p-s tranzisztort a szoftveres sorosrol hajtom,(minden baudrate-al kiprobáltam) az n-es tranyót meg egy timer0 megszakitásbol 36Khz-el. Nem jutott eszembe jobb megoldás. De nem müködik sajnos. Az SFH5110 kimenetén mérek ugyan adáskor valamit frekimérővel, de szkópom nincsen, ugyhogy kb. vak vagyok.
Megköszönném ha segitene valaki hogy vajon mit rontottam el, de egyéb müködö koncepció is érdekelne a témában!
Thx!
SendRC5 programocskát te is tudsz írni.
A Timert amire használnám az a 36kHz előállítása. az RC5 kód esetén ismert a jel magas/alacsony ideje, és a kódsorozat is.
Ha 1-es akkor 50msec adás, 50 szünet, 0 esetén fordítva.
dim adas as word
dim i as byte
adas=&B0011010111010010 'adando adat 14 bit
Config timer0=......'36kHz legyen a kimeneti laban....
enable timer0
enable interrupts
For i = 1 to 14 (bithossz)
if adas.1=1 then
start timer0
waitms 50
stop timer0
waitms 50
end if
if adas.14=0 then
waitms 50
start timer0
waitms 50
stop timer0
end if
shift adas, 1, left 'bitcsoport balra tol
next i
A hibakat a progiban lesd at 3 perc alatt szuletett:).
Adovevo kell vagy csak 1 ado es 1 vevo (egy vagy ketiranyiu adatatvitel)?
Kétirányúra az IrDA a jó, de ott kell egy IrDA modul (pl. TFDU4100 egy soros-IrDA szabvanyu atalakito (pl. MC21xx sorozat - 9600...115k2 bps), es a kontroller. A TFDu ~1000Ft, a MC21xx az kb. 400 korul...)
vagy ha odavissza akkor az ado es a vevo eseten amelyik ad ott le kell tiltani a SFH IC-t (pl. a tapot az IC egyik portlaban adsz neki, vagy nem adsz neki.... Vagy a vevolabat beallitod kimenetre, es 100 ohmon at megy a SFH kimeneti labara (Ez Open kollektoros, igy ha a chipnel a belso felhuzoellenallast hasznalod, akkor azt lekapcsolod, es onnantol nem is vesz a vevő:)..
Na jó zavaros, talán követhető....
A Timert amire használnám az a 36kHz előállítása. az RC5 kód esetén ismert a jel magas/alacsony ideje, és a kódsorozat is.
Ha 1-es akkor 50msec adás, 50 szünet, 0 esetén fordítva.
dim adas as word
dim i as byte
adas=&B0011010111010010 'adando adat 14 bit
Config timer0=......'36kHz legyen a kimeneti laban....
enable timer0
enable interrupts
For i = 1 to 14 (bithossz)
if adas.1=1 then
start timer0
waitms 50
stop timer0
waitms 50
end if
if adas.14=0 then
waitms 50
start timer0
waitms 50
stop timer0
end if
shift adas, 1, left 'bitcsoport balra tol
next i
A hibakat a progiban lesd at 3 perc alatt szuletett:).
Adovevo kell vagy csak 1 ado es 1 vevo (egy vagy ketiranyiu adatatvitel)?
Kétirányúra az IrDA a jó, de ott kell egy IrDA modul (pl. TFDU4100 egy soros-IrDA szabvanyu atalakito (pl. MC21xx sorozat - 9600...115k2 bps), es a kontroller. A TFDu ~1000Ft, a MC21xx az kb. 400 korul...)
vagy ha odavissza akkor az ado es a vevo eseten amelyik ad ott le kell tiltani a SFH IC-t (pl. a tapot az IC egyik portlaban adsz neki, vagy nem adsz neki.... Vagy a vevolabat beallitod kimenetre, es 100 ohmon at megy a SFH kimeneti labara (Ez Open kollektoros, igy ha a chipnel a belso felhuzoellenallast hasznalod, akkor azt lekapcsolod, es onnantol nem is vesz a vevő:)..
Na jó zavaros, talán követhető....
Hű...ez nagyon yoRobert írta:SendRC5 programocskát te is tudsz írni.
...
Na jó zavaros, talán követhető....
...és vevő oldalra hogyan nézne ki egy ilyen progi?
(agyelszállás ON: de akkor már nem is kellene rc5-nek lennie, csak ne tévesszen
Tiny13-ba beleférne egy kb. négy-nyolc csatornás adó progija? Vevő oldalra meg 2313 mehetne: kimenteken kapcsolgathatna ezt-azt és egyéb nyalánkságok...).
Vevőoldalon a GetRC5 parancs:).
4-8 csatornás. Minek? Az RC5 kód 64 parancsot és 16 eszközt támogat alapban (ez 8+4bit=12bit). Ez pedig ha gonosz vagy 4096 darab parancs:). nem elég?
Hát lehet játszani több csatornával is, csak nagyon el kell választani a vivőfrekvenciákat (a 36kHz a leggyakoribb...).
56kHz lehet a másik, ezt egyes HiFi holmik használják...
4-8 csatornás. Minek? Az RC5 kód 64 parancsot és 16 eszközt támogat alapban (ez 8+4bit=12bit). Ez pedig ha gonosz vagy 4096 darab parancs:). nem elég?
Hát lehet játszani több csatornával is, csak nagyon el kell választani a vivőfrekvenciákat (a 36kHz a leggyakoribb...).
56kHz lehet a másik, ezt egyes HiFi holmik használják...
afrancba...Robert írta:Vevőoldalon a GetRC5 parancs:).
Ahhh... akkor gyorsan kell építenem egy idő- és pénzkibővítő szerkezetet... nagyon meleg cucc... megvan a következő projektemRobert írta: 4-8 csatornás. Minek? Az RC5 kód 64 parancsot és 16 eszközt támogat alapban (ez 8+4bit=12bit). Ez pedig ha gonosz vagy 4096 darab parancs:). nem elég?![]()
-
Hooligan01