Jag har nu fått hem mina prylar från electrokit samt en USBasp AVR-programmerare från ebay (till det fantastiska priset 31 kr inklusive frakt från HongKong).
Jag kör Arch Linux 64-bit på min dator så jag har börjat med att installera de verktyg jag tror kan behövas:
Kod: Markera allt
sudo pacman -S avr-gcc avr-libc avr-binutils avrdude eclipse
Valde lägga in eclipse bara för att kunna följa guiden på chalmers robotförening:
http://crf.nu/wiki/artiklar/eclipse_linux
Lade även in c/C++ och avr-plugin i eclipse allt enligt guiden.
Jag har köpt två AVR-processorer, en ATMega328P-PU och en ATMega1284P-PU. Valde att försöka börja med 328P.
Första intrycket av eclipse är att det verkar en aning "bloatat" och en lie segt i menyerna, men det är väl att förvänta sig när det kör en massa java-kod antar jag. Massor av flikar och menyer som man kan gå vilse i. Jag har programmerat litegrann i C innan för att köra på datorn och då använder jag geany som editor och kompilerar via kommandoraden. Förhoppningsvis är detta möjligt även med avr-gcc och avrdude istället för att gå omvägen via eclipse, men å andra sidan kan det vara lättare att komma igång om man har ett GUI. Jag ska testa alternativen längre fram.
USBasp programmerare fanns med i listan så allt ser bra ut så här långt. Gick väl bra att följa guiden tills det var dags att kompilera. Uppenbarligen hade jag missat ändra till release istället för debug trots att jag tyckte jag hade gjort det redan men jag kanske hade missat knappen "Apply" eller så måste man ändra på flera ställen (tyckte det var möjligt att ställa om på minst 2 olika ställen i GUI). Sedan fick jag varningar om att symboler inte fanns och då visade det sig att jag var tvungen att välja rätt processor också på två olika ställen (eller så hade jag missat apply-knappen). Jaja, så småningom kompilerade det utan problem och det skapades en fil med ändelsen .elf. Borde det inte bli .hex? Jaja, det kanske kvittar...
Nu har jag kommit till steget att koppla in min mikroprocessor på min labbplatta. Verkar som man kan koppla in lysdioder till utgångarna på olika sätt, antingen via ett seriemotstånd från +5V till utgången och då borde det väl lysa om man sätter utgången låg (känns lite bakvänt men kanske detta är att föredra av någon anledning). Eller så kopplar man lysdidoden från utgången till GND via seriemotstånd så lyser den när utgången är hög. Jag har vanliga röda små diffusa 3 mm lysdioder. Känns som att ett seriemotstånd på >150 Ohm skulle passa för att inte överstiga 20 mA. Kanske 330 Ohm eller något sådant? Labbade lite med lysdioderna löst häromdagen och de verkar lysa även med betydligt lägre strömmar än 20 mA. Kanske 470 Ohm då så borde det bli sisådär 6-7 mA genom lysdioden?
Kollade databladet för ATMega328P och den verkar ha två olika ben som är GND. Måste/bör man ansluta båda dessa till GND? Är de sammankopplade internt så om jag ansluter GND till ena benet kan jag utnyttja andra GND-benet som signaljord utan att ansluta till extern jord? Känns instinktivt onödigt att skicka strömmen från andra komponenter igenom mikroprocessorn om man inte måste så jag gissar man lämpligen ansluter båda GND till minus på matningen.
Min AVR-programmerare ser väldigt lik ut den i den här artikeln:
http://chuckontech.com/?p=110
Jag har alltså en flatkabel med en 10-polig kontakt på i ändan. Finns det lämpliga socklar att köpa för denna kontakt så jag kan plugga in den i min breadbord (antagligen vill jag köra mjuka lösa sladdar med hårda stift som är lätta att rycka ner i kopplingsdäcket). Mitt kopplingsdäck är detta:
http://www.electrokit.com/kopplingsdack ... atta.45663
När det gäller anslutning av USBasp-kontakten, hur vet jag från vilket håll man ska titta när det gäller numreringen av anslutningarna i kontakten? Man skulle ju kunna titta in i kabeln, eller så tittar man in i den kontakten man ansluter den till. Antar att det är säkrast att mäta upp den med multimeter (den kommer väl om någon vecka från Kina, har köpt en multimeter från ebay). Känns lite handikappat utan några mätinstrument för tillfället...
Hur gör man med icke anslutna ingångar? Har för mig när jag labbade sist med mikroprocessorer runt 1990 så skulle man köra med 10 kOhm pullup-motstånd från varje ingång till +5V. Men dessa kanske är inbyggda i mikroprocessorn numera? Och ingångarna verkar ju även kunna vara utgångar eller andra saker beroende på hur man konfigurerar dem så jag gissar det är viktigt att initiera dem rätt.
Sedan ska man skicka upp programmet till mikroprocessorn. Det kan man nog göra via eclipse (men vill nog köra manuellt via avrdude på kommandoraden eller med script så småningom). Men tydligen är det viktigt att ställa fuses rätt läste jag. Var hittar man bra guider om detta? Tänkte börja testa utan extern kristall.
Jaja, det löser sig väl. Känns som en liten tröskel det här med inkopplingen samt att skicka över programmet till mikroprocessorn... Hade varit kul att bara få några lysdioder att blinka till att börja med.