Cuprins:

Programator VUSBTiny AVR SPI: 3 pași
Programator VUSBTiny AVR SPI: 3 pași

Video: Programator VUSBTiny AVR SPI: 3 pași

Video: Programator VUSBTiny AVR SPI: 3 pași
Video: POSTAL 3 AVR USB SPI-25xxx # 24CXX # 93CXX 2024, Noiembrie
Anonim
Programator VUSBTiny AVR SPI
Programator VUSBTiny AVR SPI

După ce am făcut un programator usbtiny isp și l-am folosit timp de 6 luni, mă uitam să fac altul pentru transport. Îmi place simplitatea designului usbtiny isp, dar aș dori să-l fac și mai mic și să ia mai puține părți. un lucru în designul original pe care vreau să-l schimb este să elimin utilizarea cristalului de ceas. o soluție pe care am găsit-o este că driverele v-usb acceptă oscilatorul intern de 16,5 MHz pe dispozitivele attiny25 / 45/85. așa că încep acest proiect pentru a avea usbtiny isp folosește v-usb pentru comunicarea USB. beneficiile imediate sunt că economisește spațiu și are un număr mai mic de componente (nu mai există cristale). protocol pentru microcontrolerele Atmel ATtiny. Desigur, va funcționa și pe seria ATmega. Software-ul este scris pentru un AVR tactat la 12 MHz. La această frecvență, fiecare bit de pe magistrala USB durează 8 cicluri de ceas și, cu o mulțime de trucuri, este posibilă decodarea și codificarea formelor de undă USB prin software. Driverul USB are nevoie de aproximativ 1250 până la 1350 de octeți de spațiu flash (cu excepția șirurilor de identificare opționale), în funcție de configurație și versiunea compilatorului, și de 46 de octeți RAM (cu excepția spațiului stivei). Interfața C este formată din 3 până la 5 funcții, în funcție de configurație. Microcontrolere AVR, ceea ce face posibilă construirea hardware-ului USB cu aproape orice microcontroler AVR, fără a necesita niciun chip suplimentar. Video despre construcție și utilizare

Pasul 1: Caracteristici și piese

Caracteristici și piese
Caracteristici și piese

* logica de programare de la usbtiny isp, suport matur avr-dude * imprimeuri mici * componente minime * puteri dispozitiv țintă rețineți că liniile io către mcus țintă nu sunt protejate. puteți adăuga rezistențe 1k-2k la SCK și MOSI și puteți proteja împotriva posibilelor conexiuni greșite referințe bazate pe lucrările găsite la v-usb din framework https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all. nl / ~ dicks / avr / usbtiny / lista pieselor * attiny45 / 85 (85 este mai ușor de găsit) * diode zener 3.6v (1n747, BZX79,.. evită tipurile 1W) * rezistor 68ohm x 2 * rezistor 1,5K * mini panou 170 puncte de legătură * cablu USB (cablul de imprimantă USB magazin dolar este bine) * Rezistoare 1k / 2k pentru protecția liniilor io (opțional) instrumente necesare * un programator avr funcțional (da, este un catch22, avem nevoie de unul pentru a face unul) * mediu de programare avr de lucru

Pasul 2: Aspect, schemă și construcție a panoului de calcul

Aspect, schemă și construcție a panoului de calcul
Aspect, schemă și construcție a panoului de calcul
Aspect, schemă și construcție a panourilor de pană
Aspect, schemă și construcție a panourilor de pană

constructie

* urmați aspectul plăcii, nu există componente care pot fi, 3 rezistențe, 2 diode, 1 capac, plus un MCU cu 8 pini. * obțineți un magazin de dolari cablu de imprimantă USB tăiat capătul imprimantei, vor exista 4 fire expuse, fixați-le și transformați-le într-un antet de sex masculin cu 4 pini, îl vom folosi pentru a ne conecta la panou. consultați schema pentru aspect și atribuirea pinilor (J1). * ai grijă la polaritatea diodei.

construirea și fulgerarea proiectului

proiectul a fost construit într-o cutie lucidă Ubuntu Linux cu lanțul de instrumente avr-gcc. se presupune că aveți deja un astfel de mediu sau puteți afla de pe internet cum să configurați unul. codurile sursă sunt gnu gpl v2 licențiate din moștenire.

