Nybörjare behöver hjälp med ATmega328p och AVR Pocket

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Hej,
Jag har börjat hålla på med microcontrollers, hårdvarubyggnad etc och tänkte att jag skulle börja lite enkelt med en AVR Pocket programmerare och en ATmega328P men jag har bara haft problem att få dem att kommunicera ordentligt, den ger bara error

Kod: Markera allt

rc = -1
Nu har jag kanske, jag säger kanske råkat bräna in en lås bit, inte 100% säker :P Men jag hade det här problemet från getgo men detta är en snabb överblick av vad som hänt hittills.

(Jag kör med AVRDUDE)
  1. Fick mitt chip och min programmerare
  2. Installerade programmeraren Win7 x64 med den nya libusb från SourceForge
  3. Satte upp min breadboard
  4. 24 timmar frustration av att det inte funkade
  5. Tog ut min multimeter och kontrollerade varenda anslutning för 1000:e gången men den här gången också anslutningar hela vägen tillbaka från AVR Pocket Programmer och märkte att kabeln hade ett fel på MOSI linan.
  6. Fixa det problemet
  7. 24 timmar för att försöka igen och lyckades få några responses och och fuse reads men det var sporadiskt i bästa fall
  8. Googlade som en dåre och fann att några där lyckats lösa detta med hjälp av en ext. kristall 16MHz hade jag bara en 20 MHz men försökte ändå.
  9. Fick det att funka lite bättre men inte stabilt
  10. Här kanske jag råka copy/pasta ett lock bit kommando * oups!* :P
  11. Nu gillar den inte mig alls längre och ger mig aldrig en signatur response och inte heller svars byten
Jag har några frågor nu;
för det första finns det något sätt att kontrollera om jag brände lock biten? om jag tvingar AVRDUDE att ignorera första svaret och sedan gå in i terminalen kan jag få en respons på

Kod: Markera allt

 skicka 0xac 0x53 0x00 0x00 
men jag får en

Kod: Markera allt

 0xac 0x53 0x00 0x00 
inte en

Kod: Markera allt

 0xXX 0xXX 0x53 0xXX 
som en AVR ska svara, inget annat kommandot verkar få ett repeterbar svar.


För det andra, ser detta rätt ut, jag har läst och kollat guider, datablad och grejer om och om igen men vill ändå gärna att någon säger att det är rätt :P (eller fel)
Bild
Ganska själv förklarande tror jag? Anslutningar är 100% och ingen blödning till andra stift. (5V ut totalt är 190 Ohm inte bara att pin)

Bild
Motståndet är ett 55k Ohm för RESET pull up vad som anges i databladet (30-60k Ohm) samt används av ett fåtal jag sett på nätet när jag letat efter ledtrådar till hur man får det att fungera, det kristall är inte ansluten just nu, försökt både med och utan den. Också försökt med extern pull up på I / O-stift (datablad, säger 20-50k Ohm).

Bild
AVR Pocket Programmer ansluten.

Bild
CHIP PINS REF.

Observera att jag bara just har kommit igång och anslutningarna är jag inte 100% säker på att allt stämmer, så om du ser något som kan vara fel låt mig veta. Har även beställt en ATmega328 (inte picopowered men annars samma chip som jag förstått det ?) så jag om jag kan se till att varje anslutning är korrekt så skulle jag kunna se om det finns ett problem med detta chip eller * Knock on wood * programmeraren och annars så vore det nice att börja göra annat än bara koppla.

