http://gitlab.keith-koep.com/tr8firmware/tr8_mcu
Default Firmware | ssh://git@gitlab.keith-koep.com:30001/tr8firmware/tr8_mcu.git | master |
The on-board Cortex M0+ Kinetis MCU on Trizeps 8 type modules is used for following functions: resistive touch, adc inputs, canbus, sdcard io-voltage selector, gpios and reset control with bootmode selection. It may be also used for realtime processing and power-management.
It is capable of reading multiple 16bit analog inputs (i.e. to emulate a resistive touch controller) and has a CAN-controller.
Programming
The MCU may be programmed through JTAG using connector J401 (see datasheet for details) or in system through I2C. In-System-Programming through I2C has not been verified yet.
Firmware
When the Trizeps VIII is equipped with a Kinetis MCU it will be used to control power-up and reset of the i.MX8M processor.
Customers may request access to the source-code of the firmware to modify it for their needs.
Default-Firmware
The following describes the current default-firmware.
After power-up the Kinetis MCU will:
Initialize itself
Configure the PMIC
Apply 32.786kHZ to processor and deassert RESET_OUT.
Enter control loop
In the control loop two functions are realized:
Control of Kinetis MCU functions through I2C (see below).
If the RESET_IN pin is asserted for more than 10s, enter USB serial download mode.
I2C-Address: 0x10 (7bit) | |||||
---|---|---|---|---|---|
Reg. | Name | Access | Description | Default-Value | |
0x01 | REG_ID | read | ID-Register | 0x61 | |
0x02 | REG_CONTROL | write | 0x01 Reset and boot from fuse (eMMC/internal uSD) 0x02 Reset and boot serial downloader (USB) | - | |
0x03 | REG_CONFIG1 | write | 0x01 If reset is pressed longer than 10s reboot into serial downloader (USB) | 0x01 | |
0x04 | REG_PIN_CONFIG | write | <SODIMM-Pin> <Parameters> Parameter for GPIO (Alt1): 1: Input 20: Output, init low level 21: Output, init high level | - | |
0x05 | REG_PIN_SET | write | <SODIMM-Pin> <level> | - | |
0x06 | REG_PIN_GET | write read | <SODIMM-Pin> Level of pin. | - | |
0x10 | ADC_CONFIG | write | <config> 0x.3 Resolution: 0: 8 bit 1: 10 bit 2: 12 bit 3: 16 bit | 2 | |
0x11 | ADC | write read | <SODIMM Pin> 0: Idle, 1: Busy, 0xFF: Failed, <SODIMM Pin>: Done | - | |
0x12 | ADC_LSB | read | [7:0] of value | - | |
0x13 | ADC_LSB | read | [15:8] of value | - | |
0x20 | TOUCH_CONFIG | write | <config> 0x3f PENDOWN trigger level 0..63 0x40 Enable Z measurement 0x80 Enable Touch | - | |
0x21 | TOUCH_WAITTIME | write | <mS> | Time for voltages to settle | 2 |
0x22 | TOUCH_XSCALE_LSB | write read | [7:0] of value to scale to (typ. x-screen-size). [7:0] of scaled x value. | (800) | |
0x23 | TOUCH_XSCALE_MSB | write read | [15:8] of value to scale to (typ. x-screen-size). [15:8] of scaled x value. | (800) | |
0x24 | TOUCH_YSCALE_LSB | write read | [7:0] of value to scale to (typ. y-screen-size). [7:0] of scaled y value. | (480) | |
0x25 | TOUCH_YSCALE_MSB | write read | [15:8] of value to scale to (typ. y-screen-size). [15:8] of scaled y value. | (480) | |
0x26 | TOUCH_XMIN_LSB | write read | [7:0] min raw x value for scaled x=0. [7:0] raw x value. | - | |
0x27 | TOUCH_XMIN_MSB | write read | [15:8] min raw x value for scaled x=0. [15:8] raw x value. | - | |
0x28 | TOUCH_YMIN_LSB | write read | [7:0] min raw y value for scaled y=0. [7:0] raw y value. | - | |
0x29 | TOUCH_YMIN_MSB | write read | [15:8] min raw y value for scaled y=0. [15:8] raw y value. | - | |
0x2A | TOUCH_XMAX_Z_LSB | write read | [7:0] max raw x value for scaled x=screen-size. [7:0] raw z value. | - | |
0x2B | TOUCH_XMAX_Z_MSB | write read | [15:8] max raw x value for scaled x=screen-size. [15:8] raw z value. | - | |
0x2C | TOUCH_YMAX_LSB | write | [7:0] min raw y value for scaled y=screen-size. | - | |
0x2D | TOUCH_YMAX_MSB | write read | [15:8] min raw y value for scaled y=screen-size. | - | |
0x2E | TOUCH_AVERAGE | write | Number of samples to get for each position-measurement | 20 | |
0xF0 - 0xFF | VERSION | read | Zero terminated version string |
Alternate Function | |||||||||
---|---|---|---|---|---|---|---|---|---|
SODIMM Pin | Name | Alt0 | Alt1 | Alt2 | Alt3 | Alt4 | Alt5 | Alt6 | Alt7 |
2 | VIN_AD3 | ADC0_SE7, ADC1_SE7, ADC1_DM1 | PTE19 | SPI0_SIN | UART1_RTS | I2C0_SCL | SPI0_SOUT | ||
4 | VIN_AD2 | ADC0_SE6, ADC1_SE1, ADC1_DP1 | PTE18, LLWI_P20 | SPI0_SOUT | UART1_CTS | I2CS0_SDA | SPI0_SON | ||
6 | VIN_AD1 | ADC0_DM1, ADC0_SE5, ADC1_SE5 | PTE17, LLWU_P19 | SPI0_SCK | UART1_RX | FTM_CLKIN1 | LTMR0_ALT3 | ||
8 | VIN_AD0 | ADC0_SE1, ADC0_DP1, ADC1_SE0 | PTE16 | SPI0_PCS0 | UART1_TX | FTM_CLKIN0 | FTM0_FLT3 | ||
14 | TSPX | ADC0_SE8, ADC1_SE8 | PTB0, LLWU_P5 | I2C0_SCL | FTM1_CH0 | FTM1_QD_PHA | UART0_RX | ||
16 | TSMX | ADC0_SE9, ADC1_SE9 | PTB1 | I2C0_SDA | FTM1_CH1 | FTM0_FLT2 | EWM_IN | FTM1_QD_PHB | UART0_TX |
18 | TSPY | ADC0_SE11, CMP1_IN0 | PTC2 | SPI0_PCS2 | UART1_CTS | FTM0_CH1 | FTM2_CH1 | ||
20 | TSMY | ADC1_SE4, CMP1_IN4, DAC0_OUT | PTE30 | FTM0_CH3 | FTM_CLKIN1 | ||||
87 | nRESET_OUT | PTC5, LLWU_P9 | SPI0_SCK | LPTMR0_ALT2 | CMP0_OUT | FTM0_CH2 | |||
97 | CAN1_RX | PTE25, LLWU_P21 | CAN0_RX | FTM0_CH1 | I2C0_SDA | EWM_IN | |||
99 | CAN1_TX | PTE24 | CAN0_TX | FTM0_CH0 | I2C0_SCL | EWM_OUT |
PTx: GPIO
LLWU: Wakeup-Sources
EWM: External Watchdog Monitor
FTM: Flexible Timer Module
FTM_CH: Output Channel
FTM_FLT: Fault
FTM_QD_PH: Quadrature decoder
Download
Date | Description | Download |
---|---|---|
26.04.2019 | Default-Firmware |