
22.4.5 I2C Master
I2C master mode can be supported using two Timers, two Shifters and two Pins. One
timer is used to generate the SCL output and one timer is used to control the shifters. The
two shifters are used to transmit and receive for every word, when receiving the
transmitter must transmit 0xFF to tristate the output. FlexIO inserts a stop bit after every
word to generate/verify the ACK/NACK. FlexIO waits for the first write to the transmit
data buffer before enabling SCL generation. Data transfers can be supported using the
DMA controller and the shifter error flag will set on transmit underrun or receive
overflow.
The first timer generates the bit clock for the entire packet (START to Repeated START/
STOP), so the compare register needs to be programmed with the total number of clock
edges in the packet (minus one). The timer supports clock stretching using the reset
counter when pin equal to output (although this increases both the clock high and clock
low periods by at least 1 FlexIO clock cycle each). The second timer uses the SCL input
pin to control the transmit/receive shift registers, this enforces an SDA data hold time by
an extra 2 FlexIO clock cycles.
Both the transmit and receive shifters need to be serviced for each word in the transfer,
the transmit shifter must transmit 0xFF when receiving and the receive shifter returns the
data actually present on the SDA pin. The transmit shifter will load 1 additional word on
the last falling edge of SCL pin, this word should be 0x00 if generating a STOP condition
or 0xFF if generating a repeated START condition. During the last word of a master-
receiver transfer, the transmit SSTOP bit should be set by software to generate a NACK.
The receive shift register will assert an error interrupt if a NACK is detected, but software
is responsible for generating the STOP or repeated START condition. If a NACK is
detected during master-transmit, the interrupt routine should immediately write the
transmit shifter register with 0x00 (if generating STOP) or 0xFF (if generating repeated
START). Software should then wait for the next rising edge on SCL and then disable
both timers. The transmit shifter should then be disabled after waiting the setup delay for
a repeated START or STOP condition.
Due to synchronization delays, the data valid time for the transmit output is 2 FlexIO
clock cycles, so the maximum baud rate is divide by 6 of the FlexIO clock frequency.
The I2C master data valid is delayed 2 cycles because the clock output is passed through
a synchronizer before clocking the transmit/receive shifter (to guarantee some SDA hold
time). Since the SCL output is synchronous with FlexIO clock, the synchronization delay
is 1 cycle and then 1 cycle to generate the output.
Application Information
K32 L2A Reference Manual, Rev. 2, 01/2020
582
NXP Semiconductors
Содержание K32 L2A Series
Страница 2: ...K32 L2A Reference Manual Rev 2 01 2020 2 NXP Semiconductors...
Страница 42: ...K32 L2A Reference Manual Rev 2 01 2020 42 NXP Semiconductors...
Страница 122: ...Flash Memory Clock K32 L2A Reference Manual Rev 2 01 2020 122 NXP Semiconductors...
Страница 146: ...Module operation in low power modes K32 L2A Reference Manual Rev 2 01 2020 146 NXP Semiconductors...
Страница 158: ...Debug and security K32 L2A Reference Manual Rev 2 01 2020 158 NXP Semiconductors...
Страница 174: ...Module Signal Description Tables K32 L2A Reference Manual Rev 2 01 2020 174 NXP Semiconductors...
Страница 246: ...Application information K32 L2A Reference Manual Rev 2 01 2020 246 NXP Semiconductors...
Страница 322: ...Kinetis Bootloader Status Error Codes K32 L2A Reference Manual Rev 2 01 2020 322 NXP Semiconductors...
Страница 344: ...Application initialization information K32 L2A Reference Manual Rev 2 01 2020 344 NXP Semiconductors...
Страница 374: ...CMP Trigger Mode K32 L2A Reference Manual Rev 2 01 2020 374 NXP Semiconductors...
Страница 384: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 384 NXP Semiconductors...
Страница 592: ...Application Information K32 L2A Reference Manual Rev 2 01 2020 592 NXP Semiconductors...
Страница 602: ...Initialization and application information K32 L2A Reference Manual Rev 2 01 2020 602 NXP Semiconductors...
Страница 656: ...Functional Description K32 L2A Reference Manual Rev 2 01 2020 656 NXP Semiconductors...
Страница 664: ...Functional Description K32 L2A Reference Manual Rev 2 01 2020 664 NXP Semiconductors...
Страница 744: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 744 NXP Semiconductors...
Страница 762: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 762 NXP Semiconductors...
Страница 806: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 806 NXP Semiconductors...
Страница 868: ...Integer square root K32 L2A Reference Manual Rev 2 01 2020 868 NXP Semiconductors...
Страница 976: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 976 NXP Semiconductors...
Страница 1012: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 1012 NXP Semiconductors...
Страница 1094: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 1094 NXP Semiconductors...
Страница 1132: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 1132 NXP Semiconductors...
Страница 1182: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 1182 NXP Semiconductors...
Страница 1290: ...Functional description K32 L2A Reference Manual Rev 2 01 2020 1290 NXP Semiconductors...
Страница 1344: ...USB Voltage Regulator Module Signal Descriptions K32 L2A Reference Manual Rev 2 01 2020 1344 NXP Semiconductors...
Страница 1356: ...Initialization Application Information K32 L2A Reference Manual Rev 2 01 2020 1356 NXP Semiconductors...