All hjälp uppskattas, jag har varit och grävt i AVRDUDE källkoden för att identifiera problemet och problemet ligger i att chipet ger mig som sagt 53 tbax men på fel byte plats, AVR ska göra echo på skickade byte nr 2 som response på byte nummer 3 men som ni ser ovan så gör min fel :(.

Bör också tillläga att jag har försökt med "brute force" genom att en gång varje sekund skicka init kommandot med random -B (1-250) hela natten att försöka få en reponse men ingenting, försökte med både Win7, Ubuntu både 32 och 64bit WinAVR och Ubuntu repor samt som byggt från source code 5,11 samt prövat olika saker i koden.

En annan sak, jag verkar få ut data från chipet så det verkar inte helt dött men vet inte om det är random eller AVR pocket programmer eller faktiskt chipet som svarar? går det att felsöka AVR pocket programmer?
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av snigelen »

Har du någon spänningsmatning till kretsen? Nu har jag inte använt någon "pocket programmerare", men av alla andra jag använt (förutom stk500) så ansluter man Vcc - till programmeraren för att den skall kunna mäta spänningen i målkretsen, inte spänningsmata den. Men på pocket programmer verkar det finnas en switch S1 för att välja om målkretsen skall matas. Har du satt den i rätt läge?
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

AVR Pocket Programmer har en switch för power target eller no power där kretsen leechar, det gör dock ingen skillnad vilket mode jag kör i vad jag kan se dock inte testat att köra på leech speciellt mycket då de flesta guider kör den på power mode.

Edit:



Lagt till en liten LED på min kopplingskrets för att se när den har power m.m. så ser du skillnaden när jag slår på och av "power target" (blinkar = leech, power = konstant)
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Swech »

utan att läsa hela tråden
men... om man har sporadisk kontakt så kan det vara att
man kör för fort mellan programmerare och AVR.
Kör inte över 100kHz till att börja med så kanske det löser sig

Swech
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Hur menar du? Hur styr jag khz för kommunikationen? Är det B switchen?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av jesse »

Du har ju flera VCC och GND på AVR-kretsen. Det sägs att man helst ska koppla ihop dessa för bästa funktion. En kondensator mellan VCC och GND är viktigt att ha , omkring 100 nF passar bra.

Vad är det för motstånd som är 26 ohm?
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Jag har båda VCC och och GND kopplade (både för timer/counter och main) och de är på samma lina, dock inte Ref VCC men har testat att ha den med.

Motstånden sitter i serie med en total på 26 Ohm för att hålla mA under 200 vilket är totala maxvärdet för VCC enligt databladet (som jag läst det iaf), oftast drar ju inte chipet mer men det är för att vara på säkra sidan.

Okej kan lätt slänga in runt 100 nF :)
Senast redigerad av Holoks 17 mars 2012, 16:41:27, redigerad totalt 1 gång.
Användarvisningsbild
Klas-Kenny
Inlägg: 11831
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Klas-Kenny »

Ta bort de där 26 Ohm motstånden, för jag antar att du har dem i serie med Vcc?

Så fort processorn drar någon ström kommer spänningen över motstånden att öka, och där med sjunker spänningen till processorn, ju mer ström den drar ju lägre spänning får den = Fel kommer givetvis att uppstå.
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Ah du har rätt, dumt tänkt av mig, läste bara max mA och räknade :P
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av sodjan »

Angående 28 ohm motstånden i serie med Vcc...

> Ah du har rätt, dumt tänkt av mig,

Inte bara dumt tänkt, det pekar på att det saknas en del helt
fundamentala elektronikgrunder, vilket är betydligt värre. Är du
helt 100 med på varför det var så totalfel att göra så? Om inte
så har du en del hemläxa att göra innan du går vidare alls.
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Sodjan du är fullt medveten om att jag gör detta för att lära mig? Ser inte direkt poängen i att vara dryg? Jag förstod vad Klas-Kenny sa och nej jag kan inte sakerna i sömnen men det är oxå anledningen till att jag bad om hjälp.
Vet att det finns personer som du på alla forum men aldrig förståt nöjet i att ta en ton av att skälpa istället för att hjälpa, Klas-Kennys svar var kort lätt simpelt och lärorikt, ditt svar gav mig mest bara en avsmak, kanske något du ska tänka på.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av sodjan »

Klas-Kennys inlägg beskriver kanske vad som kommer att hända, men det
hanterar egentligen inte grundproblemet, d.v.s att du beräknade ett motstånd
utifrån ett uppgift om maximal strömförbrukning i databladet och antog att man
över huvudtaget behövde montera det i serie med spänningsmatningen. Det jag
ville kolla är att det är helt klart nu hur fel just det var. Är det det så är
ju allt bara bra... :-)

Det är alltså inte i grunden det som Klas-Kenny beskriver som är orsaken till
att motståndet inte ska sitta där. Det var bara det.

> Klas-Kennys svar var kort lätt simpelt och lärorikt...

