Sida 1 av 3
Någon som jobbat med ATTiny och V-USB?
Postat: 5 februari 2010, 17:38:30
av PHermansson
Nu har jag äntligen fått hem en fungerande AVR-programmerare (AVRISP mkII) och kan fortsätta med mitt projekt. Målet är att skapa en usb-ansluten ljusmätare, och jag har börjat testa en del av användarexemplen på
http://www.obdev.at/products/vusb/index.html. Det finns ju en del olika bud på hur hårdvaran ska se ut och jag tror jag testat de flesta nu i kombination med en Tiny25. Men det vill sig inte, Windows är envis med att tycka det är en okänd enhet som kopplas in.
Det jag är mest fundersam över är fuse-bitarna. AVR och AVR Studio är lite nytt för mig... hur jag jag ställa in AVR Studio för att det ska fungera med en Tiny25 utan kristall? Säg tex att jag vill ha igång det här:
http://www.bobhobby.com/2008/04/22/usb- ... -attiny25/
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 5 februari 2010, 18:23:59
av AndLi
Ett sätt är att ställa dem när du drar igång programeringsutilen, där kan man välja extern eller intern klocka och vilken hastighet.
I alla fall på en ATMEGA168 ska man INTE sätta fel klocka, då blir kretsen helt död om man inte har tillgång till en högspänningsprogrammerare (som STK500).
(Tro inte att jag har provat så sent som för några timmar sen..., )
Fuses -> SUT_CKSEL, i den combon kan du hitta "Int RC osc 8MHz" sen finns det lite val på hur lång tid µC ska vänta på uppstart, ta det längsta...
Det finns några lite farliga säkringar, klicka INTE i RSTDISBL.... Du bör nog inte heller klicka i DWEN (för AVRISP klarar väll inte debugWire??)
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 12:21:10
av snigelen
Jag har bara använt V-USB med mega och extern kristall och det har funkat bra.
Den enda fusen du behöver ändra på (från default) är att CKDIV8 inte skall vara satt.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 12:39:48
av thepirateboy
När jag råkar ställa om till extern klocka så brukar jag ansluta en extern kristall, då hoppar programmeringen igång igen, alltså inget stort problem.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 12:58:34
av AndLi
thepirateboy: Nämnas bör väll att vilken kristall som helst inte funkar, i mitt fall ville jag köra med en extern 20Mhz:are. Och den snurrar inte igång med vilken inställning som helst..
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 13:05:21
av thepirateboy
Oki, de gånger jag haft trubbel har jag bara hakat på en kristall från skrotlådan så har det funkat, men jag kanske haft tur.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 14:01:13
av stekern
Vilken klockfrekvens är det du försöker köra med?
16.5MHz eller 12.8MHz
Kör du med nån av oscillator kalibreringsfunktionerna som följer med?
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 14:12:37
av bearing
Jag provade en gång med 12.8MHz och fick det att funka. Minns att jag fick labba fram ett oscillatorvärde som satte processorn så nära 12.8MHz som möjligt direkt i början av programmet. Annars kunde det hända att den gick på fel frekvens för länge, så att Windows räknade den som okänd enhet, och då slutade skicka synkpulser, som ju behövs för kalibreringen. Tror jag skrev om kalibreringsfunktionen också, var någon bugg i den jag hade (fast det var länge sedan). När den funkade kunde jag lägga is på processorn, och även värma den under en glödlampa, utan att den hamnade på fel frekvens.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 6 februari 2010, 18:26:10
av PHermansson
Ja det är ju det där jag inte har förstått riktigt än... hur ställer jag in tex 12.8MHz? Tänkte ju att i första läget använda den färdigkompilerade koden från Hitcounter-projektet, och eftersom jag inte hittar någon info om Fuses antog jag att de kompilerats in i koden.
Men jag gjorde ett nytt test nu, och utan att starta ett datorkrig kan jag konstatera att Linux är överlägset. Jag gjorde hundra misslyckade försök att programmera processorn på rätt sätt i Windows. Programmeringen lyckades, men det blev alltid Okänd enhet. Nu pluggade jag in min AVRISP i ett Linuxsystem, packade upp projektfilerna och körde följande:
avrdude -p t25 -c avrispv2 -P usb -U flash:w:hitcounter3.hex
Flyttar sedan processorn till målkretsen och pluggar in den i Windowsdatorn. Nu blir det "Hittade ny hårdvara" istället för Okänd enhet, trevligt! Det verkar vara enklare att få det att fungera med avrdude än med AVR Studio...
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 7 februari 2010, 18:30:47
av bearing
Interna RC-oscillatorn har ett kalibreringsregister. Genom att skriva nästan 255 i registret blir frekvensen 12.8MHz istället för 8MHz. Vissa kretsar har PLL som dubblar 8 MHz till 16 MHz, så då behöver man bara "överklocka" till 8.25MHz.
Eftersom att RC-oscillatorns frekvens inte är tillräckligt stabil för USB-kommunikation innehåller 12.8- och 16.5-koden lite specialgrejer som t.ex. väntar in flankar då och då för att hålla synkningen. Dessutom görs justering av kalibreringsregistret vid varje synkpuls som kommer i 1KHz.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 17 februari 2010, 09:37:34
av PHermansson
Funderar nu på om det skiljer sig i toleranser eller något mellan olika batchar av processorer? Jag har använt Linux, avrdude och en AVR ISP mk2 och programmerat en krets som fungerar. Jag har sedan köpt fler tiny25'or och lagt in samma program, men då vill datorn inte kännas vid enheten (Can not enumrate).
Jag har två konstruktioner att testa med, och har flyttat runt processorerna. Den cpu som fungerar i den ena fungerar i den andra, den cpu som inte fungerar fungerar inte i något av byggena. Har även använt samma kod, samma krets med de både processorerna, den ena funkar och den andra inte. Antingen är det skillnad på dem på nått sätt eller så har jag hjärnsläpp...
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 17 februari 2010, 12:44:07
av ie
Jag har kört en del med Tiny 2313, 45 samt Mega 88. Jag har ännu aldrig programmerat några fuses. Kör endast på inbyggda klockan. Du kan ställa om till 8MHz mjukvarumässigt. Du behöver inte programmera någon fuse för det.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 17 februari 2010, 13:04:26
av bearing
Men det här är inte vilken kod som helst... USB kräver exakt och stabil klocka, helst från kristalloscillator.
PH:
Har dom samma fuse bits? några fuse bits har med PLL:en att göra, nämligen. Antar att den här koden är för 16.5 MHz-oscillator.
Förutsatt att allt är samma är min gissning är att den går för länge med fel frekvens. Det tar ett tag att gå från 16 MHz till 16.5. Om oscillatorn i det ena exemplaret har lite för låg frekvens från början kanske den inte hinner nå en stabil 16.5 MHz innan datorn säger att den är okänd.
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 17 februari 2010, 13:19:09
av PHermansson
Om jag förstår det rätt sätts Fuse-bits i samband med kompileringen, anger inget sådant manuellt. Nu sist provade jag att bara ladda ned ett färdigt projekt och köra in den medföljande hex-filen, som jag minns att jag gjort med den som fungerar. Provade två olika projekt, men inget av dem vill sig. Har även provat med en annan Tiny25 med samma resultat. Startade även om USB-hubben och bytte D- motståndet från 2k2 till 1k5, ingen skillnad. Sedan fick min testkrets prova på att flyga samtidigt som jag uttryckte mig på ett sätt som inte lämpar sig i skrift...
Som tur var landade den mjukt, och jag har nog lite mer tålamod att uppbringa. Detta med frekvensen låter ju rimligt. De kan alltså ha varierande oscillatorfrekvens? Så att den som fungerar har en något högre frekvens inbyggt och därför hinner ändra, medan de nya jag köpt har lägre frekvens? Går det att ändra grundfrekvensen (osccal?)
Re: Någon som jobbat med ATTiny och V-USB?
Postat: 17 februari 2010, 13:36:30
av stekern
Fuse information i .hex filer för avr är mig veterligen inte speciellt vanligt.
Men du kan ju lätt kolla att fuse-bitsen är rätt i t.ex. avr-studio