USB-problem

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Kenneth_F
Inlägg: 14
Blev medlem: 10 oktober 2006, 21:29:48
Ort: Lund

USB-problem

Inlägg av Kenneth_F »

Jag har gjort ett USB-interface till datorn baserat på en AVR-processor. Jag har använt mig av projektbeskrivningarna på http://www.obdev.at/products/avrusb/projects.html främst obdevs filer, bl.a. PoweSwitch, HIDKeys och Automator.
Hårdvaran är kopierad rakt av, och jag har testat både med både tiny2313 och atmega32 och programmerat in såväl den färdigkompilerade filen som egenkompilerad variant av den givna koden, anpassat för min processor. Trots olika hårdvara och olika firmware vill det inte fungera, i alla fall inte med Windows XP.

När jag ansluter hårdvaran till datorn kommer det upp ett meddelande om att den har hittat en ny okänd enhet, men när jag går in i enhetshanteraren är PID och VID 0000 båda 2 (USB\VID_0000&PID_0000\...) enligt enhetshanteraren. Det går inte att skapa någon drivrutin till en USB-enhet som har ovan nämnd data. 0 är tydligen reserverat för fel om jag förstått rätt.

Jag vet inte hur jag ska gå vidare och felsöka. Tacksam för förslag.

/Kenneth
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Kör du med en 12MHz-kristall? Har du ställt om AVR:erna till att köras från en extern kristall?

Säker på att AVR:en går igång, så att den inte ligger i Reset?
Kenneth_F
Inlägg: 14
Blev medlem: 10 oktober 2006, 21:29:48
Ort: Lund

Inlägg av Kenneth_F »

Tack för tipset.
Jag trodde att klockningen fungerade som den skulle, eftersom jag har ställt in att den ska använda extern kristall och jag har anslutit en 12MHz-kristall. Vid mätningar ser jag dock att den verkliga klockfrekvensen är avsevärt lägre. Jag vet inte riktigt varför det är så, men det ska nog inte vara så svårt att reda ut imorgon när man är lite piggare.
jon_kanon
Inlägg: 389
Blev medlem: 27 oktober 2005, 14:47:39
Ort: Göteborg

Inlägg av jon_kanon »

Förslag till skäl för fel frekvens på en kristall:
* Fel storlek på lastkapacitanser http://www.scapro.se/lastkapacitans.htm
* Olika storlek på lastkapacitanser
* Svårt misslyckad PCB-layout som stör svängningen
* Trasig kristall (minst troligt)
EBD
Inlägg: 136
Blev medlem: 10 maj 2006, 18:50:48
Ort: Sundsvall

Inlägg av EBD »

En tiny2313 är från fabrik programmerad med fusen CKDIV8, som delar klockfrekvensen med 8. Men det har du säkert redan ändrat, det är ju inte heller nån förklaring på varför det inte fungerar med mega32:an
Kenneth_F
Inlägg: 14
Blev medlem: 10 oktober 2006, 21:29:48
Ort: Lund

Inlägg av Kenneth_F »

Frekvensen för atmega32:an var korrekt redan från början men inte frekvensen för tiny:n (testade bara tiny:n igår) trots att divide clock by 8 intenally var bortklickad. För övrigt ganska onödig default-inställning tycker jag. Jag vet inte vad jag förändrade men helt plötsligt fungerade klockningen som den ska. Tyvärr blir resultatet för hela kretsen det samma när jag ansluter den till datorn.

Jag har satt reset disabled så att kretsen ska köra hela tiden och det fungerar att toggla några lysdioder när programmet kör.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

> Jag har satt reset disabled så att kretsen ska köra hela tiden och det fungerar att toggla några lysdioder när programmet kör.

Är du medveten om att det inte går att programmera AVR:en med ISP efter att du har disablat Reset-funktionen?

Kopplar du enligt det här schemat?
Kenneth_F
Inlägg: 14
Blev medlem: 10 oktober 2006, 21:29:48
Ort: Lund

Inlägg av Kenneth_F »

Jag visste inte att man inte kunde programmera ISP om man dissablat reset, men jag kör high voltage programming för tillfället så det spelar ingen roll.

Jag kopplar enligt länken med den skillnaden att jag anänder 2 serikopplade dioder för att sänka spänningen istället för en 3,5V regulator.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Har du mätt så att du verkligen har ca 3.5 V på VCC?

Jag provade att koppla en enhet som jag har gjort med Obdev till en Windowsdator. Då fick jag upp ett fönster om att installera en drivrutin. Samtidigt gick jag in i Enhetshanteraren och kollade. Där låg mycket riktigt enheten, med sitt namn. Så det är konstigt att det inte fungerar för dig.
mooo
Inlägg: 24
Blev medlem: 17 september 2006, 10:08:48
Ort: Göteborg

Inlägg av mooo »

Dubbelkolla så att du har satt rätt pullupmotstånd på rätt datasignal.
Förväxlar du D+ och D- så funkar det inte.
Kenneth_F
Inlägg: 14
Blev medlem: 10 oktober 2006, 21:29:48
Ort: Lund

Inlägg av Kenneth_F »

Jag testade att koppla upp alltsammans på nytt med nya komponenter och resultatet blev positivt. Spänningarna på olika pinnar verkade bra även för den gamla kopplingen men jag tror att det var något fel på kristallen trots allt.

Skönt att det fungerar som det ska nu.
Tack för hjälpen.
Skriv svar