OK, där har vi lite olika uppfattning. Jag tycker inte att det hanterade
grundproblemet i det hela, utan bara beskrev en (sido-) effekt av det.
Det var därför jag tyckte att det behövdes ett förtydligande.

Det är samma grundproblem som den ganska vanliga frågan där någon har en
apparat som drar t.ex 200mA vid 5V men som har en nätdel som kan leverera upp
till (t.ex) 2A vid 5V och upplever detta som ett problem som måste åtgärdas, t.ex
genom att montera något i serie som "begränsar strömmen". Det är samma "feltänk".

> Motstånden sitter i serie med en total på 26 Ohm för att hålla mA under 200 vilket är
> totala maxvärdet för VCC enligt databladet (som jag läst det iaf), oftast drar ju inte
> chipet mer men det är för att vara på säkra sidan.

Hela det där är alltså helt fel.

Och det viktiga i detta var inte att få bort motståndet i sig utan att det finns en
förståelse för hur det hela fungerar som sådant. :-)
Holoks
Inlägg: 13
Blev medlem: 16 mars 2012, 22:54:06

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av Holoks »

Det där kan jag köpa innehöll delvis ett förtydligande av problemet, din post innan var rent sagt nedlåtande in innehöll inga givande kommentarer och angående förståelse så jo jag insåg att jag tänkt fel och hur efter klas-kennys post, en "paraphrasing" av ditt svar lyder i min mening något mer som
"Är du dum i huvudet, du kan ju inget alls om du gör ett sådant fel"
vilket i min mening iaf inte innehåller något konstruktivt ocn är det första ordet i Topic på ämnet är "Nybörjare" är ett bemötande av den typ onödigt och kontraproduktivt för någon som försöker lära sig, du är säkert jätte bra på detta, jag är inte det än och man behöver inte vara världensbästa pedagog men bara någon kan mindre än dig behöver du inte låta som en "douch".
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av sodjan »

OK, så bra! :-)
Men visst, du har helt rätt i att gratis-support ibland
kan uppfattas som lite "kantig". That's life... :-)
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Nybörjare behöver hjälp med ATmega328p och AVR Pocket

Inlägg av ronnylov »

Jag är förresten också nybörjare och har redan sabbat min ATMega328P, kanske är något skumt med dessa? Vi kanske har fått exemplar från någon dålig batch... Eller så är det bara så att vi nybörjare gör våra nybörjarmisstag helt enkelt och lite svinn får man nog räkna med i början. Du har ju i alla fall en multimeter, det har jag ännu inte tillgång till ännu (den är på väg från Kina, beställt på ebay).

Jag kör med en usbasb AVR-programmerare och avrdude på Arch Linux. En grej var att jag som användare inte har åtkomst till usb-porten som programmeraren sitter på (jag har inte orkat fixa det ännu med udev rules eller användargrupper) så jag är tvungen att köra med sudo före avrdude. Detta kan ju vara en grej att prova när du testar med ubuntu (jag har inte provat med windows).

Följande kommando funkade åtminstone en gång att programmera min ATMega328P:

Kod: Markera allt

sudo avrdude -c usbasp -p m328p -U flash:w:hello.hex
Där hello.hex var filen som skulle "brännas".

Du får väl byta ut usbasp mot benämningen för din programmerare i avrdude och eventuellt lägga till vilken port du använder (jag behövde inte det, antagligen är det underförstått att usbasp kör via usb). Du kan lista programmerare söm stöds av avrdude med:

Kod: Markera allt

avrdude -c ?
Med "terminalen" menar du att du försöker prata manuellt över serieporten till din AVR-programmerare?
Det låter krångligt. Jag tror det är bättre att låta avrdude göra detta.

EDIT: Det är alltså denna programmerare?
http://www.sparkfun.com/products/9231

På den sidan har de glömt mellanrum mellan -p och atmega328 i avrdude kommandot.
Läs också användarkommentarerna på den sidan, där kan man nog få lite tips om hur man får den att fungera.
Någon förslog att man skulle köra via USB-hubb (för att ge tillräckligt med ström).
Någon annan föreslog man skulle köra extern strömmatning till sin AVR (och alltså inte koppla in Vcc från programmeraren till sin AVR).
Skriv svar