VanHeden Old VanHeden

Datablad

Robot-plattformar Digitala/analoga komponenter AVR/Raspberry Kommunikation Kringutrustning Displayer Sensorer Knappar & LEDs Gott & Blandat Alla PDF:er

Övrig information

Handledningar Karta över ISY Tips o Trix Kuriosa FAQ

AVR and Raspberry

AVR/ATmega

8-bitars-processorer från Microchip (tidigare Atmel)

AVR-relativ information / utrustning

Observera: ATmegorna har interna klockgeneratorer, så att de kan köra utan extern klocka. Den interna är dock inte så stabila, och kan variera stort i frekvens. Vid t.ex. UART-kommunikation, så är detta ett problem. Se därför till att koppla in en EXO3:a (se Kringutrustning), och sätta lämpliga säkringar.

Anslut reset på AVR-processorn

Dom AVR-processorer vi använder har en extern reset-ingång. Det är viktigt att inte lämna denna reset-ingång oansluten, utan koppla in den till något som ger en väldefinierad reset-signal, t ex en tryckknapp som ger hög eller låg signal. Reset-ingången på processorn är nämligen inblandad under själva programmeringen av processorn. Om reset-ingången är oansluten kan vissa delar av processorn felaktigt programmeras med något som sedan inte går att återställa. Alltså, anslut alltid reset-ingången.

C-programmering för AVR

C-kompilatorn för AVR är inbyggd i Atmel Studio. C-kompilatorn baseras på GCC, men någon egentlig officiell dokumentation över C för just AVR finns inte. Däremot finns ganska mycket information på internet om t ex AVR Libc, exempelprojekt med C-programmering och diverse tutorials med just C för AVR. Se länkar nedan.

Assemblerprogrammering för AVR

Några nyttiga länkar för den som programmerar i assembler.

Den som vill skriva effektiv C-kod kan också ha nytta av att veta vilka instruktioner kompilatorn har till sitt förfogande. T.ex. PORTB |= (1<<PINB3); blir till sbi PORTB, PINB3 som går på en klockcykel, medan PORTB |= (1<<x); kommer generera en loop för att räkna ut 1<<x.

Raspberry Pi

3.3V vs 5V logik

Raspberry Pi använder 3.3V logik på GPIO-porten. AVR:erna använder 5V TTL-nivå. Kopplar man ihop dessa utan nivåskiftare är det stor risk att något går sönder. På sidan Kommunikation finns info om hur Raspberry Pi och AVR:er kan kommunicera.


W3.CSS

Saturday