FTDI ATmega

From BitWizard WIKI
Revision as of 17:13, 26 January 2012 by Rew (talk | contribs) (programming)

Jump to: navigation, search
FTDI-atmega Development Board
FTDI-atmega Development Board

The FTDI-atmega Development board is a general purpose development board. The PCB has an USB connector and a 20-pin IO connector. The brains of the PCB is an ATmega168 chip.
The FTDI-atmega development board comes completely assembled and ready to use. It can be ordered from the Bitwizard Catalog.


External resources

Datasheets

Related projects

pinout

The 20 pin connector is connected as follows

GNDGND
PC3PC2
PC1PC0
PB5PB4
PB3PB2
PB1PB0
PD7PD6
PD5PD4
PD3PD2
VCCVCC

LEDs

  • led1 is connected to VCC (the top one, called led2 on V7.0)
  • led2 is connected to CBUS0 (FT232RL) PC -> AVR activity
  • led3 is connected to CBUS1 (FT232RL) AVR -> PC activity
  • led4 is connected to PC4
  • led5 is connected to PC5

Arduino Pinout

When using the Arduino IDE, the layout of the header is as follows:

GNDGND
A3A2
A1A0
1312
1110
98
76
54
32
V+V+
  • Unlike a regular arduino, there are 2 onboard LED's, connected to pin A4 and A5. You can use those LED's with digitalWrite(A4,HIGH) for led 4, or A5 for led 5. This means pin 13 is free for regular use.
  • Pin 0 and 1 are used for the COM interface just like a regular arduino.
  • Pin 3, 5, 6, 9, 10 and 11 support PWM (analogWrite), just like a regular arduino.

Jumper settings

SV1 (next to the AVR): ICSP-Enable. CAUTION! Pin 1 and 2 are connected by a narrow PCB track. Cut this if you want to change this jumper setting.
1-2: ICSP enabled, SS connected to reset (programming the MCU over the 6-pin connector is enabled)
2-3: Default: SS connected to pin PB0 (MCU can function as an SPI slave or master, or as an ICSP programmer)

SV4 (next to the LEDs): Power supply selection.
No jumper: 3V3 > 90mA, extra regulator needs to be mounted.
1-2: Runs on 5V from USB
2-3: Runs on 3V3 from the FTDI chips internal regulator.

Use as a programmer

You can program the avrusb500 firmware into the board. The board will then act as an STK500V2 programmer at 115200 baud. Download the sources and/or the hexfile here: http://www.bitwizard.nl/avrusb500/

programming

This section describes how you get your program into the processor.

Linux

You can program the processor using any ICSP programmer that you might have. In that case, the jumper SV1 should then be in the upper position (away from the ICSP connector).

Or you can program it with the ftdi bitbang programmer included on the board.

Here is the documentation: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html

The ftdi-bitbang programmer-driver for avrdude is not included in the standard avrdude program. The reason is that the patch uses the ftdi library FTD2xx and not the open source libftdi.

In the avrdude bug tracking system another patch is doing the rounds, but that one is really slow because it doesn't exploit the ftdi's synchronous mode.

A precompiled avrdude version can be downloaded here: http://www.bitwizard.nl/avrdude.zip . The zipfile contains "quick and dirty" instructions to replace the avrdude binary in /usr/bin with a script so that when "arduino IDE" calls it, the program gets programmed into the board.

TODO: port the fast ftdi bitbang code to libftdi and submit to avrdude.

windows

See the linux section above.

writing programs

The chip is an ATmega168. http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf

future hardware enhancements

Provide a 3- or 4-pin header with the i2c pins (to communicate with wiimote and other peripherals). The leds need to be disabled for this to work. :-(

future software enhancements

  • Add a reset button

Changelog

7.1

  • Added decoupling capacitor for FTDI 3.3
  • Added SJ for arduino compatibility.

b7.0

  • Initial public release

Media

FTDI-Atmega Development Board programmed with Arduino software, used for temperature control on the curing process of an aircraft repair.