Nybörjare med AVR - försöker komma igång
Re: Nybörjare med AVR - försöker komma igång
Jag har en del sådana här:
http://www.tradera.com/1st-usb-2-0-rs23 ... _151266804.
Jag har dock inte en susning om hur det är med Linux-stöd, det blir din hemläxa...
http://www.tradera.com/1st-usb-2-0-rs23 ... _151266804.
Jag har dock inte en susning om hur det är med Linux-stöd, det blir din hemläxa...
Re: Nybörjare med AVR - försöker komma igång
Jag kör med en Pololu programmerare och editerar i Geany. Kompilerar och bränner mha avrdude via kommandofönster. (Fulhemmasnickrad make fil, men det funkar...)
Programmeraren har en inbyggd USART port som fungerar väl i Ubuntu i alla fall och kan försörja "små" projekt med +5V och GND. Dessutom har den en "Severly Limited Ocilloscope" funktion som kan användas om man råkar köra Windows någon gång (det gör iofs sällan jag...) och även om det inte är ett riktigt "skåp" är den ett gott komliment till multimetern, om man som jag inte har ett riktigt oscilloskåp. Jag använder nästan aldrig min AVR DRagon längre, eftersom jag tycker den krånglar för mycket, tappat kontakt mm. Dessutom gillar inte min avrdude draken alls, utan jag har tvingats hacka lite i avrdude koden för att få det att funka över huvud taget...
Programmeraren har en inbyggd USART port som fungerar väl i Ubuntu i alla fall och kan försörja "små" projekt med +5V och GND. Dessutom har den en "Severly Limited Ocilloscope" funktion som kan användas om man råkar köra Windows någon gång (det gör iofs sällan jag...) och även om det inte är ett riktigt "skåp" är den ett gott komliment till multimetern, om man som jag inte har ett riktigt oscilloskåp. Jag använder nästan aldrig min AVR DRagon längre, eftersom jag tycker den krånglar för mycket, tappat kontakt mm. Dessutom gillar inte min avrdude draken alls, utan jag har tvingats hacka lite i avrdude koden för att få det att funka över huvud taget...

Re: Nybörjare med AVR - försöker komma igång
Ja. Men om du enbart ska använda USB så behövs inte MAX232 alls om du använder en FT232 eller liknande USB-UART-krets. (Detta är dock en ytminterad krets).ronnylov skrev:Är det MAX232 man ska koppla mellan UART på AVR och serieporten på datorn? I kombination med en USB-RS232 adapter om datorn inte har serieport?
Vilken som duger egentligen om det är hobbyprojekt. ESD-skyddet är ju alltid bra att ha, men inte nödvändigt. Det har inte så mycket att göra med längden på kablarna utan om hur ofta du brukar pilla med fingrarna i kontakten efter att ha hasat runt på en heltäckningsmatta! Vill du ha något riktigt enegisnålt som går på batterier går det att göra en lösning med transistorer som tar sin drivspänning från datorns RS232-kontakt (man utnyttjar då DSR och liknande ledningar som ger både positiv och negativ spänning ut). Det gäller då att datorn/adaptern har riktiga signaler ut.ronnylov skrev:Sökte lite på MAX232 och hittade en krets som heter MAX3232ECPE till priset av 45 kronor på electrokit. Är det sådana ni brukar använda? Eller duger det med en MAX232CPE för 8,95 kr från swechtrading? Fast den billigare varianten kräver 5V och den dyrare kan köra ner till 3 Volt? Skiljer ju en del i pris mellan dem. Antar att man väljer den dyrare om man kör batteridrift och vill ha det strömsnålt, eller om man har långa kablar och vill ha bra skydd mot överspänningar.
FT232 fungerar direkt i de allra flersta linuxdistar.ronnylov skrev:Något tips på vettig USB till RS232 adapter till min netbook? Den ska funka stabilt i Linux.
Den första beskrivningen visar bäst hur du bör koppla själva RS232-kontakten. I det andra exemplet glömmer de (struntar de i) att ansluta styrsignalerna DTR DCD etc. Kristallen har stor betydelse vid höga baudrates - vid lägre hastigheter (4800 baud) brukar man klara sig inom marginalerna oavsett frekvens på kristallen. Det går att kolla upp i tabeller i databladet vilka kristaller som passar.ronnylov skrev:Är det så här den ska kopplas in?
... Hittade en annan beskrivning
...bör man alltså välja en kristall som ger rätt baud rate på serieporten?
Kondensatorer till MAX232: 1 µF elektrolyter fungerar. Vissa kretsar klarar sig bra med 100 nF, och då bör de nog vara keramiska.
Re: Nybörjare med AVR - försöker komma igång
Jättebra svar jesse!
Min USB-anslutna AVR-programmerare USBasp använder sig av V-USB, alltså mjukvarugenererad USB via GPIO. Man skulle kunna använda en AVR med V-USB till datorn och så får man UART-utgång att ansluta till andra AVR. Någon verkar ha testat det: http://www.recursion.jp/avrcdc/cdc-232.html
FT232 verkar ju som ett smidigt alternativ, men jag känner mig inte så säker på ytmonterad lödning och färdiga adaptrar med FT232 är ju inte jättebilliga.
Känns som att det blir enklast och billigast i längden att köra med MAX232 i mina byggen och så ansluter man dessa till datorn via RS-232 (via en vanlig USB-RS232 adapter).
Min USB-anslutna AVR-programmerare USBasp använder sig av V-USB, alltså mjukvarugenererad USB via GPIO. Man skulle kunna använda en AVR med V-USB till datorn och så får man UART-utgång att ansluta till andra AVR. Någon verkar ha testat det: http://www.recursion.jp/avrcdc/cdc-232.html
FT232 verkar ju som ett smidigt alternativ, men jag känner mig inte så säker på ytmonterad lödning och färdiga adaptrar med FT232 är ju inte jättebilliga.
Känns som att det blir enklast och billigast i längden att köra med MAX232 i mina byggen och så ansluter man dessa till datorn via RS-232 (via en vanlig USB-RS232 adapter).
Re: Nybörjare med AVR - försöker komma igång
Jag rekommenderar att du letar efter en USB-TTL-brygga så du slipper ha MAX232 mellan, det finns en del färdiga sådana som moduler (öppna kort med komponenter) med USB i ena ändan och RX,TX,GND,5V/3V i andra. Dessa kan även strömförsörja mindre projekt och kan nog fås för runt femtiolappen styck.
Då menar jag för användning under utveckling och labb och så, vill du ha RS232 i en slutprodukt så är ju det en halt annan sak
edit:
Vad beträffar klockfrekvenser kontra hastighet på serieporten så kommer man längst om man har en klockfrekvens som är en multipel av 1,8432MHz, då klarar man de flesta standardhastigheter utan avvikelse. Det finns tabeller för hur bra det går att kombinera klockfrekvenser med porthastigheter i databladet för aktuell AVR.
Då menar jag för användning under utveckling och labb och så, vill du ha RS232 i en slutprodukt så är ju det en halt annan sak

