AVRUSBboard - udviklingsboard med USB
AVRUSBboard er et udviklingsboard baseret på en AVR ATmega8 / ATmega168 / ATmega328 MCU som kan kommunikere direkte med USB med en PC eller anden host. Boardet kan både programmeres, kommunikere og forsynes med strøm via USB. Programmeringssproget i følgende eksempler er C.
Projektet er open source under GNU General Public License - læs nærmere her www.gnu.org/licenses/gpl.html. Projektet er oplagt til hobbyentusiaster. Det er muligt at videreudvikle på både software og diagram. Diagrammet og C-kodeeksempler kan downloades fra denne side.
Specifikationer
- MCU: ATmega8-16PU, ATmega168-20PU eller ATmega328P-PU (muligvis andre pin-kompatible i 28-pin DIP-sokkel).
- Kan køre på krystal eller intern oscillator ved 12 MHz, 12.8 MHz, 15 MHz, 16 MHz, 16.5 MHz 18 MHz eller 20 MHz for at overholde USB-kommunikationens timingkrav.
- LCD-display DEM16216 (2 x 16 karaktere). Baggrundsbelysningen kan tændes og slukkes fra software. Kontrasten kan justeres via lille potentiometer.
- 3x push-buttons til brugerinput.
- 1x grøn lysdiode til at indikere boardets status mv. Styrbar via software.
- FC-10P connector til 6x I/O-pins (UART, TWI/I2C, optil 4 ADC-kanaler, eller normale I/O-pins) samt +5 VDC og GND.
- USB-B-stik (hun). Boardet benyttes som USB 1.1 low-speed device (1.5 Mbps) og forbindes med en host som typisk er en almindelig PC.
- Boardet kan enten forsynes fra USB-porten (5 VDC) eller eksternt via 2-pin stik og spændingsregulator med 6-30 VDC. Boardet må ikke forsynes fra disse samtidigt da det potentielt kan skade din USB-port!
- Strømforbrug fra USB-port til boardet alene: Antaget til ca. 25 mA (LCD-baggrundslys slukket) og ca. 125 mA (LCD-baggrundslys tændt) med test-softwaren nedenfor. Er ikke verificeret endnu!
- Dimensioner af boardet: 100 x 40 mm. Max-højde er 25 mm inkl. LCD, men eksl. eventuel påmonteret bundplade.
Diagram
Kredsløbsdiagrammet til boardet kan ses nedenfor og downloades som PDF.
Download Schematic Diagram
AVRUSBboard_Schematic_Diagram.pdf [Downloads: 2383]- Hvis boardet kun ønskes forsynet via USB kan hele blokken »Power Supply (External)« udelades fra kredsløbet. Man kan f.eks. blot undlade at montere disse komponenter og beholde muligheden.
- I nogle situationer kan det være nødvendigt med afkobling af de tre knapper med en 10 nF kondensator fra hver af forbindelserne PSH1, PSH2 og PSH3 til ground og placeret tæt på ATmega’en.
USB-programmering
Til programmering med USB benyttes en let tilpasset udgave af open source-bootloaderen BootloadHID fra Objective Development. Bootloaderen benytter de indbyggede drivere til HID class devices, hvilket ikke kræver installering af driver på Windows eller Linux. Bootloaderen startes ved at holde trykknap SW1 nede når boardet startes (typisk når USB-stikket forbindes med en PC). Brugerprogrammet startes hvis knappen ikke holdes nede ved opstart. Download den tilpassede BootloadHID C-kode her:
Download Bootloader C-code
AVRUSBboard_BootloadHID.rar [Downloads: 2209]SHA1: bc2fcdeebbae458abdd4b8d6b17e8defa34d402d
Til at overføre hex-filer til ATmega’en kan f.eks. benyttes HIDBootFlash. Filer overføres enten fra en kommandopromt, en bat-fil eller simpel GUI (ved blot at dobbeltklikke filen).
Til at programmere bootloaderen på en ny ATmega (engangsopsætning) er det nødvendigt at benytte en ICSP-programmer (gerne med en 28-pin DIP-testsokkel). En mulighed er at bygge sin egen, se USBasp - USB programmer for Atmel AVR controllers.
USB-kommunikation
Til kommunikation med USB benyttes open source driveren fra Objective Development V-USB hvor boardet er et HID class device og derfor ikke kræver installering af driver.
Til at compile firmwaren kan på Windows benyttes WinAVR - AVR-GCC for Windows eller AVR Studio.
Til at compile hostwaren på Windows benyt MinGW - Minimalist GNU for Windows.
En mulighed er også et custom class device sammen med libusb-win32, hvilket kræver installering af driver, men giver en større grad af frihed. For mere information læs vusb.wikidot.com/usb-device-classes.