Monday 26 October 2009

USB Keyboard by Microcontroller with Embedded Hub Circuit

The Atmel sample version of the AT43USB326 contains firmware
that supports customization of the Vendor ID, Product ID,
String Descriptor and the keyboard matrix. This information
is stored in an external AT24C02A serial EEPROM.




The Atmel AT43USB326 is an 8-bit microcontroller based on the
AVR RISC architecture. By executing powerful instructions in
a single clock cycle, the AT43USB326 achieves throughputs
approaching 12 MIPS. The AVR core combines a rich instruction
set with 32 general-purpose working registers. All 32 registers
are directly connected to the ALU allowing two independent
registers to be accessed in one single instruction executed in
one clock cycle. The resulting architecture is more code efficient
while achieving throughputs up to ten times faster than
conventional CISC microcontrollers.

Features
• AVR® 8-bit RISC Microcontroller with 83 ns Instruction Cycle Time
• USB Hub with One Attached and Two External Ports
• USB Keyboard Function with Three Programmable Endpoints
• 16 KB Program Memory, 512 Bytes Data SRAM
• 32 x 8 General-purpose Working Registers
• 32 Programmable I/O Port Pins
• Support for 18 x 8 Keyboard Matrix
• Keyboard Scan Inputs with Pull-up Resistor
• Four LED Driver Outputs
• One 8-bit Timer/Counter with Separate Pre-scaler
• External and Internal Interrupt Sources
• Programmable Watchdog Timer
• 6 MHz Oscillator with On-chip PLL
• 5V Operation with On-chip 3.3V Power Supply
• 48-lead LQFP Package

http://www.atmel.com/dyn/resources/prod_documents/doc3313.pdf

Read More......

Wednesday 8 April 2009

Programming the AVR microcontroller with GCC

The AVR 8-Bit RISC microcontroller from Atmel is a very common microcontroller. This microcontroller is one chip with EEPROM, Ram, Analog to Digital converter, a lot of digital input and output lines, timers, UART for RS 232 communication and many other things.
The best is however that a complete programming environment is available under Linux: You can program this microcontroller in C using GCC.


A lot of things have changed in the avr-libc development and the AT90S4433 microcontroller which I used in 2002 is no longer manufactured by Atmel. This is therefore an update of the March 2002 article. I will use libc-1.0.4 and the ATmega8 microcontroller.

This article shall be only an introduction and in a later series of articles we will again build interesting hardware but this time based on the ATmega8.
Many people where interested in microcontroller programming after the article which I wrote in 2002. However this first step to get the development environment up and running is the hardest. If something does not work then you have absolutely no clue where the fault is. Programmer cable wrong?? Circuit faulty? Installation incorrect? Parallelport disabled in bios? Kernel modules for ppdev compiled wrong? There can be a lot of reasons why things don't work

Read More......