Arduino flasher 3.3v

From flashrom
Revision as of 15:56, 16 March 2017 by GNUtoo (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This wiki is retired

Our website is https://www.flashrom.org, instructions on how to add or update documentation are here

All wiki content available in read-only mode at wiki.flashrom.org

Introduction

This explains how to:

  • Easily lower the voltage of an arduino
  • Use that arduino to flash a coreboot image on a GM45 Thinkpad with a SOIC16 chip

It requires:

  • An AVR Arduino at 5v
  • An USB<->Serial adapter capable of providing enough current to power up:
    • The arduino
    • The flash chip
    • The circuits around the flash chip

It was tested with:

  • An Arduino.org "nano version 3.3"
  • A Sparkfun "FTDI Basic 3v3" (Uses an FTDI FT232R)

HOWTO

  • Flash the Arduino with frser-duino and lower the serial port speed to 115200
# make u2
# BLBAUD=57600 SERIAL_DEV=/dev/ttyUSB0 make program
  • Connect the FTDI adapter to RX and TX of the arduino
  • Connect the 3V3 of the FTDI adapter to the 5V pin of the Arduino
  • Connect the GND of the FTDI adapter to the GDN of the arduino.
  • Get an USB cable and don't connect it to the computer
  • Connect it to the FTDI adapter
  • If you use a clip (Like a SOIC-8 or SOIC16 Pomona clip), connect it to the arduino
  • Connect the chip to the clip, or if you don't use a clip, the chip to the arduino
  • Connect the USB cable to the computer.

Flashing

  • Run flashrom like that:
flashrom -p serprog:dev=/dev/ttyUSB0:115200

Research and thanks

  • At 3.3V setup doesn't work with frser-duino default settings (make ftdi && make flash-ftdi)
  • Thanks a lot to SwiftGeek on IRC (#libreboot on Freenode) for finding and explaning to me how to workaround it
  • I still need to understand why it works when lowering the clock, it is probably related to the crystal. I need to look in the atmega328P datasheet to understand.