TS-7970 Silabs: Difference between revisions
(Fixups, clarification) |
No edit summary |
||
Line 1: | Line 1: | ||
The | The TS-7970 includes a supervisory microcontroller to provide 3 functions: | ||
* ADC channels | * ADC channels | ||
* Sleep Mode | * Sleep Mode | ||
* USB Console | * USB Console | ||
* RTC (REV H and beyond only) | |||
Prior to REV H boards, this was using a Silicon labs microcontroller, and on REV H and later this is using a Renesas Microcontroller. These behave the same, but the REV | |||
The USB console passes through the CPU's "ttymxc0" port using a CP201x driver. This is present on most Linux distributions. On Windows this is available with a WHQL signed driver from Silabs. | The USB console passes through the CPU's "ttymxc0" port using a CP201x driver. This is present on most Linux distributions. On Windows this is available with a WHQL signed driver from Silabs. | ||
The [[#RTC|RTC]] on REV E and earlier is an Intersil ISL12020. On REV H and beyond, the RTC functionality is provided by the Renesas Microcontroller using the same Register set as the intersil. While this is capable of keeping time and providing the same NVRAM functionality as the original part, it does not support the same temperature compensation as the original part. The actual intersil RTC part could achieve less than ±5ppm drift, while the Renesas microcontroller is less than ±35ppm. | |||
The microcontroller exists at address 0x10 on I2C bus 0 using 8-bit address and data. It can be read for up to 32 bytes to get the ADC values, and firmware revision. Our example code 'tsmicroctl -i' includes reading all the ADC channels in millivolts and the firmware revision. For example: | The microcontroller exists at address 0x10 on I2C bus 0 using 8-bit address and data. It can be read for up to 32 bytes to get the ADC values, and firmware revision. Our example code 'tsmicroctl -i' includes reading all the ADC channels in millivolts and the firmware revision. For example: |
Revision as of 11:50, 17 October 2022
The TS-7970 includes a supervisory microcontroller to provide 3 functions:
- ADC channels
- Sleep Mode
- USB Console
- RTC (REV H and beyond only)
Prior to REV H boards, this was using a Silicon labs microcontroller, and on REV H and later this is using a Renesas Microcontroller. These behave the same, but the REV
The USB console passes through the CPU's "ttymxc0" port using a CP201x driver. This is present on most Linux distributions. On Windows this is available with a WHQL signed driver from Silabs.
The RTC on REV E and earlier is an Intersil ISL12020. On REV H and beyond, the RTC functionality is provided by the Renesas Microcontroller using the same Register set as the intersil. While this is capable of keeping time and providing the same NVRAM functionality as the original part, it does not support the same temperature compensation as the original part. The actual intersil RTC part could achieve less than ±5ppm drift, while the Renesas microcontroller is less than ±35ppm.
The microcontroller exists at address 0x10 on I2C bus 0 using 8-bit address and data. It can be read for up to 32 bytes to get the ADC values, and firmware revision. Our example code 'tsmicroctl -i' includes reading all the ADC channels in millivolts and the firmware revision. For example:
# tsmicroctl -i VDD_ARM_CAP=1026 VDD_HIGH_CAP=2603 VDD_SOC_CAP=1239 VDD_ARM=1451 SILAB_P10=0x0 SILAB_P11=0x0 SILAB_P12=0x0 VIN=4779 V5_A=5189 V3P1=3230 DDR_1P5V=1559 V1P8=1904 V1P2=1259 RAM_VREF=778 V3P3=3522 SILABREV=1
In U-Boot, the 'tsmicroctl' command can be used (with no arguments) to read the same values.
The sleep mode is accessible from U-Boot with 'tsmicroctl <seconds>' and in Linux with 'tsmicroctl -s <seconds>'. This will power off everything on the board except the microcontroller. The blue LED will blink while it is in this mode.
The microcontroller samples all ADC channels in a scale of 0-2.5 V. The schematic shows the voltage dividers to bring the higher voltages it samples into this range.
Register | Description |
---|---|
0 | VDD_ARM_CAP MSB |
1 | VDD_ARM_CAP LSB |
2 | VDD_HIGH_CAP MSB |
3 | VDD_HIGH_CAP LSB |
4 | VDD_SOC_CAP MSB |
5 | VDD_SOC_CAP LSB |
6 | VDD_ARM MSB |
7 | VDD_ARM LSB |
8 | SILAB_P10 MSB |
9 | SILAB_P10 LSB |
10 | SILAB_P11 MSB |
11 | SILAB_P11 LSB |
12 | SILAB_P12 MSB |
13 | SILAB_P12 LSB |
14 | VIN MSB |
15 | VIN LSB |
16 | V5_A MSB |
17 | V5_A LSB |
18 | V3P1 MSB |
19 | V3P1 LSB |
20 | DDR_1P5V MSB |
21 | DDR_1P5V LSB |
22 | V1P8 MSB |
23 | V1P8 LSB |
24 | V1P2 MSB |
25 | V1P2 LSB |
26 | RAM_VREF MSB |
27 | RAM_VREF LSB |
28 | V3P3 MSB |
29 | V3P3 LSB |
30 | Firmware Revision |