Nybörjare med AVR - försöker komma igång

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Nybörjare med AVR - försöker komma igång

Inlägg av sodjan »

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...
littos
Inlägg: 81
Blev medlem: 22 september 2004, 22:15:28
Ort: Göteborg

Re: Nybörjare med AVR - försöker komma igång

Inlägg av littos »

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... :-(
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av jesse »

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?
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: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.
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:Något tips på vettig USB till RS232 adapter till min netbook? Den ska funka stabilt i Linux.
FT232 fungerar direkt i de allra flersta linuxdistar.
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?
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.

Kondensatorer till MAX232: 1 µF elektrolyter fungerar. Vissa kretsar klarar sig bra med 100 nF, och då bör de nog vara keramiska.
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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).
Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: Nybörjare med AVR - försöker komma igång

Inlägg av Johanb »

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.
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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...
Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: Nybörjare med AVR - försöker komma igång

Inlägg av Johanb »

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.
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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:

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]$ 
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...
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av jesse »

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?
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av jesse »

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.
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av jesse »

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. :tumner:
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av ronnylov »

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:

Kod: Markera allt

clock_prescale_set(0);
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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare med AVR - försöker komma igång

Inlägg av jesse »

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.
Skriv svar