Indholdsfortegnelse:

VUSBTiny AVR SPI Programmer: 3 trin
VUSBTiny AVR SPI Programmer: 3 trin

Video: VUSBTiny AVR SPI Programmer: 3 trin

Video: VUSBTiny AVR SPI Programmer: 3 trin
Video: VUSBTINY AVR Programmer 2024, November
Anonim
VUSBTiny AVR SPI -programmerer
VUSBTiny AVR SPI -programmerer

efter at have lavet en usbtiny isp programmer og brugt den i 6 måneder, kiggede jeg på at lave en anden til at bære rundt. Jeg kan godt lide den simple i usbtiny isp -designet, men vil gerne gøre det endnu mindre og tage færre dele. en ting i det originale design, som jeg vil ændre, er at fjerne brugen af urkrystal. en løsning, jeg fandt, er, at v-usb-drivere understøtter 16,5Mhz intern oscillator på attiny25/45/85-enheder. så jeg starter dette projekt for at få usbtiny isp beskæftiger v-usb til usb-kommunikation. de umiddelbare fordele er, at det sparer plads og har færre komponenttællinger (ikke flere krystaller).usbtiny beskrivelse fra https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny er en softwareimplementering af USB lavhastighed protokol til Atmel ATtiny mikrokontrollerne. Selvfølgelig vil det også fungere på ATmega -serien. Softwaren er skrevet til en AVR, der er klokket til 12 MHz. Ved denne frekvens tager hver bit på USB -bussen 8 urcyklusser, og med en masse tricky er det muligt at afkode og kode USB -kurverne med software. USB -driveren har brug for cirka 1250 til 1350 bytes flash -plads (undtagen de valgfrie identifikationsstrenge), afhængigt af konfiguration og kompilerversion, og 46 bytes RAM (eksklusive stakplads). C-grænsefladen består af 3 til 5 funktioner afhængigt af konfigurationen. Vusb-beskrivelse fra https://www.obdev.at/products/vusb/ V-USB er en software, der kun implementerer en USB-enhed med lav hastighed til Atmels AVR -mikrokontroller, hvilket gør det muligt at bygge USB -hardware med næsten enhver AVR -mikrokontroller, der ikke kræver yderligere chip. Video om konstruktion og brug

Trin 1: Funktioner og dele

Funktioner og dele
Funktioner og dele

* programmeringslogik fra usbtiny isp, moden avr-dude-understøttelse * lille fodaftryk * minimale komponenter * styrer målenheden Bemærk, at io-linjer til mål-mcus ikke er beskyttet. du kan tilføje 1k-2k modstande til SCK og MOSI og beskytte mod mulige forkerte forbindelserreferencer baseret på de værker, der findes på v-usb fra framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl/~ dicks/avr/usbtiny/deleliste * attiny45/85 (85 er lettere at få fat på) * 3,6v zenerdioder (1n747, BZX79,.. undgå 1W typer) * 68ohm modstand x 2 * 1,5K modstand * mini breadboard 170 tiepoints * usb -kabel (dollar shop usb -printerkabel er fint) * 1k/2k modstande til beskyttelse af io -linjer (valgfrit) værktøjer påkrævet * en fungerende avr -programmerer (ja, det er en catch22, vi skal bruge en til at lave en) * arbejdende avr programmeringsmiljø

Trin 2: Brødbrætlayout, skematisk og konstruktion

Brødbrætlayout, skematisk og konstruktion
Brødbrætlayout, skematisk og konstruktion
Brødbrætlayout, skematisk og konstruktion
Brødbrætlayout, skematisk og konstruktion

konstruktion

* følg breadboard layout, der er ikke det, der kan komponenter, 3 modstande, 2 dioder, 1 cap, plus en 8 pin mcu. * få en dollar -butik usb -printerkabel afskåret printerenden, der vil være 4 udsatte ledninger, sikre og gøre dem til en 4 -pins hanhoved, vi vil bruge det til at forbinde til brødbrættet. se skematisk for layout og pin -tildeling (J1). * pas på diodepolaritet.

bygge og blinke projektet

