AVR jobba som "slav" under PC.
- Gildebrand
- Inlägg: 1108
- Blev medlem: 8 maj 2009, 21:40:49
- Ort: Falun
AVR jobba som "slav" under PC.
Hejsan!
Till mitt styrsystemsprojekt med bla förstärkare och dvd-spelare som ska styras med RC5koder, så skulle jag behöva en enhet som kan jobba som in och utgång under datorn.
Jag tänkte något i stil med en AVR, kopplad till en PC via USB. Något typ av program på AVRen så att den kan utföra kommandon från PCn. Jag vill i datorn kunna läsa av om en ingång är hög eller låg. Sätta en utgång hög eller låg. Och komma åt den inbyggda PWM-Generatorn för att driva en IR-led som skickar RC5 koder.
Finns det något färdigt för att göra detta som går att implementera enkelt i datorn? Jag tänker typ ett .Net program (C#), som anropar de olika funktionerna i AVRen.
Till mitt styrsystemsprojekt med bla förstärkare och dvd-spelare som ska styras med RC5koder, så skulle jag behöva en enhet som kan jobba som in och utgång under datorn.
Jag tänkte något i stil med en AVR, kopplad till en PC via USB. Något typ av program på AVRen så att den kan utföra kommandon från PCn. Jag vill i datorn kunna läsa av om en ingång är hög eller låg. Sätta en utgång hög eller låg. Och komma åt den inbyggda PWM-Generatorn för att driva en IR-led som skickar RC5 koder.
Finns det något färdigt för att göra detta som går att implementera enkelt i datorn? Jag tänker typ ett .Net program (C#), som anropar de olika funktionerna i AVRen.
Re: AVR jobba som "slav" under PC.
kolla in vusb:
http://www.obdev.at/products/vusb/index.html
under community projects finns sen massor av exempel
http://www.obdev.at/products/vusb/index.html
under community projects finns sen massor av exempel
Re: AVR jobba som "slav" under PC.
http://processing.org rekomenderas, via deras serial lib kommer du åt AVR'en samt att du har en del färdiga UI komponeter att bygga med.
Re: AVR jobba som "slav" under PC.
I vårt projekt har vi hyfsat färdig elektronik för att styra saker med IR, vill du så bygger jag ihop ett kit för 600SEK och då får du med två IR-sändarmoduler (alltså kabel med IR-diod, lätt att bygga fler och koppla in).
På embedded-mjukvarusidan så har vi färdig kod för RC5 och några andra protokoll.
Det blir i så fall följande topologi:
PC - AVR (CANGateway) - CANbuss - AVR (IRenhet) - IRsändarmodul (IRdiod med kabel)
(Dyk gärna upp i vår IRC-chat så kan vi förklara mer vad du får och vad du behöver göra själv)
På embedded-mjukvarusidan så har vi färdig kod för RC5 och några andra protokoll.
Det blir i så fall följande topologi:
PC - AVR (CANGateway) - CANbuss - AVR (IRenhet) - IRsändarmodul (IRdiod med kabel)
(Dyk gärna upp i vår IRC-chat så kan vi förklara mer vad du får och vad du behöver göra själv)
- Gildebrand
- Inlägg: 1108
- Blev medlem: 8 maj 2009, 21:40:49
- Ort: Falun
Re: AVR jobba som "slav" under PC.
Tack för all information. Kollar just nu på V-USB, fanns mycket roligt till den. Glömde en sak på min lista, och det var I2C. Hur jobbar man mot en AVR som har flashats med V-USB?
Tänkte skriva ihop C# program som kan kommunicera med AVRen!
Tänkte skriva ihop C# program som kan kommunicera med AVRen!
Re: AVR jobba som "slav" under PC.
V-usb är bara kod som du kompilerar ihop med din egen kod. du kan göra vad du vill i princip. Man bör däremot vara försiktiga med andra interrupt eftersom det kan störa usb koden.
Re: AVR jobba som "slav" under PC.
Blir USB host'en galen om en enhet försvinner sådär 10-100 ms regelbundet för att sända IR koder i någon bitbang del?
- Gildebrand
- Inlägg: 1108
- Blev medlem: 8 maj 2009, 21:40:49
- Ort: Falun
Re: AVR jobba som "slav" under PC.
Jag får väl börja enkelt då. Blinka en LED och fånga en ingång 
Vart kan jag läsa om hur jag "interfacar" (kan man säga så?) mot AVRen med V-USB

Vart kan jag läsa om hur jag "interfacar" (kan man säga så?) mot AVRen med V-USB
Re: AVR jobba som "slav" under PC.
blueint: Tror det beror på pc programmet, har för mig att du sätter en timeout där hur snabbt enheten ska ack:a.
edit: i usbdrv.h står det t.ex.
Interrupt latency:
The application must ensure that the USB interrupt is not disabled for more
than 25 cycles (this is for 12 MHz, faster clocks allow longer latency).
This implies that all interrupt routines must either be declared as "INTERRUPT"
instead of "SIGNAL" (see "avr/signal.h") or that they are written in assembler
with "sei" as the first instruction.
och för usbpoll()
This function must be called at regular intervals from the main loop.
Maximum delay between calls is somewhat less than 50ms (USB timeout for
accepting a Setup message). Otherwise the device will not be recognized.
Edit2: Vill du generera RC5 så kan du alltid använda timer2 och interrupt, ändrar du bara i/o pinnar så kan du skippa att spara status osv, och klara dig under 25cycler.
edit: i usbdrv.h står det t.ex.
Interrupt latency:
The application must ensure that the USB interrupt is not disabled for more
than 25 cycles (this is for 12 MHz, faster clocks allow longer latency).
This implies that all interrupt routines must either be declared as "INTERRUPT"
instead of "SIGNAL" (see "avr/signal.h") or that they are written in assembler
with "sei" as the first instruction.
och för usbpoll()
This function must be called at regular intervals from the main loop.
Maximum delay between calls is somewhat less than 50ms (USB timeout for
accepting a Setup message). Otherwise the device will not be recognized.
Edit2: Vill du generera RC5 så kan du alltid använda timer2 och interrupt, ändrar du bara i/o pinnar så kan du skippa att spara status osv, och klara dig under 25cycler.
Re: AVR jobba som "slav" under PC.
Ett annat alternativ är att använda ett serial->usb chip t.ex. http://www.ftdichip.com/FTProducts.htm#FT232R
Blir väldigt enkelt på PC sidan bara öppna serieporten och skicka och ta emot.
Blir väldigt enkelt på PC sidan bara öppna serieporten och skicka och ta emot.
Re: AVR jobba som "slav" under PC.
+1 på stekerns inlägg, FTDIs kretsar är väldigt enkla och smidiga.
Om du redan har ett befintligt kort med UART-linor (RX/TX) utdragna så finns det dessutom färdiga kablar typ Elfa 73-206-73 där chipet sitter ingjutet i USB-kontakten. Bra att ha i labbet!
Om du redan har ett befintligt kort med UART-linor (RX/TX) utdragna så finns det dessutom färdiga kablar typ Elfa 73-206-73 där chipet sitter ingjutet i USB-kontakten. Bra att ha i labbet!

- Gildebrand
- Inlägg: 1108
- Blev medlem: 8 maj 2009, 21:40:49
- Ort: Falun
Re: AVR jobba som "slav" under PC.
Tror faktiskt inte jag kommer behöva något FTDI chip om jag skulle köra med den metoden. Det är nämligen så att Arm-datorn som jag ska använda har UART utgångar (TTL).
Är dock helkrasslig vad gäller kodning av AVR men nån har väl styrt en AVR tidigare med UART? Kanske finns kod att glutta på?
Är dock helkrasslig vad gäller kodning av AVR men nån har väl styrt en AVR tidigare med UART? Kanske finns kod att glutta på?
Re: AVR jobba som "slav" under PC.
Nu är jag inte riktigt med, var det inte en PC som du skulle styra med?
Hursomhelst, ska du styra via uart så är det bara att hitta på kommandon och sen parsa dem i AVRen.
Du kan ju kika på min usb-temp och luftfuktighets-logger som körs över uarten.
http://www.sk-electronics.com/svn/repos ... /Firmware/
uart koden finns i uart.c och kommandoparsandet finns i main.c
Hursomhelst, ska du styra via uart så är det bara att hitta på kommandon och sen parsa dem i AVRen.
Du kan ju kika på min usb-temp och luftfuktighets-logger som körs över uarten.
http://www.sk-electronics.com/svn/repos ... /Firmware/
uart koden finns i uart.c och kommandoparsandet finns i main.c
- Gildebrand
- Inlägg: 1108
- Blev medlem: 8 maj 2009, 21:40:49
- Ort: Falun
Re: AVR jobba som "slav" under PC.
Jo det är väl en slags PC. En liten ARM-dator. Samsung S3C2440 heter den. Den har en RS232 utgång samt 3 UART via header.
Re: AVR jobba som "slav" under PC.
Förvirra inte! Skriver man PC så menas idag en dator baserad på 8086-arkitekturen.
Rent definitionsmässigt (PC=Personal Computer) kanske det är riktigt att kalla även andra datorer för det, men det är inte det som menas i dagligt tal.
Rent definitionsmässigt (PC=Personal Computer) kanske det är riktigt att kalla även andra datorer för det, men det är inte det som menas i dagligt tal.