Innehållsförteckning:
- Steg 1: Funktioner och delar
- Steg 2: Brödbrädans layout, schematisk och konstruktion
- Steg 3: Användning och applikation
Video: VUSBTiny AVR SPI -programmerare: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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
* 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
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
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:
Bitmap -animering på SSD1331 OLED -skärm (SPI) med Visuino: 8 steg
Bitmap -animering på SSD1331 OLED -skärm (SPI) med Visuino: I den här självstudien kommer vi att visa och flytta runt en bitmappsbild i en enkel form av animering på SSD1331 OLED -skärmen (SPI) med Visuino. Titta på videon
NodeMCU och 1,8 "SPI ST7735 Display: 3 steg
NodeMCU och 1,8 "SPI ST7735 -skärm: Jag använder 1,8 ″ färg ST7735 TFT -skärm mycket. Anledningen till det är att den här skärmen är mycket enkel att använda, den kostar mindre än $ 5 och den erbjuder färg! På baksidan är displayen har en SD -kortplats. En kort sammanfattning av stiften (anpassad från Adafr
Tweets på OLED SPI Display och Particle's Photon Board: 6 steg
Tweets på OLED SPI Display och Particle's Photon Board: Hälsningar, alla. Denna enkla handledning visar oss hur vi läser våra tweets med IFTTT och ett Photon -kort. Du kan behöva se detta instruerbart
I2C / IIC LCD -skärm - Använd en SPI LCD till I2C LCD -skärmen Använd SPI till IIC -modulen med Arduino: 5 steg
I2C / IIC LCD -skärm | Använd en SPI LCD till I2C LCD -skärmen Använda SPI till IIC -modulen med Arduino: Hej killar eftersom en vanlig SPI LCD 1602 har för många trådar att ansluta så det är mycket svårt att ansluta den till arduino men det finns en modul på marknaden som kan konvertera SPI -display till IIC -display så då behöver du bara ansluta 4 ledningar
Preliminär* SPI på Pi: Kommunicera med en SPI 3-axlig accelerometer med hjälp av en hallon Pi: 10 steg
Preliminär* SPI på Pi: Kommunicera med en SPI 3-axlig accelerometer Använda en Raspberry Pi: Steg-för-steg-guide om hur du konfigurerar Raspbian och kommunicerar med en SPI-enhet med bcm2835 SPI-bibliotek (INTE lite bankat!) Detta är fortfarande mycket preliminärt … Jag måste lägga till bättre bilder av fysisk anslutning och arbeta igenom några av de besvärliga koden