codul sursă urmează o convenție recomandată de v-usb, puteți descărca pachetul sursă vusbtiny.tgz și untarred într-un director de proiect. în directorul dvs. sursă, există un main.c, care este versiunea mea de programator usbtiny modificat. și un subdirector usbdrv, care conține stratul v-usb. vă rugăm să respectați termenul de licențiere din cele două proiecte de mai sus atunci când construiți acest lucru. sursa mea despre logica programatorului se bazează pe versiunea Dick Streefland și nu pe versiunea ladyada (deși sunt aproape la fel).

pentru cei care nu au o construcție prea-lanț, puteți utiliza următorul binar

faceți clic pentru a descărca vusbtiny.hex

și utilizați avrdude pentru a bloca firmware-ul

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

(dacă dispozitivul dvs. este mic 85, înlocuiți -p t45 w / -p t85)

sursa poate fi descărcată aici faceți clic pentru a descărca vusbtiny.tgz

dezarhivați pachetul sursă în directorul dvs. de lucru

tar -zxvf vusbtiny.tgz

* faceți cd vsubtiny, pentru a schimba în directorul de lucru vusbtiny * ajustează makefile pentru dispozitivul țintă în funcție de cipul pe care îl veți utiliza. adică PROGRAMMER_MCU = t45 sau t85 * faceți un make * atașați programatorul dvs. ISP preferat * modificați makefile și modificați parametrii avrdude dacă este necesar. cel de stoc presupune programatorul USBTiny. adică AVRDUDE_PROGRAMMERID = usbtiny * firmware flash prin make install

după ce clipim firmware-ul, trebuie să setăm corect siguranța, folosim pin 1 reset ca io în acest proiect

* ceas ppl folosit conform cerințelor stratului v-usb pentru sincronizare USB * pin de resetare dezactivat deoarece trebuie să-l folosim ca io

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

această setare dezactivează programarea suplimentară prin SPI de 5V deoarece avem nevoie de pinul RESET (pin1) pentru io. veți avea nevoie de acces la un programator HVSP pentru a recupera siguranța.

Pasul 3: utilizare și aplicație

Utilizare și aplicație
Utilizare și aplicație
Utilizare și aplicație
Utilizare și aplicație
Utilizare și aplicație
Utilizare și aplicație

intermitent direct pe panou

dacă utilizați vusbtiny pentru a clipi dispozitive AVR cu 8 pini, puteți apăsa doar dispozitivul țintă deasupra dispozitivului programator. programatorul a fost conceput astfel încât pinii de programare să se potrivească cu țintele. există totuși un truc, va trebui să izolați pinii 2 și 3 de pe programatorul mcu, deoarece aceștia sunt pinii USB D + și D- care se conectează la PC. Folosesc o bucată de bandă scotch pentru a realiza acest lucru, o puteți vedea pe fotografii. arată mai jos este un tiny13v „călare” pe tiny45, gata să primească firmware-ul.

ISP intermitent prin jumper

pentru a programa un circuit țintă prin ISP (programare în sistem), aveți nevoie de un cablu ISP. aici nu folosesc anteturile standard 2x3 sau 2x5 pin. în schimb, folosesc un jumper 1x6, care este mai prietenos cu panourile, puteți crea antet de 2x3 sau 2x5 pini, mapându-le la J2 așa cum se arată în aspectul și schemele panoului de pană. următoarea fotografie arată un tiny2313 gata să fie intermitent prin ISP.

depanare

* nu pot bloca firmware-ul? verificați programatorul original, poate fi necesar să ajustați temporizarea prin -B flag în avrdude. încercați să citiți cipul 1, poate fi o siguranță proastă, poate fi cipul dvs. are nevoie de un semnal de ceas extern. s-ar putea să fie nevoie să vă reparați cipul la primul loc implicit. * verificați conexiunile * dacă utilizați pini io diferiți, verificați codul și conexiunile * puteți înlocui diodele zener cu tipuri 500mw, 400mw * puteți încerca să reduceți valoarea R3 la 1,2K sau mai puțin * este mai probabil să întâmpinați probleme de sincronizare avrdude, încercați -B pavilion de avrdude, au un cablu USB mai scurt, toate ajută

Recomandat: