Talaan ng mga Nilalaman:

VUSBTiny AVR SPI Programmer: 3 Hakbang
VUSBTiny AVR SPI Programmer: 3 Hakbang

Video: VUSBTiny AVR SPI Programmer: 3 Hakbang

Video: VUSBTiny AVR SPI Programmer: 3 Hakbang
Video: VUSBTINY AVR Programmer 2024, Nobyembre
Anonim
VUSBTiny AVR SPI Programmer
VUSBTiny AVR SPI Programmer

pagkatapos gumawa ng isang usbtiny isp programmer at gamitin ito sa loob ng 6 na buwan, tinitingnan ko ang paggawa ng isa pa para sa pagdala. gusto ko ang simple ng usbtiny isp na disenyo ngunit nais kong gawin itong mas maliit at kumuha ng mas kaunting mga bahagi. isang bagay sa orihinal na disenyo na nais kong baguhin ay upang maalis ang paggamit ng orasan na kristal. isang solusyon na nakita ko ay sinusuportahan ng mga driver ng v-usb ang panloob na oscillator ng 16.5Mhz sa mga aparatong attiny25 / 45/85. kaya sinisimulan ko ang proyektong ito upang magkaroon ng usbtiny isp ang gumagamit ng v-usb para sa usb na komunikasyon. ang agarang mga benepisyo ay nakakatipid ito ng puwang at may mas kaunting bilang ng mga bahagi (wala nang mga kristal).usbtiny na paglalarawan mula sa https://www.xs4all.nl/~dicks/avr/usbtiny/ Ang USBtiny ay isang pagpapatupad ng software ng USB low-speed protocol para sa Atmel ATtiny microcontrollers. Siyempre, gagana rin ito sa seryeng ATmega. Ang software ay nakasulat para sa isang AVR na naka-orasan sa 12 MHz. Sa dalas na ito, ang bawat piraso sa USB bus ay tumatagal ng 8 cycle ng orasan, at sa maraming pandaraya, posible na ma-decode at ma-encode ang mga USB form ng software. Ang USB driver ay nangangailangan ng humigit-kumulang 1250 hanggang 1350 bytes ng flash space (hindi kasama ang opsyonal na mga string ng pagkakakilanlan), depende sa bersyon ng pagsasaayos at tagatala, at 46 bytes RAM (hindi kasama ang stack space). Ang interface ng C ay binubuo ng 3 hanggang 5 na pag-andar, nakasalalay sa paglalarawan ng config.vusb mula sa https://www.obdev.at/products/vusb/ Ang V-USB ay isang pagpapatupad na software lamang ng isang mababang bilis na USB aparato para sa Atmel Mga AVR microcontroller, na ginagawang posible na bumuo ng USB hardware na may halos anumang AVR microcontroller, hindi nangangailangan ng anumang karagdagang chip.video sa konstruksyon at paggamit

Hakbang 1: Mga Tampok at Bahagi

Mga Tampok at Bahagi
Mga Tampok at Bahagi

* Pag-logika sa programa mula sa usbtiny isp, mature na suporta ng avr-dude * maliit na foot-print * minimal na mga bahagi * kapangyarihan na target na aparato tandaan na ang mga linya ng io sa target na mcus ay hindi protektado. maaari kang magdagdag ng 1k-2k resistors sa SCK at MOSI at protektahan laban sa mga posibleng maling koneksyonreferensi batay sa mga gawa na matatagpuan sa v-usb mula sa balangkas https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl / ~ dicks / avr / usbtiny / mga bahagi ng listahan * attiny45 / 85 (85 ay mas madaling dumating) * 3.6v zener diodes (1n747, BZX79,.. maiwasan ang 1W uri) * 68ohm risistor x 2 * 1.5K risistor * mini breadboard 170 tiepoints * usb cable (dollar shop usb printer cable ay maayos) * 1k / 2k resistors para sa proteksyon ng mga linya ng io (opsyonal) na kinakailangan ng mga tool * isang working avr programmer (oo, ito ay isang catch22, kailangan namin ng isa upang makagawa ng isa) * nagtatrabaho avr programa na kapaligiran

Hakbang 2: Layout ng Breadboard, Skema, at Konstruksiyon

Layout ng Breadboard, Skema, at Konstruksiyon
Layout ng Breadboard, Skema, at Konstruksiyon
Layout ng Breadboard, Skema, at Konstruksiyon
Layout ng Breadboard, Skema, at Konstruksiyon

konstruksyon

* Sundin ang layout ng breadboard, hindi maaaring may mga sangkap, 3 resistors, 2 diode, 1 cap, kasama ang isang 8 pin mcu. * Kumuha ng isang dolyar na shop usb printer cable putulin ang dulo ng printer, magkakaroon ng 4 na nakalantad na kawad, ligtas at gawin silang isang 4 pin male header, gagamitin namin ito upang kumonekta sa breadboard. kumunsulta sa eskematiko para sa layout at pagtatalaga ng pin (J1). * mag-ingat para sa diode polarity.

pagbuo at pag-flash ng proyekto

ang proyekto ay itinayo sa isang linux ubuntu lucid box na may avr-gcc toolchain. ipinapalagay na mayroon ka nang gayong kapaligiran, o maaari mong malaman mula sa internet kung paano mag-setup ng isa. ang mga source code ay gnu gpl v2 na lisensyado mula sa mana.

ang source code ay sumusunod sa isang kombensyon na inirekomenda ng v-usb, maaari mong i-download ang source package vusbtiny.tgz at i-untar sa isang direktoryo ng proyekto. sa loob ng iyong direktoryo ng pinagmulan, mayroong isang pangunahing.c, na aking bersyon ng binagong usbtiny programmer. at isang usbdrv sub-direktoryo, na naglalaman ng layer ng v-usb. mangyaring obserbahan ang term ng paglilisensya mula sa nabanggit na dalawang proyekto kapag itinatayo ito. ang aking mapagkukunan sa programmer na lohika ay batay sa bersyon ng Dick Streefland at hindi ang bersyon ng ladyada (bagaman halos pareho sila).

para sa mga walang masyadong build-chain, maaari mong gamitin ang sumusunod na binary

i-click upang i-download ang vusbtiny.hex

at gumamit ng avrdude sa flash firmware

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

(kung ang iyong aparato ay isang maliit na85, palitan ang -p t45 w / -p t85)

maaaring ma-download ang mapagkukunan dito mag-click upang mag-download vusbtiny.tgz

alisin ang pagkakarga sa pinagmulang pakete sa iyong gumaganang direktoryo

tar -zxvf vusbtiny.tgz

* gawin ang cd vsubtiny, upang mapalitan ang vusbtiny na gumaganang direktoryo * ajust makefile para sa target na aparato alinsunod sa chip na iyong gagamitin. ibig sabihin, PROGRAMMER_MCU = t45 o t85 * gumawa ng isang gumawa * ikabit ang iyong paboritong ISP programmer * baguhin ang makefile at baguhin ang iyong mga avdrude parameter kung kinakailangan. Ipinapalagay ng isang stock na USBTiny programmer. ibig sabihin, AVRDUDE_PROGRAMMERID = usbtiny * flash firmware sa pamamagitan ng make install

pagkatapos ng flashing firmware, kailangan naming maayos na itakda ang piyus, gumagamit kami ng pin 1 reset bilang io sa proyektong ito

* Ang orasan ng ppl na ginamit tulad ng kinakailangan ng layer ng v-usb para sa tiyempo ng usb * Na-disable ang pag-reset ng pin dahil kailangan namin itong gamitin bilang io

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

hindi pinagana ng setting na ito ang karagdagang pag-program sa pamamagitan ng 5V SPI dahil kailangan namin ang RESET pin (pin1) para sa io. kakailanganin mo ng pag-access sa isang programmer ng HVSP upang mabawi ang piyus.

Hakbang 3: Paggamit at Paglalapat

Paggamit at Paglalapat
Paggamit at Paglalapat
Paggamit at Paglalapat
Paggamit at Paglalapat
Paggamit at Paglalapat
Paggamit at Paglalapat

direktang flashing sa breadboard

kung gumagamit ka ng vusbtiny upang i-flash ang 8 na mga aparatong AVR, maaari mo lamang pindutin ang iyong target na aparato sa tuktok ng aparato ng programmer. ang programmer ay dinisenyo upang ang mga pin ng programa ay tumutugma sa mga target. mayroong isang trick bagaman, kakailanganin mong ihiwalay ang pin 2 at 3 sa programmer mcu, dahil ang mga ito ay ang USB D + at D-pin na kumokonekta sa PC. Gumagamit ako ng isang hiwa ng scotch tape upang makamit ito, makikita mo ito sa mga larawan. ipakita sa ibaba ay isang maliit na13v "pagsakay" sa tiny45, handa nang tumanggap ng firmware.

ISP flashing sa pamamagitan ng jumper

upang mai-program ang isang target na circuit sa pamamagitan ng ISP (in-system programming), kailangan mo ng isang ISP cable. narito hindi ako gumagamit ng karaniwang 2x3 o 2x5 pin na mga header. sa halip gumagamit ako ng isang 1x6 jumper na kung saan ay mas friendly ang breadboard, maaari kang gumawa ng 2x3 o 2x5 pin header sa pamamagitan ng pagmamapa sa kanila sa J2 tulad ng ipinakita sa layout ng breadboard at mga iskema. ang sumusunod na larawan ay nagpapakita ng isang maliit2313 handa na upang mai-flash sa pamamagitan ng ISP.

pagto-troubleshoot

* Hindi mai-flash ang firmware? suriin ang iyong orihinal na programmer, maaaring kailanganin upang ayusin ang tiyempo sa pamamagitan ng -B flag sa avrdude. subukang basahin ang ika-1 ng chip, maaaring maging isang masamang piyus, maaaring ang iyong maliit na tilad ay nangangailangan ng isang panlabas na signal ng orasan. maaaring kailanganin mong ayusin ang iyong chip pabalik sa default 1st. * suriin ang mga koneksyon * kung gumagamit ng iba't ibang mga io pin, suriin ang code at mga koneksyon * maaari mong mapalitan ang mga zener diode w / 500mw, 400mw na mga uri * maaari mong subukang bawasan ang halagang R3 sa 1.2K o mas kaunti * mas malamang na makatagpo ka ng mga problema sa oras ng pag-time, subukan -B flag ng avrdude, magkaroon ng isang mas maikling USB cable lahat ng tumutulong

Inirerekumendang: