INHOUDSOPGAWE:

VUSBTiny AVR SPI programmeerder: 3 stappe
VUSBTiny AVR SPI programmeerder: 3 stappe

Video: VUSBTiny AVR SPI programmeerder: 3 stappe

Video: VUSBTiny AVR SPI programmeerder: 3 stappe
Video: do you want to learn micro controller programing ? #avr#stm8 #programer #c #electronic 2024, November
Anonim
VUSBTiny AVR SPI programmeerder
VUSBTiny AVR SPI programmeerder

Nadat ek 'n usbtiny ISP -programmeerder gemaak het en dit vir ses maande gebruik het, was ek op soek na 'n ander een om saam te dra. Ek hou van die eenvoud van die usbtiny isp -ontwerp, maar wil dit nog kleiner maak en minder dele neem. een ding in die oorspronklike ontwerp wat ek wil verander, is om die gebruik van klokkristal uit te skakel. Een oplossing wat ek gevind het, is dat v-usb-bestuurders die 16.5Mhz interne ossillator op attiny25/45/85 toestelle ondersteun. so ek begin hierdie projek om usbtiny isp te gebruik, gebruik v-usb vir usb-kommunikasie. die onmiddellike voordele is dat dit ruimte bespaar en minder komponenttellings het (nie meer kristalle nie). usbtiny-beskrywing van https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny is 'n sagteware-implementering van die USB-laerspoed protokol vir die Atmel ATtiny mikrobeheerders. Dit werk natuurlik ook aan die ATmega -reeks. Die sagteware is geskryf vir 'n AVR wat op 12 MHz geklok is. Op hierdie frekwensie neem elke bietjie op die USB -bus 8 kloksiklusse, en met baie bedrog is dit moontlik om die USB -golfvorms deur sagteware te dekodeer en te kodeer. Die USB -bestuurder benodig ongeveer 1250 tot 1350 grepe flitsruimte (uitgesluit die opsionele identifikasiestringe), afhangende van die opset en weergawe van die samesteller, en 46 grepe RAM (stapelruimte uitgesluit). Die C-koppelvlak bestaan uit 3 tot 5 funksies, afhangende van die konfigurasie. Vusb-beskrywing van https://www.obdev.at/products/vusb/ V-USB is slegs 'n sagteware-implementering van 'n laespoed-USB-toestel vir Atmel's AVR -mikrobeheerders, wat dit moontlik maak om USB -hardeware met bykans enige AVR -mikrobeheerder te bou, sonder enige ekstra chip. Video oor konstruksie en gebruik

Stap 1: Kenmerke en onderdele

Kenmerke en onderdele
Kenmerke en onderdele

* programmeringslogika van usbtiny isp, volwasse avr-dude-ondersteuning * klein voetafdruk * minimale komponente * dryf die teikenapparaat, let op dat die io-lyne na die doel-mcus nie beskerm word nie. u kan 1k-2k weerstande by SCK en MOSI voeg en beskerm teen moontlike verkeerde verbindingsreferensies gebaseer op die werke wat by v-usb gevind word vanaf raamwerk https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl/~ dicks/avr/usbtiny/onderdele lys * attiny45/85 (85 is makliker om te kry) * 3,6v zener diodes (1n747, BZX79,.. vermy 1W tipes) * 68ohm weerstand x 2 * 1,5K weerstand * mini -broodbord 170 bindpunte * usb -kabel (dollar -winkel usb -drukkabel is goed) * 1k/2k weerstande vir beskerming van io -lyne (opsioneel) gereedskap benodig * 'n werkende AVR -programmeerder (ja, dit is 'n catch22, ons benodig een om een te maak) * werkende avr programmeringsomgewing

Stap 2: Broodborduitleg, skematiese en konstruksie

Broodborduitleg, skematiese en konstruksie
Broodborduitleg, skematiese en konstruksie
Broodborduitleg, skematiese en konstruksie
Broodborduitleg, skematiese en konstruksie

konstruksie

* volg die broodborduitleg, daar is nie komponente nie, 3 weerstande, 2 diodes, 1 kap, plus 'n 8 -pins mcu. * Kry 'n dollar -winkel usb -drukkabel van die drukker af, daar sal 4 blootgestelde draad wees en dit in 'n 4 -pen -kopstuk maak, ons gebruik dit om aan die broodbord te koppel. Raadpleeg die skema vir uitleg en penopdrag (J1). * Pasop vir die polariteit van die diode.

bou en flits van die projek