projektet blev bygget i en linux ubuntu lucid box med avr-gcc værktøjskæde. det antages, at du allerede har et sådant miljø, eller du kan finde ud af på internettet, hvordan du konfigurerer et. kildekoder er gnu gpl v2 licenseret fra arv.

kildekoden følger en konvention, der anbefales af v-usb, du kan downloade kildepakken vusbtiny.tgz og udtare i en projektmappe. i din kildekatalog er der en main.c, som er min version af modificeret usbtiny programmerer. og en usbdrv-undermappe, som indeholder v-usb-laget. Vær opmærksom på licensperioden fra de to ovenstående projekter, når du bygger dette. min kilde på programmeringslogikken er baseret på Dick Streefland -versionen og ikke ladyada -versionen (selvom de næsten er de samme).

for dem, der ikke har en build too-chain, kan du bruge følgende binære

klik for at downloade vusbtiny.hex

og brug avrdude til at flashe firmware

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

(hvis din enhed er en lille 85, skal du udskifte -p t45 m/ -p t85)

kilden kan downloades her klik for at downloade vusbtiny.tgz

fjern kildepakken i dit arbejdskatalog

tjære -zxvf vusbtiny.tgz

* gør cd vsubtiny, for at skifte til vusbtiny working directory * ajust makefile for target device i henhold til den chip, du vil bruge. dvs. PROGRAMMER_MCU = t45 eller t85 * lav et make * vedhæft din foretrukne ISP -programmer * rediger makefil og ændr dine avrdude -parametre, hvis det er nødvendigt. aktien antager man USBTiny -programmør. dvs. AVRDUDE_PROGRAMMERID = usbtiny * flash -firmware via fabrikatinstallation

efter blinkende firmware skal vi indstille sikringen korrekt, vi bruger pin 1 reset som io i dette projekt

* ppl ur bruges som krævet af v-usb lag til usb timing * reset pin deaktiveret, da vi skal bruge det som io

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

denne indstilling deaktiverer yderligere programmering via 5V SPI, da vi har brug for RESET pin (pin1) til io. skal du have adgang til en HVSP -programmør for at gendanne sikringen.

Trin 3: Anvendelse og anvendelse

Anvendelse og anvendelse
Anvendelse og anvendelse
Anvendelse og anvendelse
Anvendelse og anvendelse
Anvendelse og anvendelse
Anvendelse og anvendelse

blinker direkte på brødbrættet

hvis du bruger vusbtiny til at blinke 8 -pin AVR -enheder, kan du bare trykke på din målenhed oven på programmeringsenheden. programmøren var designet, så programmeringsstifterne matchede m/ mål. der er dog et trick, du bliver nødt til at isolere pin 2 og 3 på programmerings-mcu, da de er USB D+ og D-pins, der forbinder til pc'en. Jeg bruger et snit scotch tape til at opnå dette, du kan se det på billederne. Vis nedenfor er en lille13v "ridning" på den lille45, klar til at modtage firmware.

ISP blinker via jumper

for at programmere et målkredsløb via ISP (programmering i systemet), har du brug for et ISP-kabel. her bruger jeg ikke standard 2x3 eller 2x5 pin headers. i stedet bruger jeg en 1x6 jumper, som er mere breadboard -venlig, du kan lave 2x3 eller 2x5 pin header ved at kortlægge dem til J2 som vist på breadboard layout og skemaer. det følgende foto viser en lille 2313 klar til at blive flashet via internetudbyder.

fejlfinding

* kan ikke blinke firmwaren? tjek din originale programmør, skal muligvis justere timingen via -B flag i avrdude. Prøv at læse chip 1, kan være en dårlig sikring, kan være din chip har brug for et eksternt ur signal. du skal muligvis rette din chip tilbage til standard 1. * tjek forbindelser * hvis du bruger forskellige io -ben, tjek kode og forbindelser * du kan erstatte zenerdioder med 500mw, 400mw typer * du kan prøve at reducere R3 -værdien til 1,2K eller mindre * du er mere tilbøjelig til at støde på avrdude -timingproblemer, prøv -B flag avrdude, har et kortere USB -kabel, alt hjælper

Anbefalede: