docs: Move Mega 2560 information to separate file
Make a more comprehensive document describing the Mega 2560 and FPC breakout board.
This commit is contained in:
parent
babcc970c4
commit
2414476a66
@ -13,27 +13,12 @@ external USB keyboard or SSH session.
|
|||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
- Arduino Mega 2560 compatible board
|
- Arduino Mega 2560 compatible board
|
||||||
- 24 pin flexible printed circuit
|
- 24 pin FPC breakout board and cables
|
||||||
- 0.5mm or 1.0mm pitch, depending on target connector
|
- 0.5mm or 1.0mm pitch, depending on target connector
|
||||||
- 24 pin FPC breakout board with connectors
|
|
||||||
- USB-C cable
|
- USB-C cable
|
||||||
|
|
||||||
### Configuring the Mega 2560
|
For details on configuring the Mega 2560 and breakout board, see
|
||||||
|
[mega2560](./mega2560.md).
|
||||||
If the breakout board did not come preassembled, assemble it before
|
|
||||||
starting. This will require soldering.
|
|
||||||
|
|
||||||
1. Connect the breakout board to the Mega 2560
|
|
||||||
- Orientation will affect the mapping of GPIO pins
|
|
||||||
2. Connect the Mega 2560 to the host
|
|
||||||
3. Configure GPIO pin mapping in `parallel.c` based on how it will
|
|
||||||
connect to the target parallel port
|
|
||||||
- Trace pin 1 on motherboard connector to Mega's GPIO pins
|
|
||||||
4. Build and flash the firmware for the Mega 2560
|
|
||||||
```
|
|
||||||
make BOARD=arduino/mega2560
|
|
||||||
make BOARD=arduino/mega2560 flash
|
|
||||||
```
|
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
@ -44,10 +29,10 @@ make BOARD=arduino/mega2560 flash
|
|||||||
3. Remove bottom panel
|
3. Remove bottom panel
|
||||||
4. Unplug keyboard cable
|
4. Unplug keyboard cable
|
||||||
- May require removing keyboard depending on port location
|
- May require removing keyboard depending on port location
|
||||||
5. Connect Mega 2560 to host
|
5. Ground target to host
|
||||||
- This will create an ACM device at `/dev/ttyACM*`
|
|
||||||
6. Ground target to host
|
|
||||||
- Connect USB cable from USB-C port on target to host
|
- Connect USB cable from USB-C port on target to host
|
||||||
|
6. Connect Mega 2560 to host
|
||||||
|
- This will create an ACM device at `/dev/ttyACM*`
|
||||||
7. Connect Mega 2560 to target
|
7. Connect Mega 2560 to target
|
||||||
8. Start the console
|
8. Start the console
|
||||||
```
|
```
|
||||||
@ -57,7 +42,7 @@ make BOARD=system76/<model> console_external
|
|||||||
EC logs should now print to the console on the host. This can be tested
|
EC logs should now print to the console on the host. This can be tested
|
||||||
by removing or inserting the AC adapter to trigger a power event.
|
by removing or inserting the AC adapter to trigger a power event.
|
||||||
|
|
||||||
To return the Mega to host mode, reset the device.
|
To return the Mega 2560 to host mode, reset the device.
|
||||||
|
|
||||||
If logs are corrupted, try power cycling the Mega or reseating the cable.
|
If logs are corrupted, try power cycling the Mega or reseating the cable.
|
||||||
|
|
||||||
|
72
doc/mega2560.md
Normal file
72
doc/mega2560.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Mega 2560
|
||||||
|
|
||||||
|
The Mega 2560 is the recommended tool for EC flashing and debugging.
|
||||||
|
|
||||||
|
The Mega 2560 is an open-source hardware design by [Arduino] based on the 8-bit
|
||||||
|
Atmel ATmega2560. Arduino's official model sells for around 40 USD. Multiple
|
||||||
|
clones exist, and can be bought for around 15 USD.
|
||||||
|
|
||||||
|
## Clone compatibility
|
||||||
|
|
||||||
|
Multiple clones of the Arduino Mega 2560 exist. Clones can be used, but must be
|
||||||
|
compatible with the Arduino model. Some have replaced the ATmega16U2 chip used
|
||||||
|
for USB communication with a CH340G chip. If it does not explicitly state that
|
||||||
|
it uses the ATmega16U2, find a different model.
|
||||||
|
|
||||||
|
## FPC breakout board
|
||||||
|
|
||||||
|
A flexible printed circuit (FPC) breakout board is required. It should have:
|
||||||
|
|
||||||
|
- 24 pins with 0.1" (2.54mm) pitch
|
||||||
|
- One side with 0.5mm pitch FPC connector (for lemp9)
|
||||||
|
- One side with 1.0mm pitch FPC connector (for all other models)
|
||||||
|
|
||||||
|
Depending on the vendor, the connectors may not come soldered to the board (or
|
||||||
|
at all). A header block will likely not be be provided, so male breakaway
|
||||||
|
headers will need to be purchased separately.
|
||||||
|
|
||||||
|
### Connecting to the Mega 2560
|
||||||
|
|
||||||
|
The FPC board should be assembled so the 1.0mm pitch connector faces up. When
|
||||||
|
connected to the Mega 2560, the FPC connector should face away from the Mega
|
||||||
|
2560. In this orientation, pin 1 of the FPC connector connects to pin 22 (PA0)
|
||||||
|
of the Mega 2560.
|
||||||
|
|
||||||
|
### Connecting to the laptop
|
||||||
|
|
||||||
|
A 24 pin flexible flat cable (FFC) is used to connect the Mega 2560 to the
|
||||||
|
laptop. It may be worth buying both a set of standard cables (traces exposed on
|
||||||
|
same side at each end) and reversed cables (traces exposed on opposite sides at
|
||||||
|
each end). With both, it will always be possible to have pin 1 of the breakout
|
||||||
|
board go to pin 1 of the keyboard port.
|
||||||
|
|
||||||
|
The orientation of the FFC traces can be determined by looking at how the
|
||||||
|
keyboard connects to its port.
|
||||||
|
|
||||||
|
The laptop keyboard may use a 26-pin connection. Ensure that the FFC is aligned
|
||||||
|
so the traces line up with pins 1-24 on the keyboard port.
|
||||||
|
|
||||||
|
A second cable (typically, USB-C) must be used for grounding the target laptop
|
||||||
|
to the host system (what the Mega 2560 is connected to).
|
||||||
|
|
||||||
|
## Firmware
|
||||||
|
|
||||||
|
`mega2560/parallel.c` must be modified for the mapping of the keyboard pins to
|
||||||
|
the GPIO pins.
|
||||||
|
|
||||||
|
- [Arduino Mega 2560 pin mapping][PinMapping2560]
|
||||||
|
|
||||||
|
Using the orientation described above, pin 1 of the keyboard maps to
|
||||||
|
|
||||||
|
- pin 22 (PA0) of the Mega 2560 when using the 1.0mm pitch connector
|
||||||
|
- pin 45 (PL4) of the Mega 2560 when using the 0.5mm pitch connector
|
||||||
|
|
||||||
|
Once the GPIO mapping is updated, the firmware can be compiled and flashed.
|
||||||
|
|
||||||
|
```
|
||||||
|
make BOARD=arduino/mega2560
|
||||||
|
make BOARD=arduino/mega2560 flash
|
||||||
|
```
|
||||||
|
|
||||||
|
[Arduino]: https://www.arduino.cc/
|
||||||
|
[PinMapping2560]: https://www.arduino.cc/en/Hacking/PinMapping2560
|
Loading…
x
Reference in New Issue
Block a user