Arduino flasher 3.3v
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
- 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)
- 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.
- 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.