Difference between revisions of "Flashing"

From Ethersex_Wiki
Jump to: navigation, search
(rearranged page, removed confusing/dangerous fuse settings, remove liveCD option (currently not available!))
(more changes, this page should be generic - not netio-only)
 
Line 1: Line 1:
 
{{i18n|Flashing}}
 
{{i18n|Flashing}}
  
= Flash AVR Net-IO with "ATMEL Evaluations-Board" made by Pollin=
+
= Flashing ethersex =
  
As a beginner it's difficult to understand everything in terms of flashing.
+
This guide assumes that you have a NETIO, made and produced by [http://www.pollin.de Pollin], however every
And it's also difficult to find all information.
+
step should also work with any other board supported by ethersex.
  
 
== What's needed? ==
 
== What's needed? ==
 
* AVR Net-IO
 
* AVR Net-IO
* ATMEL Evaluation-Board
+
* an ISP Programmer, again we assume it the ATMEL Evaluation-Board made by [http://www.pollin.de Pollin]
* a 1 on 1 Cable for the [[ISP]]-Port (10-pin Connector).
+
* an 1-to-1 Cable for the [[ISP]]-Port (10-pin Connector).
  
 
=== Other ISP Programmers ===
 
=== Other ISP Programmers ===
  
If you have a ISP-Programmer with 6-pin port you can create an adaptor. You can see the pin configuration in figure 4-1 at page 5 [http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf AVR042: AVR Hardware Design Considerations].
+
If you have a ISP-Programmer with 6-pin port you can create an adapter. You can see the pin configuration in figure 4-1 at page 5 [http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf AVR042: AVR Hardware Design Considerations].
  
 
Warning: Pin 4 of the 10-pin connector is not used on the Net-IO. GND has to be connected to one of the other Pins (6, 8 or 10)
 
Warning: Pin 4 of the 10-pin connector is not used on the Net-IO. GND has to be connected to one of the other Pins (6, 8 or 10)
  
 
== Flashing with Linux ==
 
== Flashing with Linux ==
*Connect the 10-pin Cable to the ISP-Connector.
+
* Connect the 10-pin Cable to the ISP-Connector.
*Plug in the power adaptor of the AVR Net-IO.
+
* Plug in the power adapter of the AVR Net-IO.
*If everything is connected right, the yellow LED of the Evaluation-Board is shining.
+
* If everything is connected right, the yellow LED of the Evaluation-Board is shining.
  
 
=== Setting the FUSE-Bits ===
 
=== Setting the FUSE-Bits ===
Line 31: Line 31:
 
=== Flashing the Image ===
 
=== Flashing the Image ===
  
After compiling the ethersex.hex you can flash it with avrdude. The following commands depend on your ISP-Programmer. This example is for a serial connection:
+
After compiling the ethersex.hex you can flash it with avrdude. The following commands depend on your ISP-Programmer. This example is for a serial connection (e.g. the ATMEL Evaluation-Board):
  
 
   avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex  
 
   avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex  

Latest revision as of 17:31, 9 July 2013

Flashing ethersex

This guide assumes that you have a NETIO, made and produced by Pollin, however every step should also work with any other board supported by ethersex.

What's needed?

  • AVR Net-IO
  • an ISP Programmer, again we assume it the ATMEL Evaluation-Board made by Pollin
  • an 1-to-1 Cable for the ISP-Port (10-pin Connector).

Other ISP Programmers

If you have a ISP-Programmer with 6-pin port you can create an adapter. You can see the pin configuration in figure 4-1 at page 5 AVR042: AVR Hardware Design Considerations.

Warning: Pin 4 of the 10-pin connector is not used on the Net-IO. GND has to be connected to one of the other Pins (6, 8 or 10)

Flashing with Linux

  • Connect the 10-pin Cable to the ISP-Connector.
  • Plug in the power adapter of the AVR Net-IO.
  • If everything is connected right, the yellow LED of the Evaluation-Board is shining.

Setting the FUSE-Bits

  • Calculate the correct FUSE bits for your controller/setup - you can use http://www.engbedded.com/fusecalc/ for that
  • Important: in the condition as supplied the 644 is programmed to 8 MHz internal RC-Oscillator and the clock is divided by 8 -> 1 MHz clock speed. If an external Quarz is used, the Bit CKDIV8 has to be set to 0. Also make sure that you leave Serial program downloading (SPI) enabled!
  • Connect the ISP and the power.
  • Set the FUSE-Bits with avrdude
  • Reset the controller

Flashing the Image

After compiling the ethersex.hex you can flash it with avrdude. The following commands depend on your ISP-Programmer. This example is for a serial connection (e.g. the ATMEL Evaluation-Board):

 avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex 

For a USB-ISP-Programmer this command should be used:

 avrdude -v -p m32 -c stk500v2 -P /dev/ttyACM0 -U flash:w:ethersex.hex

For a parallel ISP-Cable:

 avrdude -p m32 -e -c stk200 -U flash:w:ethersex.hex

Parameters for MyAVR mySmartusb light (the -e is important):

 avrdude -p m32 -e -c stk500v2  -P /dev/ttyUSB0 -U flash:w:ethersex.hex

After flashing remove the ISP-Cable and interrupt the power connection for a short time to reboot the board.

 * -p m32: ATMega32; -p m644: ATMega644
 * -v: display debug messages 
 * -c ponyser: the way avrdude speaks with the Evaluation Board; -c stkk500v2 for the Atmel board
 * -P /dev/tty.serial the serial port your programmer is connected to; -P COM1 for windows machines
 * -U the command you want to execute. In our case we want to flash: -U flash:w:ethersex.hex

Replace ATMega32 with an ATMega644, ATMega644p or ATMega1284p

ATMega644, ATMega644p and ATMega1284p have got a bigger flash then the ATMega32. This gives the possibility to add more modules to your Image.

Swapping the Microcontroller

  • Disconnect power and ISP-Connector.
  • Remove the old processor from your board.
  • Insert the new processor while the slot is at the same position as in the socket.

Differences between ATMega32, ATMega644, ATMega644p and ATMega1284p

ATMega32 ATMega644 ATMega644p ATMega1284p
Housing DIL-40 DIL-40 DIL-40 DIL-40
MHz max. 16 max. 20 max. 20 max. 20
Flash 32 KB 64 KB 64 KB 128 KB
EEProm 1 KB 2 KB 2 KB 4 KB
RAM 2 KB 4 KB 4 KB 16 KB
I/O 32 32 32 32
PWM 4 6 6 6
ext. INT 3 32 32 32
Ser-Port 1 1 2 2

Datasheets

Flashing with Windows

There a two main possibilities:

  1. Flash with avrdude
  2. Flash with AVR Studio

Flashing with avrdude

The flashing with avrdude is just like in Linux.

You can get the Windows-Binary as a part of WinAVR

In the command line you have to adjust the name of the serial Ports. (COMx instead of /dev/ttyxx)

avrdude -v -p m32 -c ponyser -P com3 -U flash:w:ethersex.hex 

If the programmer is connected via USB you need:

  • for real USB-Programmers: libusb0.dll (Part of WinAVR)
  • USB-to-Serial Converter a matching Driver: [1]

Flashing with AVR Studio

AVR Studio from Atmel offers a GUI to Controll the ISPs.

AVR Studio also brings USB-Drivers for the Programmers with it, which can be installed together with it.

For USB-to-Serial converters you need a matching Driver: [2]