Innehållsförteckning:

VUSBTiny AVR SPI -programmerare: 3 steg
VUSBTiny AVR SPI -programmerare: 3 steg

Video: VUSBTiny AVR SPI -programmerare: 3 steg

Video: VUSBTiny AVR SPI -programmerare: 3 steg
Video: VUSBTINY AVR Programmer 2024, November
Anonim
VUSBTiny AVR SPI -programmerare
VUSBTiny AVR SPI -programmerare

efter att ha gjort en usbtiny isp -programmerare och använt den i 6 månader tittade jag på att göra en till för att bära med mig. Jag gillar enkelheten i usbtiny isp -designen men skulle vilja göra den ännu mindre och ta mindre delar. en sak i den ursprungliga designen som jag vill ändra är att eliminera användningen av klockkristall. en lösning jag hittade är att v-usb-drivrutiner stöder 16,5 Mhz intern oscillator på attiny25/45/85 enheter. så jag startar detta projekt för att få usbtiny isp använder v-usb för usb-kommunikation. de omedelbara fördelarna är att det sparar utrymme och har mindre komponentantal (inga fler kristaller).usbtiny-beskrivning från https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny är en mjukvaruimplementering av USB-låghastigheten protokoll för Atmel ATtiny mikrokontroller. Naturligtvis kommer det också att fungera på ATmega -serien. Programvaran är skriven för en AVR klockad på 12 MHz. Vid denna frekvens tar varje bit på USB -bussen 8 klockcykler, och med mycket knep är det möjligt att avkoda och koda USB -vågformerna med programvara. USB -drivrutinen behöver cirka 1250 till 1350 byte flashutrymme (exklusive de valfria identifieringssträngarna), beroende på konfiguration och kompilatorversion, och 46 byte RAM (exklusive stackutrymme). C-gränssnittet består av 3 till 5 funktioner, beroende på konfigurationen. Vusb-beskrivning från https://www.obdev.at/products/vusb/ V-USB är en programvara som endast implementerar en låghastighets USB-enhet för Atmels AVR -mikrokontroller, vilket gör det möjligt att bygga USB -hårdvara med nästan alla AVR -mikrokontroller, vilket inte kräver något extra chip. Video om konstruktion och användning

Steg 1: Funktioner och delar

Funktioner och delar
Funktioner och delar

* programmeringslogik från usbtiny isp, moget avr-dude-stöd * små fotavtryck * minimala komponenter * driver målenheten, notera att io-linjerna till mål-mcus inte är skyddade. du kan lägga till 1k-2k motstånd till SCK och MOSI och skydda mot eventuella felaktiga anslutningar. nl/~ dicks/avr/usbtiny/parts list * attiny45/85 (85 är lättare att få tag på) * 3,6v zenerdioder (1n747, BZX79,..undvik 1W -typer) * 68ohm motstånd x 2 * 1,5K motstånd * mini breadboard 170 tiepoints * usb kabel (dollar shop usb skrivarkabel är bra) * 1k/2k motstånd för io lines skydd (tillval) verktyg krävs * en fungerande avr programmerare (ja, det är en catch22, vi behöver en för att göra en) * arbetar avr programmeringsmiljö

Steg 2: Brödbrädans layout, schematisk och konstruktion

Brödbrädans layout, schematisk och konstruktion
Brödbrädans layout, schematisk och konstruktion
Brödbrädans layout, schematisk och konstruktion
Brödbrädans layout, schematisk och konstruktion

konstruktion

* följ panelen layout, det är inte det kan komponenter, 3 motstånd, 2 dioder, 1 lock, plus en 8 -stifts mcu. * få en dollar -butik usb -skrivarkabel avskurna skrivaränden, det kommer att finnas 4 exponerade trådar, säkra och göra dem till en 4 -stifts hanrubrik, vi använder den för att ansluta till brödbrädet. konsultera schemat för layout och pin -tilldelning (J1). * se upp för diodens polaritet.

bygga och blinka projektet

projektet byggdes i en linux ubuntu lucid box med avr-gcc verktygskedja. det antas att du redan har en sådan miljö, eller så kan du ta reda på från internet hur du konfigurerar en sådan. källkoder är gnu gpl v2 licensierade från arv.

