Inhoudsopgave:
- Stap 1: Functies en onderdelen
- Stap 2: Breadboard-indeling, schema en constructie
- Stap 3: Gebruik en toepassing
Video: VUSBTiny AVR SPI Programmer - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
na het maken van een usbtiny isp-programmeur en deze 6 maanden te gebruiken, wilde ik er nog een maken om mee te nemen. ik hou van de eenvoud van het usbtiny isp-ontwerp, maar zou het nog kleiner willen maken en minder onderdelen nodig hebben. een ding in het oorspronkelijke ontwerp dat ik wil veranderen is om het gebruik van klokkristal te elimineren. een oplossing die ik heb gevonden, is dat v-usb-stuurprogramma's de 16.5Mhz interne oscillator op attiny25/45/85-apparaten ondersteunen. dus ik begin dit project om usbtiny isp v-usb te laten gebruiken voor usb-communicatie. de directe voordelen zijn dat het ruimte bespaart en minder componenten telt (geen kristallen meer).usbtiny beschrijving van https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny is een software-implementatie van de USB low-speed protocol voor de Atmel ATtiny microcontrollers. Natuurlijk werkt het ook op de ATmega-serie. De software is geschreven voor een AVR geklokt op 12 MHz. Bij deze frequentie duurt elke bit op de USB-bus 8 klokcycli en met veel trucjes is het mogelijk om de USB-golfvormen softwarematig te decoderen en te coderen. De USB-driver heeft ongeveer 1250 tot 1350 bytes flashruimte nodig (exclusief de optionele identificatiestrings), afhankelijk van de configuratie en compilerversie, en 46 bytes RAM (exclusief stackruimte). De C-interface bestaat uit 3 tot 5 functies, afhankelijk van de configuratie.vusb-beschrijving van https://www.obdev.at/products/vusb/ V-USB is een softwarematige implementatie van een low-speed USB-apparaat voor Atmel's AVR-microcontrollers, waardoor het mogelijk is om USB-hardware te bouwen met bijna elke AVR-microcontroller, zonder extra chip.video over constructie en gebruik
Stap 1: Functies en onderdelen
* programmeerlogica van usbtiny isp, volwassen avr-dude-ondersteuning * kleine footprint * minimale componenten * voedt het doelapparaat merk op dat de io-lijnen naar de doel-mcus niet beschermd zijn. u kunt 1k-2k-weerstanden toevoegen aan SCK en MOSI en beschermen tegen mogelijke verkeerde verbindingsreferenties op basis van de werken gevonden op v-usb van framework https://www.obdev.at/vusb/usbtiny isp https://www.xs4all. nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 is makkelijker verkrijgbaar) * 3.6v zenerdiodes (1n747, BZX79,..vermijd 1W types) * 68ohm weerstand x 2 * 1.5K weerstand * mini breadboard 170 tiepoints * usb-kabel (dollar shop usb-printerkabel is prima) * 1k/2k weerstanden voor io-lijnen bescherming (optioneel)tools vereist * een werkende avr-programmeur (ja, het is een catch22, we hebben er een nodig om er een te maken) * werkende avr programmeeromgeving
Stap 2: Breadboard-indeling, schema en constructie
bouw
* volg de breadboard-lay-out, er zijn geen componenten, 3 weerstanden, 2 diodes, 1 dop, plus een 8-pins mcu. * koop een USB-printerkabel van een dollarwinkel, snijd het uiteinde van de printer af, er zijn 4 blootliggende draden, maak ze vast en maak er een 4-pins mannelijke header van, we zullen deze gebruiken om verbinding te maken met het breadboard. raadpleeg schema voor indeling en pinbezetting (J1). * let op de polariteit van de diodes.
het project bouwen en flashen
het project is gebouwd in een linux ubuntu lucid-box met avr-gcc-toolchain. er wordt van uitgegaan dat je al een dergelijke omgeving hebt, of je kunt op internet vinden hoe je er een kunt instellen. broncodes zijn gnu gpl v2 licentie van overerving.
de broncode volgt een conventie die wordt aanbevolen door v-usb, u kunt het broncodepakket vusbtiny.tgz downloaden en in een projectdirectory plaatsen. in je bronmap is er een main.c, wat mijn versie is van de gewijzigde usbtiny-programmer. en een usbdrv-submap, die de v-usb-laag bevat. let bij het bouwen hiervan op de licentietermijn van de bovenstaande twee projecten. mijn bron over de logica van de programmeur is gebaseerd op de Dick Streefland-versie en niet op de ladyada-versie (hoewel ze bijna hetzelfde zijn).
voor degenen die geen build-to-chain hebben, kun je het volgende binaire bestand gebruiken:
klik om vusbtiny.hex te downloaden
en gebruik avrdude om firmware te flashen
avrdude -c usbtiny -p t45 -e -V -U flash:w:usbtiny.hex
(als uw apparaat een tiny85 is, vervangt u -p t45 door -p t85)
bron kan hier worden gedownload klik om vusbtiny.tgz te downloaden
untar het broncodepakket in uw werkmap
tar -zxvf vusbtiny.tgz
* doe cd vsubtiny, om te veranderen in vusbtiny werkmap * pas makefile aan voor het doelapparaat volgens de chip die je gaat gebruiken. d.w.z. PROGRAMMER_MCU=t45 of t85 * maak een make * voeg uw favoriete ISP-programmeur toe * wijzig makefile en wijzig indien nodig uw avrdude-parameters. de standaard gaat uit van een USBTiny-programmeur. d.w.z. AVRDUDE_PROGRAMMERID=usbtiny * flash-firmware via make install
na het knipperen van de firmware moeten we de zekering correct instellen, we gebruiken pin 1 reset als io in dit project
* ppl-klok gebruikt zoals vereist door v-usb-laag voor usb-timing * reset-pin uitgeschakeld omdat we het als io moeten gebruiken
avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m
deze instelling schakelt verdere programmering via 5V SPI uit omdat we de RESET-pin (pin1) voor io nodig hebben. u hebt toegang tot een HVSP-programmeur nodig om de zekering te herstellen.
Stap 3: Gebruik en toepassing
direct knipperen op breadboard
als u vusbtiny gebruikt om 8-pins AVR-apparaten te flashen, kunt u uw doelapparaat gewoon op het programmeerapparaat drukken. de programmeur was zo ontworpen dat de programmeerpinnen overeenkomt met doelen. er is echter één truc, je moet pin 2 en 3 op de programmer-mcu isoleren, omdat dit de USB D + en D- pinnen zijn die op de pc zijn aangesloten. ik gebruik hiervoor een stukje plakband, dat zie je op de foto's. hieronder zie je een tiny13v "rijden" op de tiny45, klaar om firmware te ontvangen.
ISP knippert via jumper
om een doelcircuit via ISP (in-system programming) te programmeren, hebt u een ISP-kabel nodig. hier gebruik ik niet de standaard 2x3 of 2x5 pin headers. in plaats daarvan gebruik ik een 1x6-jumper die meer breadboard-vriendelijk is, je kunt een 2x3- of 2x5-pinheader maken door ze toe te wijzen aan J2 zoals weergegeven op de breadboard-lay-out en -schema's. de volgende foto toont een tiny2313 klaar om te worden geflitst via ISP.
probleemoplossen
* kan de firmware niet flashen? controleer uw originele programmeur, misschien moet u de timing aanpassen via -B-vlag in avrdude. probeer chip 1e te lezen, kan een slechte zekering zijn, misschien heeft uw chip een extern kloksignaal nodig. het kan zijn dat u uw chip moet herstellen naar de standaardwaarde. * controleer de verbindingen * als u verschillende io-pinnen gebruikt, controleer dan de code en verbindingen * u kunt zenerdiodes vervangen met 500 mw, 400 mw typen * u kunt proberen de R3-waarde te verlagen tot 1,2 K of minder * u heeft meer kans op avrdude timingproblemen, probeer -B vlag van avrdude, een kortere USB-kabel helpt allemaal
Aanbevolen:
JDM Programmer Review: 9 stappen
JDM Programmer Review: JDM is een populaire PIC-programmeur omdat het een seriële poort gebruikt, een absoluut minimum aan componenten en geen voeding nodig heeft. Maar er is verwarring daarbuiten, met veel programmeervariaties op het net, welke werken met welke PIC's? In deze “instru
Arduino als ISP -- Hex-bestand branden in AVR -- Zekering in AVR -- Arduino als programmeur: 10 stappen
Arduino als ISP || Hex-bestand branden in AVR || Zekering in AVR || Arduino als programmeur:…………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's…….. Dit artikel gaat helemaal over arduino als isp. Als u een hex-bestand wilt uploaden of als u uw zekering in AVR wilt plaatsen, hoeft u geen programmeur te kopen, u kunt dit doen
(bijna) Universal MIDI SysEx CC Programmer (en Sequencer): 7 stappen (met afbeeldingen)
(bijna) Universal MIDI SysEx CC Programmer (en Sequencer…): Halverwege de jaren tachtig begonnen synths-fabrikanten een "less is better" proces dat leidde tot barebones-synths. Dit zorgde voor een verlaging van de kosten aan de kant van de fabrikant, maar maakte het patchproces vervelend, zo niet onmogelijk voor het uiteindelijke gebruik
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter met behulp van een Raspberry Pi: 10 stappen
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter Een Raspberry Pi gebruiken: stapsgewijze handleiding voor het instellen van Raspbian en communiceren met een SPI-apparaat met behulp van de bcm2835 SPI-bibliotheek (NIET bit-banged!) Dit is nog steeds heel voorlopig… Ik moet betere foto's van de fysieke aansluiting toevoegen en een aantal lastige code doornemen
5 Transistor PIC Programmer * Schematisch toegevoegd aan stap 9!: 9 stappen
5 Transistor PIC Programmer *Schema toegevoegd aan Stap 9!: Maak uw eigen PIC programmer voor de parallelle poort van uw computer. Dit is een variatie op het klassieke ontwerp van David Tait. Het is zeer betrouwbaar en er is gratis goede programmeersoftware beschikbaar. Ik hou van IC-Prog en PICpgm programmeur. Het beste van alles is dat het