Dataöverföring via IR mellan 2 picar - Protokoll ?
Nu har jag knåpat lite, dock inte enligt min ursprungliga plan. Jag försöker nu skicka text från picen via dess usart -> IR-diod -> IR-mottagare som är TTL/CMOS kompatibel. Denna är kopplad direkt till en MAX232 krets som är koppla till datorns comport.
Jag skapar 38 khz bärvåg från PIC:ens CCP PWM modul. Denna siganl + usart signal skickar jag in i en AND grind, utgångenfrån AND grinden skickar jag till IR dioden. Funkar detta eller behöver jag nåt som driver på IRdioden, ex en transistor? Problemet är att jag endast får ut skräptecken på hyperterminal. När jag kopplade PIC->MAX232->Dator så funkade det klockrent att skicka textsträngar till datorn.
Så frågan lyder, vad kan det vara att jag bara får skräptecken, i nuläget har jag inte skärmat mottagaren, ska göra det, men jag undrar mest om jag inte behöver nåt speciellt för att driva IR dioden. Jag kör med IR-diod IR333/H0/L10 elfa nr: 75-202-81 och mottagare 75-202-81!
Har ni någon idé?
mvh/Stekarn
Jag skapar 38 khz bärvåg från PIC:ens CCP PWM modul. Denna siganl + usart signal skickar jag in i en AND grind, utgångenfrån AND grinden skickar jag till IR dioden. Funkar detta eller behöver jag nåt som driver på IRdioden, ex en transistor? Problemet är att jag endast får ut skräptecken på hyperterminal. När jag kopplade PIC->MAX232->Dator så funkade det klockrent att skicka textsträngar till datorn.
Så frågan lyder, vad kan det vara att jag bara får skräptecken, i nuläget har jag inte skärmat mottagaren, ska göra det, men jag undrar mest om jag inte behöver nåt speciellt för att driva IR dioden. Jag kör med IR-diod IR333/H0/L10 elfa nr: 75-202-81 och mottagare 75-202-81!
Har ni någon idé?
mvh/Stekarn
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Nä, visst kan man gasa på med en 100 mA eller så med de flesta IR-dioder, men det duger för det mesta att ligga på mellan 5-20 mA så att logiken klarar av att driva.
Säker på att att du tänkt rätt med till och från? USARTen har inverterad utgång på picen och detta vänds av Maxen. Tänk också på att inte ha för hög bauderate då du har minimitid för att pulserna inte skall gröta ihop sig. Kom ihåg tidigare diskutioner i denna tråden. Har du ett scop, så börja felsöka. Kopplingen fungerar i princip, men kan bli fel med inversen eventuellt och även att du kör för snabbt.
Den ursprungliga frågan är inte problemet. visst får du längre räckvidd med mer ström genom ir-dioden, men funktionen får du ändå.
Säker på att att du tänkt rätt med till och från? USARTen har inverterad utgång på picen och detta vänds av Maxen. Tänk också på att inte ha för hög bauderate då du har minimitid för att pulserna inte skall gröta ihop sig. Kom ihåg tidigare diskutioner i denna tråden. Har du ett scop, så börja felsöka. Kopplingen fungerar i princip, men kan bli fel med inversen eventuellt och även att du kör för snabbt.
Den ursprungliga frågan är inte problemet. visst får du längre räckvidd med mer ström genom ir-dioden, men funktionen får du ändå.
Har fått igång IR länken nu, tog bort AND grinden och kopplade en ligt ett schema jag hittade på nätet, PWM utgången till IR-diodens anod, och usart utgången via en resistor och sen till IR-diodens katod.
Förstår inte riktigt till 100 hur det fungerar, men det gör det, om någon har en bra förklaring så får ni gärna lämna den.
Har dock lite frågor ang hastigheten på länken. I 2400 bps går det fint utan skärmad mottagare och ett avstånd mellan på ca 20 cm, på 4800 bps tappar jag nåt tecken då och då. Men meningarna är fortfarande fullt läsbara. På 9800 bps får jag bara skräp i HyperTerminalen oavsett avstånd!
Vad kan man göra för att kunna köra länken över 9800 bps? Går det överhuvudtaget? Är det IR-dioden eller IR-mottagaren som sätter begränsingen?
[EDIT]
Svarar mig själv, Läste igenom tråden igen och kollade databladen och fattar nu att det har ju med IR-mottagarens reagenstid att göra som ni skrev förrut, vet inte avd ja tänkte på förrut, och att den missar om pulserna blir för korta dvs vid ökad baudrate, säger jag rätt nu?
[/EDIT]
Men hur funkar det med IRDA som finns i mobiler, PDA, etc kör väl iaf minst 9800 bps och skickar mycket mera data, men det kanske är mycket mer effektivare hårdvara/protokoll eller?
Ibland ser man att det sitter två IR-dioder i serie på scheman, fjärrar etc, vad ger det för fördelar egentligen?
mvh/Stekarn
Förstår inte riktigt till 100 hur det fungerar, men det gör det, om någon har en bra förklaring så får ni gärna lämna den.
Har dock lite frågor ang hastigheten på länken. I 2400 bps går det fint utan skärmad mottagare och ett avstånd mellan på ca 20 cm, på 4800 bps tappar jag nåt tecken då och då. Men meningarna är fortfarande fullt läsbara. På 9800 bps får jag bara skräp i HyperTerminalen oavsett avstånd!
Vad kan man göra för att kunna köra länken över 9800 bps? Går det överhuvudtaget? Är det IR-dioden eller IR-mottagaren som sätter begränsingen?
[EDIT]
Svarar mig själv, Läste igenom tråden igen och kollade databladen och fattar nu att det har ju med IR-mottagarens reagenstid att göra som ni skrev förrut, vet inte avd ja tänkte på förrut, och att den missar om pulserna blir för korta dvs vid ökad baudrate, säger jag rätt nu?
[/EDIT]
Men hur funkar det med IRDA som finns i mobiler, PDA, etc kör väl iaf minst 9800 bps och skickar mycket mera data, men det kanske är mycket mer effektivare hårdvara/protokoll eller?
Ibland ser man att det sitter två IR-dioder i serie på scheman, fjärrar etc, vad ger det för fördelar egentligen?
mvh/Stekarn
Senast redigerad av stekarn 1 maj 2005, 22:12:45, redigerad totalt 1 gång.
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Jag antar att du använder en avstämd IR-mottagare för 38kHz, typ ELIRM eller liknanade?
Gränssättande för hastigheten med dessa är att de behöver en viss tid för att detektera att det är en 38kHz-signals om avkänns. Saken har varit uppe i en annan tråd, och jag tror att $tiff kollade i databladet och kom fram till att gränsen låg på just 2kbit.
Angående inkoplingen av IR-dioden, så fixar PWM-utgången i uC:n en konstant 38kHz, och UARTen styr när IR-dioden får spänning på katoden.
IRDA använder sig av en helt annan modulationsteknik, och det är därför som IRDA klarar av högre hastigheter.
Angående dubbla LEDs så är det helt enkelt till för att få längre räckvidd, eftersom man då skickar ut dubbelt så mycket IR-ljus.
Gränssättande för hastigheten med dessa är att de behöver en viss tid för att detektera att det är en 38kHz-signals om avkänns. Saken har varit uppe i en annan tråd, och jag tror att $tiff kollade i databladet och kom fram till att gränsen låg på just 2kbit.
Angående inkoplingen av IR-dioden, så fixar PWM-utgången i uC:n en konstant 38kHz, och UARTen styr när IR-dioden får spänning på katoden.
IRDA använder sig av en helt annan modulationsteknik, och det är därför som IRDA klarar av högre hastigheter.
Angående dubbla LEDs så är det helt enkelt till för att få längre räckvidd, eftersom man då skickar ut dubbelt så mycket IR-ljus.
IRDA har en avsevärd högre pulsningshastighet än 38KHz, därav den högre hastighet. Så länge du använder dig av 38KHz-moduler osv kommer du inte högre!
Grejen med 2 IR-LED i fjärris (t.ex.) är att de ofta är vinklade lite i förhållande till varandra, det ger bättre vinkel. Det kan också vara så att det är 2 svagare som totalt sett koster mindre än 1 mer effektiv, allt för att en viss räckvidd krävs.
Det finns även IR-LED med 2 LED i samma kapsel för vinklens skull, jag har ett par stycken liggande i gamla fjärrisar.
Men för att höja kommunikationshastigheten måste du alltså modulera med högre hastighet och då börjar det bli roligt, mottagaren kan vara riktig "skoj" att få till med säker funktion, sen ska du ha de rätta filtre osv.
Men det går att lösa, helt säkert, det är bara inte så himla billigt, enkelt eller snabbt men det kostar mindre än Göran Perssons månadslön!
Grejen med 2 IR-LED i fjärris (t.ex.) är att de ofta är vinklade lite i förhållande till varandra, det ger bättre vinkel. Det kan också vara så att det är 2 svagare som totalt sett koster mindre än 1 mer effektiv, allt för att en viss räckvidd krävs.
Det finns även IR-LED med 2 LED i samma kapsel för vinklens skull, jag har ett par stycken liggande i gamla fjärrisar.
Men för att höja kommunikationshastigheten måste du alltså modulera med högre hastighet och då börjar det bli roligt, mottagaren kan vara riktig "skoj" att få till med säker funktion, sen ska du ha de rätta filtre osv.
Men det går att lösa, helt säkert, det är bara inte så himla billigt, enkelt eller snabbt men det kostar mindre än Göran Perssons månadslön!

- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Det börjar som Icecap skriver på att bli roligt på riktigt om man skall höja farten. Det är fullt möjligt att med skapligt billiga komponenter komma upp i riktigt höga hastigheter över korta avstånd. En lösning är att om du kan skärma av störningar skapligt och högpassfiltrera signalen helt enkelt köra data omodulerat. Men många nackelar med den metoden när det gäller räckvidd och störtålighet.
Den andra vettiga vägen att gå är att höja modulationsfrekvensen. Både ir-led och ir-fotodioder kan man köra riktigt snabbt. Problemet här med fotodioderna är deras låga känlighet vilket gör mottagarsidan lite dyrare med snabba fina op. Det går även att titta på helt andra modulationstyper och då främst fasmodulera en fix (hög) bärvågsfrevens. Men även vanlig AM-modulering av en högre bärvågsfrekvens kan höja din datatakt högst väsentligt. Det som är trist är att man måste bygga Förstärkare, AGC, filter själv vilket gör konstruktionen bökig och knappt lönt jobbet för någon enstaka enhet. Köp då hellre en färdig IrDa-modul som exempelvis: http://www.elfa.se/pdf/75/07520169.pdf
Där har du de flesta knepig byggblocken fixade redan till en låg kostnad. Jag har inte själv använt den modulen, men har tittat på den för att jag tänkte använde den en gång. Men läs databladet och fundera. KOm dock ihåg att IrDa inte ger några överdrivet spännande räckvidder..
Den andra vettiga vägen att gå är att höja modulationsfrekvensen. Både ir-led och ir-fotodioder kan man köra riktigt snabbt. Problemet här med fotodioderna är deras låga känlighet vilket gör mottagarsidan lite dyrare med snabba fina op. Det går även att titta på helt andra modulationstyper och då främst fasmodulera en fix (hög) bärvågsfrevens. Men även vanlig AM-modulering av en högre bärvågsfrekvens kan höja din datatakt högst väsentligt. Det som är trist är att man måste bygga Förstärkare, AGC, filter själv vilket gör konstruktionen bökig och knappt lönt jobbet för någon enstaka enhet. Köp då hellre en färdig IrDa-modul som exempelvis: http://www.elfa.se/pdf/75/07520169.pdf
Där har du de flesta knepig byggblocken fixade redan till en låg kostnad. Jag har inte själv använt den modulen, men har tittat på den för att jag tänkte använde den en gång. Men läs databladet och fundera. KOm dock ihåg att IrDa inte ger några överdrivet spännande räckvidder..
- bengt-re
- EF Sponsor
- Inlägg: 4829
- Blev medlem: 4 april 2005, 16:18:59
- Skype: bengt-re
- Ort: Söder om söder
- Kontakt:
Och det ligger ofta där i verkligheten också. Jag vet när jag köre bärbara datorn med modemet i telefonen med irda så fick jag lägga dem port emot port och täcka över med en mörk plånbok för att få upp farten maximalt.. Vill man ha högta fart så blir avstånden rätt korta. Den biten kan man göra bättre med en egen design då man inte behöver snåla så med effekten till ir-dioden och kan kosta på sig bättre op och bättre filtrering, men då förlorade man smidigheten och litenheten på en gång....
Blir gärna rätt dyrt speciellt mottagaren om man skall använda bra komponenter. Byggde för många år sedan en stereolänk med ir-överföring helt analogt med pulslucks och pulsbredds modulering. Vill minnas att det blev många dyra op och ett rätt stort kort tillslut....