källkoden följer en konvention som rekommenderas av v-usb, du kan ladda ner källkodspaketet vusbtiny.tgz och ta bort in i en projektkatalog. i din källkatalog finns det en main.c, som är min version av modifierad usbtiny programmerare. och en usbdrv-underkatalog, som innehåller v-usb-lagret. observera licensvillkor från de två ovanstående projekten när du bygger detta. min källa på programmerarlogiken är baserad på Dick Streefland -versionen och inte ladyada -versionen (även om de är nästan desamma).

för dem som inte har en build too-chain kan du använda följande binära

klicka för att ladda ner vusbtiny.hex

och använd avrdude för att flasha firmware

avrdude -c usbtiny -p t45 -e -V -U blixt: w: usbtiny.hex

(om din enhet är en liten85, ersätt -p t45 w/ -p t85)

källa kan laddas ner här klicka för att ladda ner vusbtiny.tgz

ta bort källpaketet i din arbetskatalog

tar -zxvf vusbtiny.tgz

* gör cd vsubtiny, för att byta till vusbtiny arbetskatalog * ajust makefile för målenhet enligt det chip du kommer att använda. dvs PROGRAMMER_MCU = t45 eller t85 * gör en make * bifoga din favorit ISP -programmerare * ändra makefile och ändra dina avrdude -parametrar om det behövs. aktien antar man USBTiny programmerare. dvs AVRDUDE_PROGRAMMERID = usbtiny * flash firmware via make install

efter att firmware har blinkat måste vi ställa in säkringen ordentligt, vi använder stift 1 -återställning som io i detta projekt

* ppl-klocka används som krävs av v-usb-lager för usb-timing * återställningsnål inaktiverad eftersom vi behöver använda den som io

avrdude -c usbtiny -p t45 -V -U lfuse: w: 0xe1: m -U hfuse: w: 0x5d: m -U efuse: w: 0xff: m

denna inställning inaktiverar ytterligare programmering via 5V SPI eftersom vi behöver RESET -stiftet (pin1) för io. du behöver tillgång till en HVSP -programmerare för att återställa säkringen.

Steg 3: Användning och applikation

Användning och applikation
Användning och applikation
Användning och applikation
Användning och applikation
Användning och applikation
Användning och applikation

blinkar direkt på brödbrädan

om du använder vusbtiny för att blinka 8 -stifts AVR -enheter kan du bara trycka på din målenhet ovanpå programmeringsenheten. programmeraren hade utformats så att programmeringsnålarna matchar m/ mål. Det finns dock ett trick, du måste isolera stift 2 och 3 på programmeraren mcu, eftersom de är USB D+ och D-stiften som ansluter till datorn. Jag använder ett snitt av tejp för att uppnå detta, du kan se det på bilderna. visa nedan är en liten13v "ridning" på tiny45, redo att ta emot firmware.

ISP blinkar via bygel

för att programmera en målkrets via ISP (in-system programmering) behöver du en ISP-kabel. här använder jag inte standard 2x3 eller 2x5 pin headers. istället använder jag en 1x6 -bygel som är mer breadboard -vänlig, du kan göra 2x3 eller 2x5 pin header genom att mappa dem till J2 som visas på panelen layout och scheman. följande foto visar en liten 2313 redo att bli flashad via ISP.

felsökning

* kan inte blinka firmware? kolla din ursprungliga programmerare, kan behöva justera timing via -B flagga i avrdude. försök läsa chip 1: a, kan vara en dålig säkring, kan vara att ditt chip behöver en extern klocksignal. du kan behöva fixa ditt chip tillbaka till standard 1. * kontrollera anslutningar * om du använder olika io -stift, kontrollera kod och anslutningar * du kan ersätta zenerdioder med 500mw, 400mw typer * du kan försöka minska R3 -värdet till 1,2K eller mindre * du är mer benägna att stöta på avrdude -tidsproblem, försök -B flagga av avdude, har en kortare USB -kabel allt hjälper

Rekommenderad: