Update Hardware SPI & UEXT page

This commit is contained in:
Gauthier Provost 2020-04-16 16:38:20 +08:00
parent 7289d6931e
commit a88f4186b8
8 changed files with 27 additions and 68 deletions

View file

@ -76,7 +76,7 @@ This I2C device works with 3 pin bus (SDA, SCL, and GND), and also in band addre
### UEXT Header (P2) ### UEXT Header (P2)
The I2C Bus 7 can be found on the UEXT header (P2). The I2C Bus 7 can be found on the [UEXT header (P2)](/helios64/uext).
![P2 Location](/helios64/img/i2c/uext.jpg) ![P2 Location](/helios64/img/i2c/uext.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,28 +1,20 @@
!!! notice RK3399 has 6x SPI controllers with the following features:
***Preliminary Info***
RK3399 has SPI controller with following features:
- 6 on-chip SPI controllers
- Support master and slave mode, software-configurable - Support master and slave mode, software-configurable
- DMA-based or interrupt-based operation - DMA-based or interrupt-based operation
- Embedded two 32x16bits FIFO for TX and RX operation respectively - Embedded two 32x16bits FIFO for TX and RX operation respectively
On Helios64 the bus are divided into three types: unused, system (internal bus) and user application (external) On Helios64, the buses are divided into three types: *Not Available*, *System* (internal bus) and *User* (external bus).
| Bus | Usage | Remarks | | Bus | Usage | Remarks |
|-----|-------|-----------| |-----|-------|-----------|
| 0 | Not Used | | | 0 | Not Available | |
| 1 | System | Bootable SPI Flash | | 1 | System | Bootable SPI Flash |
| 2 | External | User Application | | 2 | User | User Application |
| 3 | Not Used | | | 3 | Not Available | |
| 4 | Not Used | | | 4 | Not Available | |
| 5 | System | Reserved for Production use only | | 5 | System | Reserved for Production use only |
## Internal Bus ## Internal Bus
| Bus | Chip Select | Device | Remarks | | Bus | Chip Select | Device | Remarks |
@ -30,7 +22,6 @@ On Helios64 the bus are divided into three types: unused, system (internal bus)
| 1 | 0 | W25Q128JV | Bootable SPI Flash | | 1 | 0 | W25Q128JV | Bootable SPI Flash |
| 5 | 0 | W25X20CL | SATA Controller ROM | | 5 | 0 | W25X20CL | SATA Controller ROM |
### Bootable SPI Flash ### Bootable SPI Flash
Helios64 is equipped with [Winbond W25Q128JV 3V 128M-Bit Serial Flash Memory](https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q128JV) Helios64 is equipped with [Winbond W25Q128JV 3V 128M-Bit Serial Flash Memory](https://www.winbond.com/hq/product/code-storage-flash-memory/serial-nor-flash/?__locale=en&partNo=W25Q128JV)
@ -38,15 +29,14 @@ as a Bootable SPI NOR Flash.
This flash contains This flash contains
- preloader & bootloader - Preloader & bootloader
| Binaries | Offset | Remarks | | Binaries | Offset | Remarks |
|----------|--------|---------| |----------|--------|---------|
| Preloader | 0x0040 | U-Boot TPL & SPL | | Preloader | 0x0040 | U-Boot TPL & SPL |
| Bootloader | 0x4000 | U-Boot & ATF | | Bootloader | 0x4000 | U-Boot & ATF |
- electronic nameplate data in Security Register - Electronic nameplate data in Security Register
## External Bus ## External Bus
@ -54,7 +44,9 @@ This flash contains
|-----|-------------|---------| |-----|-------------|---------|
| 2 | 0 | User Application | | 2 | 0 | User Application |
SPI Bus for user application is exposed on [UEXT Connector (P2)](/helios64/uext) SPI Bus for user application is exposed on [UEXT header (P2)](/helios64/uext)
![P2 Location](/helios64/img/spi/uext.jpg)
![!UEXT](/helios64/img/spi/spi_on_uext.png) ![!UEXT](/helios64/img/spi/spi_on_uext.png)
@ -65,19 +57,4 @@ SPI Bus for user application is exposed on [UEXT Connector (P2)](/helios64/uext)
| 9 | SCK | | 9 | SCK |
| 10 | SSEL | | 10 | SSEL |
The pin voltage level is 3.3V **Note:** The pin voltage level is 3.3V.
## Usage in Linux
### Enable SPIDEV in device tree
To make SPI device accessible by user space application, we need to create a device tree node.
After the node has been created, user application can access the device at
`/dev/spidev5.0`
!!! note
*To Be Updated*

View file

@ -1,27 +1,16 @@
## UEXT overview Helios64 has one UEXT (Universal-Extension-Connector) header which exposes 3 serial communication interfaces into a single header:
the development boards so customer can choose which feature he want to use.
UEXT (Universal-Extension-Connector) is board to board connector which support 3 serial communication interface, such as I2C, SPI, RS232. * I2C
The combination of theese feature is supported by every decent microcontroller, this will enable broad choice to connect modules. * SPI
UEXT gives you freedom to choose module that you want to use. * RS232 (UART)
!!! Notice
As UEXT have RS232 and the Rx and Tx signals should be crossed we can say that UEXT on the board is with HOST; UEXT on the module is with SLAVE/DEVICE layout.
![P2 Location](/helios64/img/uext/uext.jpg)
## Pinout Table ## Pinout Table
Helios64 provides UEXT on header P2 which following the UEXT standard, containing UEXT, SPI, and I2C connector.
You can find the P2 header from the connector/interface list at [hardware overview](/helios64/hardware) page.
Please find this location of UEXT header: ![P2 Pinout](/helios64/img/uext/uext_pinout.jpg)
![P2 Location](/helios64/img/uext/UEXT_zoom.jpg) Below is the full pinout of the UEXT header:
The pinout of the above P2 header is decribed by following figures:
![P2 Pinout](/helios64/img/uext/UEXT_pinout.png)
Below is the detailed description of UEXT header pinout:
| PIN | Port | Remarks | | PIN | Port | Remarks |
|-----|------|-------------| |-----|------|-------------|
@ -37,25 +26,18 @@ Below is the detailed description of UEXT header pinout:
|10 | SSEL (SPI) | | |10 | SSEL (SPI) | |
!!! Warning !!! Warning
Please note the UEXT connector at Helios64 board doesn't provide the plastic covering, so be carefull with the header polarity! Be careful with the header polarity when connecting.
Make sure your device is correctly oriented before connecting!
## SPI and I2C ## SPI & I2C
The implementation of SPI and I2C in the UEXT connector is follow similar convention in the Helios64 board. Please refer to this page: Refer to the respective pages directly:
- [SPI](/helios64/hardware/) - [SPI](/helios64/hardware/)
- [I2C](/helios64/I2C/) - [I2C](/helios64/I2C/)
## RS232 (UART)
## Exception The UART bus exposed on the UEXT header is the same than the RK3399 SoC serial console exposed on the USB Type-C. There is no dedicated UART bus on the UEXT connector. The intention is to allow user to connect to SoC serial console by another way than the USB-to-Serial bridge.
We have connected the UART bus from the RK3399 to the serial console in the USB-C, so there is no dedicated line of UART in the UEXT connector. !!! Important
The UART bus in this UEXT header is the parallel ones with the serial console. If you connect some modules which might require dedicated serial UART line to the SoC, this module will not operate properly.
Therefore if you connect some module which might ***require dedicated serial UART line*** to the RK3399, this module ***will not function as expected***.
!!! Notes
Please note also, that GPS modules in UEXT format also will not work due to similar reason.
## References
https://www.olimex.com/Products/Modules/UEXT/