edit:
Vad beträffar klockfrekvenser kontra hastighet på serieporten så kommer man längst om man har en klockfrekvens som är en multipel av 1,8432MHz, då klarar man de flesta standardhastigheter utan avvikelse. Det finns tabeller för hur bra det går att kombinera klockfrekvenser med porthastigheter i databladet för aktuell AVR.
Re: Nybörjare med AVR - försöker komma igång
Ja du har också en poäng Johanb. När man labbar så kan det vara smidigt att slippa MAX232-kretsen.
Menar du typ en sådan här?
http://viewitem.eim.ebay.se/USB-20-to-T ... 14146/item
28 kr inklusive frakt om man orkar vänta 3 veckor (eventuell moms och tull tillkommer).
Edit: Hittade till och med ännu billigare variant:
http://viewitem.eim.ebay.se/new-PL2303- ... 63896/item
20 spänn...
Hittade också en hyfsat billig USB-RS232 adapter:
http://viewitem.eim.ebay.se/USB-20-TO-R ... 55185/item
35 kr inklusive VAT och frakt, ingen moms tillkommer...
Menar du typ en sådan här?
http://viewitem.eim.ebay.se/USB-20-to-T ... 14146/item
28 kr inklusive frakt om man orkar vänta 3 veckor (eventuell moms och tull tillkommer).
Edit: Hittade till och med ännu billigare variant:
http://viewitem.eim.ebay.se/new-PL2303- ... 63896/item
20 spänn...
Hittade också en hyfsat billig USB-RS232 adapter:
http://viewitem.eim.ebay.se/USB-20-TO-R ... 55185/item
35 kr inklusive VAT och frakt, ingen moms tillkommer...
Re: Nybörjare med AVR - försöker komma igång
Precis en sån menar jag, de två första alltså.
Om du har bråttom så kan du ju kolla med topnotch här på forumet, han har gjort ett kort som han säljer till sitt senaste multikopterstyrkort och det kanske finns något över. Det är ju lite dyrare men använder då FTDI-krets.
Om du har bråttom så kan du ju kolla med topnotch här på forumet, han har gjort ett kort som han säljer till sitt senaste multikopterstyrkort och det kanske finns något över. Det är ju lite dyrare men använder då FTDI-krets.
Re: Nybörjare med AVR - försöker komma igång
Nu är jag deppig...
Det går inte längre att programmera min ATMega med min usbasp. Enda jag gjort är att testköra "hello world" - programmet från Chalmers robotförening.
Då funkade det ju utmärkt att lägga in program med avrdude.
Men idag när jag skulle programmera om den med avrdude får jag bara:
Device signaturen stämmer ju inte längre. Har sökt på nätet och en del rekommenderar att man ska sänka farten på usbasp genom bygel J3 men någon sådan bygel finns inte på min programmerare.
Så ska man behöva köpa sig en AVR Dragon ändå? Helt värdelöst när det inte funkar...
Det går inte längre att programmera min ATMega med min usbasp. Enda jag gjort är att testköra "hello world" - programmet från Chalmers robotförening.
Då funkade det ju utmärkt att lägga in program med avrdude.
Men idag när jag skulle programmera om den med avrdude får jag bara:
Kod: Markera allt
[ronny@r1arch src]$ sudo avrdude -c usbasp -p m328p -U flash:w:main.hex
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x000102
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
Double check chip, or use -F to override this check.
avrdude done. Thank you.
[ronny@r1arch src]$
Så ska man behöva köpa sig en AVR Dragon ändå? Helt värdelöst när det inte funkar...
Re: Nybörjare med AVR - försöker komma igång
Du har inte anslutit något annat till de pinnarna som går till programmeraren?
Du har inte programmerat om några fuses? (troligtvis inte den här gången, men annars är det en vanlig orsak).
Att programmeraren plötsligt inte "passar" och att en annan skulle fungera bättre är lite osannolikt. Det har ju fungerat, så något har ju hänt. I värsta fall kan det vara en ESD-skada på processorn pga för mycket pillande på anslutningarna.
>avrdude: warning: cannot set sck period. please check for usbasp firmware update.
Låter ju inte bra. Kan du minnas om du fått den varningen tidigare?
Du har inte programmerat om några fuses? (troligtvis inte den här gången, men annars är det en vanlig orsak).
Att programmeraren plötsligt inte "passar" och att en annan skulle fungera bättre är lite osannolikt. Det har ju fungerat, så något har ju hänt. I värsta fall kan det vara en ESD-skada på processorn pga för mycket pillande på anslutningarna.
>avrdude: warning: cannot set sck period. please check for usbasp firmware update.
Låter ju inte bra. Kan du minnas om du fått den varningen tidigare?
Re: Nybörjare med AVR - försöker komma igång
Den varningen har jag haft hela tiden. Det är något med att USBasp inte har den funktionen om jag minns rätt och istället ska det finnas en jumper JP3 för att sänka klockan om den AVR man vill programmera kör långsammare än 1,5 MHz. Nu finns inte denna jumper i min kina-usbasp men jag kanske kan klura ut var den borde sitta någonstans och löda in den själv. Sökt lite och en del får den varningen om de har får lång anslutningssladd till programmeraren och att det kan hjälpa att sänka farten med JP3.
Jag ska testa koppla in lysdioderna som jag hade innan och se om det gamla programmet fortfarande. Det borde ju ligga kvar eftersom jag inte kunde programmera om den.
Annars skulle jag kunna testa min ATMega1284P som jag ännu inte börjat använda och se om det går att programmera denna.
Jag ska testa koppla in lysdioderna som jag hade innan och se om det gamla programmet fortfarande. Det borde ju ligga kvar eftersom jag inte kunde programmera om den.
Annars skulle jag kunna testa min ATMega1284P som jag ännu inte börjat använda och se om det går att programmera denna.
Re: Nybörjare med AVR - försöker komma igång
Har du koll på hur du ska hantera processorn med tanke på ESD?
Man måste ju inte ha armband och sånt jox, men man måste definitivt se till att man inte är statiskt uppladdad eller att processorn inte kommer i kontakt med föremål som kan bära laddning, t.ex. plastpåsar, frigolit mm.
Man måste ju inte ha armband och sånt jox, men man måste definitivt se till att man inte är statiskt uppladdad eller att processorn inte kommer i kontakt med föremål som kan bära laddning, t.ex. plastpåsar, frigolit mm.
Re: Nybörjare med AVR - försöker komma igång
Jodå jag har ganska bra koll på ESD men det utesluter ändå inte att detta kan ha orsakat problem eftersom jag slarvat lite. AVR-programmeraren med naket kretskort skickades till mig utan ESD-påse (den levererades i vanlig plastpåse). Dessutom glömde jag ESD-bandet sista gången jag kopplade om min AVR.
Re: Nybörjare med AVR - försöker komma igång
En himla otur om det skulle vara det. Men jag har faktiskt lyckats förstöra ingångar på två olika AVR:er och det enda jag kan tänka mig vara orsaken de gångerna är ESD.
>Annars skulle jag kunna testa min ATMega1284P
Ja, funkar det så är det i alla fall inte programmeraren som pajat. Dåligt att de packat i vanlig påse.
>Annars skulle jag kunna testa min ATMega1284P
Ja, funkar det så är det i alla fall inte programmeraren som pajat. Dåligt att de packat i vanlig påse.

