Name:
=====
uart_boot_host
Description:
============
Converts UART Wired transfer commands to SPI for use with SBL SPI testing.
Purpose:
========
This example running on an intermediate board, along with the standard
uart_wired_update script running on host PC, can be used as a way to
communicate to Apollo3 SBL using SPI mode.
Printing takes place over the ITM at 1M Baud.
Additional Information:
=======================
PIN fly lead connections assumed:
HOST (this board) SLAVE (Apollo3 SBL target)
-------- --------
Apollo3 SPI or I2C common connections:
GPIO[2] GPIO Interrupt (slave to host) GPIO[4] GPIO interrupt
GPIO[4] OVERRIDE pin (host to slave) GPIO[16] Override pin or n/c
GPIO[17] Slave reset (host to slave) Reset Pin or n/c
GND GND
Apollo3 SPI additional connections:
GPIO[5] IOM0 SPI CLK GPIO[0] IOS SPI SCK
GPIO[6] IOM0 SPI MISO GPIO[2] IOS SPI MISO
GPIO[7] IOM0 SPI MOSI GPIO[1] IOS SPI MOSI
GPIO[11] IOM0 SPI nCE GPIO[3] IOS SPI nCE
Apollo3 I2C additional connections:
GPIO[5] I2C SCL GPIO[0] I2C SCL
GPIO[6] I2C SDA GPIO[1] I2C SDA
Reset and Override pin connections from Host are optional, but using them
automates the entire process.
SPI or I2C mode can be handled in a couple of ways:
- SPI mode is the default (i.e. don't press buttons or tie pins low).
- For I2C, press button2 during reset and hold it until the program begins,
i.e. you see the "I2C clock = " msg.
Alternatively the button2 pin can be tied low.
- Note that on the Apollo3 EVB, button2 is labelled as 'BTN4', which is
the button located nearest the end of the board.
Also on the Apollo3 EVB, BTN4 uses pin 19. It happens that the header
pin for pin 19 on the EVB is adjacent to a ground pin, so a jumper can
be used to assert I2C mode.
******************************************************************************