Sida 1 av 2

AVR jobba som "slav" under PC.

Postat: 6 november 2009, 10:51:22
av Gildebrand
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.

Re: AVR jobba som "slav" under PC.

Postat: 6 november 2009, 11:02:05
av stekern
kolla in vusb:
http://www.obdev.at/products/vusb/index.html

under community projects finns sen massor av exempel

Re: AVR jobba som "slav" under PC.

Postat: 6 november 2009, 11:04:16
av xraid
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.

Postat: 6 november 2009, 11:36:48
av arune
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)

Re: AVR jobba som "slav" under PC.

Postat: 6 november 2009, 22:44:56
av Gildebrand
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!

Re: AVR jobba som "slav" under PC.

Postat: 7 november 2009, 19:18:19
av Micke_s
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.

Postat: 8 november 2009, 12:25:00
av blueint
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?

Re: AVR jobba som "slav" under PC.

Postat: 8 november 2009, 14:11:05
av Gildebrand
Jag får väl börja enkelt då. Blinka en LED och fånga en ingång :D

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.

Postat: 8 november 2009, 16:13:35
av Micke_s
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.

Re: AVR jobba som "slav" under PC.

Postat: 13 november 2009, 09:38:01
av stekern
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.

Re: AVR jobba som "slav" under PC.

Postat: 13 november 2009, 13:39:25
av hatten
+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! :)

Re: AVR jobba som "slav" under PC.

Postat: 13 november 2009, 17:11:37
av Gildebrand
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å?

Re: AVR jobba som "slav" under PC.

Postat: 14 november 2009, 20:20:33
av stekern
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

Re: AVR jobba som "slav" under PC.

Postat: 14 november 2009, 20:31:04
av Gildebrand
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.

Postat: 15 november 2009, 18:18:19
av vfr
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.