Re: Nybörjare med AVR - försöker komma igång
Nu har jag testat koppla in min gamla uppkoppling på ATMega328P där jag blinkade lysdioder och lysdioderna blinkar som de ska. Då bör man väl kunna dra slutsatsen att ATMega328P åtminstone fungerar delvis.
En fundering: Det gamla programmet som körs blinkar lysdioder på PB2 och PB3. Programmeraren är ju också ansluten till PB3 (MOSI). Kan detta orsaka någon konflikt?
Jag kopplade sedan in programmeraren igen men lät lysdioderna sitta kvar (de är kopplade i serie med ett motstånd från utgångarna till +Vcc).
När avrdude försöker kontakta min AVR så slutar de blinka för ett ögonblick men fortsätter sedan när avrdude inte hittar rätt signatur.
Tycker jag ar både dubbel- och trippelkollat och kan inte se att jag kopplat in något fel.
Nästa steg är att testa min ATMega1284P.
Edit: Ja det fungerade att programmera min ATMega1284P utan problem. Testade ändra tidsfördröjningen i programmet och "sudo make" så programmeras den om med ändrat program. Testade ändra flera gånger och det gick bra.
Jag följde denna kurs: http://hackaday.com/2010/10/23/avr-prog ... roduction/
Men ersatte AVR-modellen med atmega1284p i makefilen samt i avrdude-kommandot.
Då är det alltså min ATMega328p som har gått sönder? Jag menar programmeraren funkar ju och 1294P funkar. I och för sig funkar även 328P men den kan inte programmeras om...
En grej med min ATMega328p (den som krånglar) är att programmet som körs har denna rad:
Kan detta påverka omprogrammering (tänkte om den går i fel hastighet eller något)?
Ser också att min usbasp verkar vara inställd på 3,3 V byglingen (via ytmonterat motstånd som man kan löda om för att välja 5 Volt). Man kanske skulle testa ställa om den till 5 Volt istället? Jag strömmatar ju min AVR via min usbasp när jag programmerar om den.
En fundering: Det gamla programmet som körs blinkar lysdioder på PB2 och PB3. Programmeraren är ju också ansluten till PB3 (MOSI). Kan detta orsaka någon konflikt?
Jag kopplade sedan in programmeraren igen men lät lysdioderna sitta kvar (de är kopplade i serie med ett motstånd från utgångarna till +Vcc).
När avrdude försöker kontakta min AVR så slutar de blinka för ett ögonblick men fortsätter sedan när avrdude inte hittar rätt signatur.
Tycker jag ar både dubbel- och trippelkollat och kan inte se att jag kopplat in något fel.
Nästa steg är att testa min ATMega1284P.
Edit: Ja det fungerade att programmera min ATMega1284P utan problem. Testade ändra tidsfördröjningen i programmet och "sudo make" så programmeras den om med ändrat program. Testade ändra flera gånger och det gick bra.
Jag följde denna kurs: http://hackaday.com/2010/10/23/avr-prog ... roduction/
Men ersatte AVR-modellen med atmega1284p i makefilen samt i avrdude-kommandot.
Då är det alltså min ATMega328p som har gått sönder? Jag menar programmeraren funkar ju och 1294P funkar. I och för sig funkar även 328P men den kan inte programmeras om...
En grej med min ATMega328p (den som krånglar) är att programmet som körs har denna rad:
Kod: Markera allt
clock_prescale_set(0);
Ser också att min usbasp verkar vara inställd på 3,3 V byglingen (via ytmonterat motstånd som man kan löda om för att välja 5 Volt). Man kanske skulle testa ställa om den till 5 Volt istället? Jag strömmatar ju min AVR via min usbasp när jag programmerar om den.
Re: Nybörjare med AVR - försöker komma igång
OK, så programmeraren fungerar.
Jag misstänker lysdioden på MOSI-pinnen. Man kan ha saker kopplade dit, men det rekommenderas inte. Särskilt inte så låga resistanser det är frågan om här. Går den att programmera om du tar bort motståndet eller lysdioden?
clock_prescale_set påverkar inte klockan vid programmering.
Jag misstänker lysdioden på MOSI-pinnen. Man kan ha saker kopplade dit, men det rekommenderas inte. Särskilt inte så låga resistanser det är frågan om här. Går den att programmera om du tar bort motståndet eller lysdioden?
clock_prescale_set påverkar inte klockan vid programmering.