Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

http://gitlab.keith-koep.com/tr8firmware/tr8_mcu

Default Firmware

ssh://git@gitlab.keith-koep.com:30001/tr8firmware/tr8_mcu.git
http://gitlab.keith-koep.com/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

tr8_mcu_20190426.zip

  • No labels