die projek is gebou in 'n linux ubuntu linux box met avr-gcc toolchain. dit word aangeneem dat u reeds so 'n omgewing het, of u kan op die internet uitvind hoe u dit kan opstel. bronkodes is gnu gpl v2 gelisensieer uit erfenis.

die bronkode volg op 'n konvensie wat deur v-usb aanbeveel word, u kan die bronpakket vusbtiny.tgz aflaai en dit nie in 'n projekgids invoer nie. in u brongids is daar 'n main.c, wat my weergawe van die gewysigde usbtiny -programmeerder is. en 'n usbdrv-subgids, wat die v-usb-laag bevat. Let asseblief op die lisensietermyn van bogenoemde twee projekte wanneer u dit bou. my bron op die programmeerderlogika is gebaseer op die Dick Streefland -weergawe en nie die ladyada -weergawe nie (hoewel dit byna dieselfde is).

Vir diegene wat nie 'n te veel ketting het nie, kan u die volgende binêre gebruik

klik om af te laai vusbtiny.hex

en gebruik avrdude om firmware te flits

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

(as u toestel klein is, vervang -p t45 met -p t85)

die bron kan hier afgelaai word, klik om af te laai vusbtiny.tgz

ontkoppel die bronpakket in u werkgids

teer -zxvf vusbtiny.tgz

* doen cd vsubtiny, om oor te skakel na vusbtiny werkgids * 'n geskikte lêer vir die teikenapparaat volgens die chip wat u sal gebruik. dit wil sê PROGRAMMER_MCU = t45 of t85 * maak 'n make * heg u gunsteling ISP -programmeerder aan * verander die lêer en verander u avrdude -parameters indien nodig. die voorraad neem 'n USBTiny -programmeerder aan. dws AVRDUDE_PROGRAMMERID = usbtiny * flash -firmware via make install

Nadat die firmware geflits is, moet ons die lont reg stel, ons gebruik pin 1 reset as io in hierdie projek

* ppl-klok gebruik soos vereis deur v-usb-laag vir usb-tydsberekening * reset-pen is uitgeskakel, aangesien ons dit as io moet gebruik

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

hierdie instelling skakel verdere programmering uit via 5V SPI, aangesien ons die RESET -pen (pin1) vir io benodig. u benodig toegang tot 'n HVSP -programmeerder om die lont te herstel.

Stap 3: Gebruik en toepassing

Gebruik en toepassing
Gebruik en toepassing
Gebruik en toepassing
Gebruik en toepassing
Gebruik en toepassing
Gebruik en toepassing

direkte flits op broodbord

As u vusbtiny gebruik om 8 -pins AVR -toestelle te flits, kan u net u teikenapparaat bo -op die programmeerder -toestel druk. die programmeerder is so ontwerp dat die programmeringspenne ooreenstem met die doelwitte. Daar is egter een truuk; u moet pen 2 en 3 op die programmeerder mcu isoleer, aangesien dit die USB D+ en D-pins is wat met die rekenaar verbind word. Ek gebruik 'n sny plakband om dit te bereik; u kan dit op die foto's sien. toon hieronder 'n klein 13v "ry" op die tiny45, gereed om firmware te ontvang.

ISP flits via trui

U het 'n ISP-kabel nodig om 'n doelkring via ISP (in-stelselprogrammering) te programmeer. hier gebruik ek nie die standaard 2x3 of 2x5 pin headers nie. In plaas daarvan gebruik ek 'n 1x6 -trui wat meer broodbordvriendelik is, en u kan 'n 2x3- of 2x5 -penkop maak deur dit na J2 te karteer, soos aangedui op die broodborduitleg en skematika. die volgende foto toon 'n klein 2313 wat gereed is om via ISP geflits te word.

probleemoplossing

* kan die firmware nie flits nie? Kontroleer u oorspronklike programmeerder, miskien moet u die tydsberekening via -B -vlag in avrdude aanpas. probeer om chip 1 te lees, dit kan 'n slegte lont wees, u chip benodig 'n eksterne kloksein. Miskien moet u u chip terugstel na standaard 1. * kontroleer verbindings * as u verskillende io -penne gebruik, kontroleer kode en verbindings * u kan zener -diodes vervang met 500mw, 400mw -tipes * u kan probeer om die R3 -waarde tot 1.2K of minder te verminder * dit is meer waarskynlik dat u avrdude -tydsberekening ondervind, -B vlag van avrdude, 'n korter USB -kabel help alles

Aanbeveel: