Professional Documents
Culture Documents
REN R01an2759ej0201-Rl78g13 APN 20201125
REN R01an2759ej0201-Rl78g13 APN 20201125
RL78/G13
Serial Interface IICA (for Master Transmission/Reception)
Introduction
This application note describes master transmission and reception implemented via serial interface IICA.
Using IICA, the single master system described here performs master operation (address transmission, data
transmission and data reception).
Target Device
RL78/G13
When applying the sample program covered in this application note to another microcomputer, modify the
program according to the specifications for the target microcomputer and conduct an extensive evaluation of
the modified program.
1. Specifications
This application note describes a method for using a serial interface IICA for master transmission/reception
(address transmission data transmission and reception) in a single-master configuration. It is assumed that
each slave has a register to specify an address in the slave.
The master specifies a slave address to select the slave. When communication with the slave is
established, data transmission and reception become possible.
The following is a summary of the slave specifications assumed in this application note.
Slave address: 0b1010000note
At the specified address, an arbitrary number of data bytes can be read out or written.
The slave serial RAM area is register addresses 0x80 to 0xFF (128 bytes). Slave operation is
specified using the command register at register address 0x00.
When 0x01 to 0x7F is specified as the register address, NACK is returned and there is
disengagement from communication.
When the register address exceeds 0xFF, the serial RAM area is selected, and only the lower 7 bits
of the specified register address are handled as valid.
Note: In the RL78 family, the local address (7 bits) is represented by the upper 7 bits of the SVA0
register. The lowermost bit of the SVA0
__ register is fixed at 0. In address transmission the slave
address and the transfer direction (R/W ) are combined and the 8 bits are written to the IICA
shift register 0 (IICA0).
Caution: This sample code corresponds to the Application Note for the RL78/G13 serial interface IICA
(slave transmission/reception) (R01AN2760E).
Peripheral functions used and applications are shown in Table 1.1, and the IIC communication is
summarized in Figure 1.1. IIC communication timing charts appear in Figure 1.2 to Figure 1.8.
Address transmission
Data transmission/reception
RL78/G13 RL78/G13
(master) (slave)
Address transmission: Each device connected to an IIC bus has a unique address. The master transmits a
slave address for transmission. The address (7 bits) and the transfer direction (1 bit) are transmitted as one
data byte. After receiving the one byte of data, the slave generates an acknowledge signal.
Data transmission/reception: Operation, after address reception, to transmit data to the master or to receive
data from the master.
Figure 1.1 Overview of IIC Communication
Master side
IICA0 register
(2) (5)
ACKD0
(ACK detection)
WTIM0
(wait control) H
ACKE0
(ACK control) H
MSTS0
(communication state)
STT0 (1)
(ST trigger)
SPT0 L
(SP trigger)
WREL0 L
(wait cancel)
INTIICA0
(interrupt)
TRC0
(transmission/reception) Start condition
Bus line
SCLA0 (bus)
(clock line)
Note (4)
SDAA0 (bus)
(data line) AD6 AD5 AD4 AD3 AD2 AD1 AD0 W ACK D17
(3)
Slave address
Slave side
IICA0 register
ACKD0
(ACK detection)
STD0
(ST detection)
SPD0
(SP detection)
WTIM0
(wait control)
ACKE0
(ACK control) H
MSTS0 L
(communication state)
WREL0 (6)
(wait cancel)
INTIICA0
(interrupt)
TRC0 L
(transmission/reception)
Note: The time between the falling edges of SDAA0 and SCLA0 is 4.0 μs or more for the standard mode
and 0.6 μs or more for the fast mode.
Figure 1.2 IIC Communication Timing Chart (Master-to-Slave Communication Example) (1/4)
Note: When there is a mismatch between a received address and the local address, the slave side does
not return ACK to the master side (NACK). Moreover, a slave-side INTIICAO interrupt (address match
interrupt) does not occur, and a wait state is not entered on the slave side. However, on the master
side an INTIICAO interrupt (address transmission complete interrupt) occurs, regardless of whether
the result is ACK or NACK.
In the RL78 family, the local address (7 bits) is represented by the upper 7 bits in the SVA0
register. The lowermost bit in the SVA0__ register is fixed at 0. In address transmission, the slave
address and the transfer direction (R / W ) are combined and written as 8 bits to the IICA shift
register 0 (IICA0).
Master side
IICA0 register
(5) (10)
ACKD0
(ACK detection)
WTIM0
(wait control)
H
ACKE0
(ACK control) H
MSTS0 H
(communication state)
STT0 L
(ST trigger)
SPT0 L
(SP trigger)
WREL0 L
(wait cancel)
INTIICA0
(interrupt)
TRC0 H
(transmission/reception)
Bus line
SCLA0 (bus)
(clock line)
(4) (9)
SDAA0 (bus)
(data line) W ACK D17 D16 D15 D14 D13 D12 D11 D10 ACK
(3) (7)
Slave side
IICA0 register
ACKD0
(ACK detection)
STD0
(ST detection)
SPD0
(SP detection) L
WTIM0
(wait control)
ACKE0
(ACK control) H
(8)
MSTS0 L
(communication state)
WREL0 (6)
(wait cancel)
INTIICA0
(interrupt)
TRC0 L
(transmission/reception)
Figure 1.3 IIC Communication Timing Chart (Master-to-Slave Communication Example) (2/4)
Master side
IICA0 register
(10)
ACKD0
(ACK detection)
WTIM0
(wait control) H
ACKE0
(ACK control) H
MSTS0
(communication state)
STT0 L
(ST trigger)
SPT0
(SP trigger) (14)
WREL0 L
(wait cancel)
INTIICA0
(interrupt)
TRC0
(transmission/reception)
Stop condition
Bus line (9)
(13)
SCLA0 (bus)
(clock line)
(12)
SDAA0 (bus)
D150 ACK D167 D166 D165 D164 D163 D162 D161 D160 ACK
(data line) Note
(7) (11) (15)
Slave side
IICA0 register
ACKD0
(ACK detection)
STD0 L
(ST detection)
SPD0
(SP detection)
WTIM0 L
(wait control)
ACKE0 H
(ACK control)
MSTS0 L
(communication state)
(8)
WREL0
(wait cancel)
INTIICA0
(interrupt)
L
TRC0
(transmission/reception)
: Wait by slave : Wait by master
Note: The time from when SCLA0 rises after a stop condition is issued till when a stop condition is
generated is 4.0 μs or more for the standard mode and 0.6 μs or more for the fast mode.
Figure 1.4 IIC Communication Timing Chart (Master-to-Slave Communication Example) (3/4)
Master side
IICA0 register
(11)
ACKD0
(ACK detection)
WTIM0
(wait control) H
ACKE0
(ACK control) H
MSTS0 H
(communication state)
STT0
(10)
(ST trigger)
SPT0
L
(SP trigger)
WREL0 L
(wait cancel)
INTIICA0
(interrupt)
TRC0 H
(transmission/reception) Restart condition
Bus line (9)
SCLA0 (bus)
(clock line)
(7)
SDAA0 (bus) ACK
D13 D12 D11 D10 Note AD6 AD5 AD4 AD3 AD2 AD1
(data line)
(8)
Slave address
Slave side
IICA0 register
ACKD0
(ACK detection)
STD0
(ST detection)
SPD0
L
(SP detection)
WTIM0
(wait control)
L
ACKE0
H
(ACK control)
MSTS0 L
(communication state)
WREL0
(wait cancel)
INTIICA0
(interrupt)
TRC0 L
(transmission/reception)
Note: The time from when SCLA0 rises after a restart condition is issued till when a start condition is
generated is 4.7 μs or more for the standard mode and 0.6 μs or more for the fast mode.
Figure 1.5 IIC Communication Timing Chart (Master-to-Slave Communication Example) (4/4)
Master side
IICA0 register
(2)
ACKD0
(ACK detection)
WTIM0
(5)
(wait control)
ACKE0
(ACK control) H
MSTS0
(communication state)
STT0
(1)
(ST trigger)
SPT0
L
(SP trigger)
WREL0
(7)
(wait cancel)
INTIICA0
(interrupt)
TRC0
(transmission/reception) Start condition
Bus line
SCLA0 (bus)
(clock line)
Note (4)
SDAA0 (bus)
AD6 AD5 AD4 AD3 AD2 AD1 AD0 R ACK D17
(data line)
Slave address (3)
Slave side
IICA0 register
(6)
ACKD0
(ACK detection)
STD0
(ST detection)
SPD0
(SP detection)
WTIM0
(wait control) H
ACKE0
(ACK control) H
MSTS0 L
(communication state)
WREL0 L
(wait cancel)
INTIICA0
(interrupt)
TRC0
(transmission/reception)
Note: The time between the falling edges of SDAA0 and SCLA0 is 4.0 μs or more for the standard mode
and 0.6 μs or more for the fast mode.
Figure 1.6 IIC Communication Timing Chart (Slave-to-Master Communication Example) (1/3)
Note When there is a mismatch between a received address and the local address, the slave side does
not return ACK to the master side (NACK). Moreover, a slave-side INTIICAO interrupt (address match
interrupt) does not occur, and a wait state is not entered on the slave side. However, on the master
side an INTIICAO interrupt (address transmission complete interrupt) occurs, regardless of whether
the result is ACK or NACK.
In the RL78 family, the local address (7 bits) is represented by the upper 7 bits in the SVA0
register. The lowermost bit in the SVA0 register is fixed at 0.
Master side
IICA0 register
ACKD0
(ACK detection)
WTIM0
(wait control) (5)
ACKE0
(ACK control) H
MSTS0 H
(communication state)
STT0 L
(ST trigger)
SPT0 L
(SP trigger)
WREL0
(wait cancel) (7) (9)
INTIICA0
(interrupt)
TRC0 L
(transmission/reception)
Bus line
SCLA0 (bus)
(clock line)
SDAA0 (bus)
(4) (8) (11)
(data line) R ACK D17 D16 D15 D14 D13 D12 D11 D10 ACK D27
Slave side (3) (10)
IICA0 register
: Wait by master
: Wait by slave
: Wait by master and slave
Figure 1.7 IIC Communication Timing Chart (Slave-to-Master Communication Example) (2/3)
Master side
IICA0 register
ACKD0
(ACK detection)
WTIM0
(wait control)
ACKE0 (14)
(ACK control)
MSTS0
(communication state)
STT0 L
(ST trigger)
SPT0
(SP trigger) (17)
WREL0
(wait cancel) (9) (15)
INTIICA0
(interrupt)
TRC0 L
(transmission/reception)
MSTS0 L
(communication state)
WREL0 (18)
(wait cancel)
INTIICA0
(interrupt)
TRC0
(transmission/reception)
: Wait by master
: Wait by slave
: Wait by master and slave
Note: The time from when SCLA0 rises after a stop condition is issued till when a stop condition is
generated is 4.0 μs or more for the standard mode and 0.6 μs or more for the fast mode.
Figure 1.8 IIC Communication Timing Chart (Slave-to-Master Communication Example) (3/3)
SCL
Continued below
SDA
ST Slave address (0xA0) ACK Register address (0x00) ACK
SCL
Continue from above
SDA
Command data (0xC0) ACK SP
Figure. 1.11 Sequence for Continuous Data Writing by Register Address Specification
SCL
Continued below
SDA
ST Slave address (0xA0) ACK Register address (0xAA) ACK
SCL
Continue
SDA from above
Write data (0xAA) ACK Write data (0x55) ACK SP
Figure. 1.12 Timing Chart for Continuous Data Writing by Register Address Specification
The timing chart for data writing when writing is forbidden is shown in Figure. 1.13. The slave returns ACK
in response to the slave address and a register address, but returns NACK in response to write data, and
disengages from communication. The master confirms the NACK response and generates a stop condition,
ending communication.
SCL
Continued below
SDA
ST Slave address (0xA0) ACK Register address (0xAA) ACK
SCL
Continue
SDA from above
Write data (0xAA) NACK SP
Figure. 1.13 Timing Chart for Data Writing When Writing is Forbidden
Figure. 1.14 Sequence for Continuous Data Reading by Register Address Specification
SCL
Continued below
SDA
ST Slave address (0xA0) ACK Register address (0x80) ACK
SCL
Continue
SDA from above
ST Slave address (0xA1) ACK Read data (0x00) ACK Continued
below
SCL
Continue
SDA from above
Read data (0x7E) ACK Read data (0x7F) NACK SP
Figure. 1.15 Timing Chart for Continuous Data Reading by Register Address Specification
VDD
VDD
RESET
EVDD
VDD
RL78/G13
Error LED P63 VDD VDD
Status LED P62
REGC
SDAA0
EVSS
VSS SCLA0
VDD
SW
P40/TOOL0 For on-chip debugger
P137
(1) Communication buffers (reception buffers 8×16 = 128 bytes, transmission buffer 65 bytes) are
prepared.
(2) When the switch connected to P137 is turned on, the command 0×C0 is transmitted from master to
slave. Thereafter, the command 0×C3 is transmitted, and the slave serial RAM area is initialized to "the
value of the lower 7 bits of the register address".
(3) Continuous data reading is performed 8 times in 16-byte units (for a total of 128 bytes) from the slave
register address 0×80.
When there is a NACK response from the slave, the LED connected to P63 lights.
(4) A check is performed to determine whether data read from the slave (128 bytes) matches an
expected value prepared in advance. If the data differs from the expected value, the LED connected to
P63 is made to flash with a period of 500 ms.
(5) Write data is modified and transmitted to the slave. If there is a NACK response from the slave, the
LED connected to P63 is lit.
Transmission data:
When the received data in (4) above is 0×00 to 0×7F (monotonically increasing), 0×FF to 0×80
(monotonically decreasing)
When the received data in (4) above is 0×FF to 0×80 (monotonically decreasing), 0×0 to 0×7F
(monotonically increasing)
(6) The status display LEDs connected to P62 are reversed, and after waiting 10 ms, the steps from (4)
are repeated.
Caution: This sample code corresponds to the R01AN2760J Application Note for the RL78/G13 serial
interface IICA (slave transmission/reception).
5.7 Flowcharts
Figure 5.1 shows the overall flow of the sample program described in this application note.
Start
Initialization function
hdwinit()
Main function
main()
End
hdwinit()
Disable interrupts IE 0
System function
R_Systeminit()
return
R_Systeminit()
return
Caution: For details on the procedure for setting up the CPU clock (R_CGC_Create ()), refer to the section
entitled "Flowcharts" in RL78/G13 Initialization Application Note (R01AN2575EJ0100).
R_PORT_Create()
Set P62 and P63 to high level P6 register ← 0x0C: Set output data to 1
output PM6 register ← 0xF3: Set P63 and P62 as output
return
Note: Refer to the section entitled "Flowcharts" in RL78/G13 Initialization Application Note
(R01AN2575EJ0100) for the configuration of the unused ports.
Caution: Provide proper treatment for unused pins so that their electrical specifications are observed.
Connect each of any unused input-only ports to VDD or VSS via separate resistors.
R_IICA0_Create
IICAPR10 bit 1
Set IICA0 interrupt priority level to 3
IICAPR00 bit 1
Set up IICA0
Fast mode SMC0 bit 1
Set IICA low-level width
Set IICA high-level width
Turn digital filter on IICWL0 register 15H
Select fCLK/2 as operation clock
Set local address to 50H IICWH0 register 14H
Generate start condition without
detecting stop condition after enabling
operation (IICE0 = 1) DFC0 bit 1
Disable communication reservation
function
Prevent interrupt request from being PRS0 bit 1
generated by stop condition detection
Generate interrupt request upon
falling edge of 9th clock signal SVA0 register 50H
Enable acknowledgement
Pull data line low during duration of STCEN0 bit 1
9th clock signal
return
Symbol: PER0
7 6 5 4 3 2 1 0
RTCEN IICA1EN ADCEN IICA0EN SAU1EN SAU0EN TAU1EN TAU0EN
x x x 1 x x x x
Bit 4
IICA0EN Serial interface IICA0 input clock control
0 Stops supply of input clock.
1 Enables supply of input clock.
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
Symbol: IICCTL01
7 6 5 4 3 2 1 0
WUP0 0 CLD0 DAD0 SMC0 DFC0 0 PRS0
0 0 x x 1 1 0 1
Bit 7
WUP0 Address match wakeup control
0 Disables the address match wakeup function in STOP mode.
1 Enables the address match wakeup function in STOP mode.
Bit 3
SMC0 Operation mode selection
0 Standard mode
1 Fast mode
Bit 2
DFC0 Digital filter operation control
0 Turns the digital filter off.
1 Turns the digital filter on.
Bit 0
PRS0 Operation clock frequency selection
0 Selects fCLK as the operation clock frequency.
1 Selects fCLK/2 as the operation clock frequency.
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
Symbol: IICWL0
7 6 5 4 3 2 1 0
0 0 0 1 0 1 0 1
Symbol: IICWH0
7 6 5 4 3 2 1 0
0 0 0 1 0 1 0 0
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
Symbol: SVA0
7 6 5 4 3 2 1 0
0 0 0 1 0 0 0 0
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
Symbol: IICCTL00
7 6 5 4 3 2 1 0
IICE0 LREL0 WREL0 SPIE0 WTIM0 ACKE0 STT0 SPT0
1 1 x 0 0/1 1 x x
Bit 7
IICE0 I2C operation enable
0 Stops the operation.
1 Enables the operation.
Bit 6
LREL0 Transition from the communication state
0 Normal operation
Makes a transition from the current communication state to the
1
standby state. Automatically cleared to 0 after the transition.
Bit 4
Enabling/disabling generation of interrupt requests due to stop condition
SPIE0
detection
0 Disabled
1 Enabled
Bit 3
WTIM0 Control of wait/interrupt request generation
0 Interrupt request is generated at the falling edge of the eighth clock signal.
Interrupt request is generated at the falling edge of the ninth clock
1
signal.
Bit 2
ACKE0 Acknowledgement control
0 Disables acknowledgements.
Enables acknowledgements. Sets the SDAA0 line to a low level during
1
the duration of the ninth clock signal.
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
Symbol: P6
7 6 5 4 3 2 1 0
P67 P66 P65 P64 P63 P62 P61 P60
x x x x 1 1 0 0
Bit 1
P61 Output data control
0 Output 0
1 Output 1
Bit 0
P60 Output data control
0 Output 0
1 Output 1
Symbol: PM6
7 6 5 4 3 2 1 0
PM67 PM66 PM65 PM64 PM63 PM62 PM61 PM60
x x x x 0 0 0 0
Bit 1
PM61 P61 I/O mode selection
0 Output mode (output buffer on)
1 Input mode (output buffer off)
Bit 0
PM60 P60 I/O mode selection
0 Output mode (output buffer on)
1 Input mode (output buffer off)
Caution: For details on the register setup procedures, refer to RL78/G13 User's Manual:
Hardware.
R_TAU0_Create()
TMMK00 bit 1
Interrupt setting of timer array unit
TMMIF bit 0
Priority level selection:
Specify level 3 (low priority level)
Set the operation mode of TM02 TMR02 register 0000H: Interval timer
TDR02 register 0C7FH: 100us
Set the operation mode of TM03 TMR03 register 0000H: Interval timer
TDR03 register 7CFFH: 1000us
return
R_IT_Create()
Disable operation of 12-bit interval timer ITMC register 0000H: Stop operation
return
main()
No
Error detected? Stop in case of communication error
Yes
HALT
No
Error detected?
Stop in case of communication error
Yes
HALT
Receive data
j=0、8、+1
No
Error detected? Communication error processing
Yes
Error indication P63 bit ← 0: Lit error LED
Receive data
Check data
i=0、8、+1
Error indication
Check data
Update the main loop counter Variable: main_loopc ← Variable: main_loopc ^=2
Receive data
k=0、2、+1
No
Error detected? Error processing
Yes
Receive data
Changing the status display P62 bit ← P62^1: Invert the display of status led
R_MAIN_UserInit()
Enable 12-bit interval timer interrupt ITMK bit ← 0: Enable 12-bit interval timer interrupt.
return
wait_SW()
No
SW is not pushed? Wait for P137 bit to become 1.
Yes
Wait for 50 ms
wait_ms()
No
SW is pushed Wait for P137 bit to become 0.
Yes
Wait for 50 ms
wait_ms()
return
wait_ms()
No
Status is 0? Wait for the specified time to elapse in the HALT state
Yes
HALT
return
r_it_interrupt()
No
Counting?
Yes
No
The rest is 0ms? It checks whether the variable g_1ms_count has become 0
Yes
return
r_IIC_put_data ()
Send data
retry_count=RETRY、0、
No
Startup normally?
Yes
Communication completed?
No
Yes
A
Figure 5.16 Processing of sending data to slave (1/2)
No
No slave?
Yes
Stop condition generation
R_IIC_StopCondition()
No
The slave responded?
Yes
Stop condition generation
R_IIC_StopCondition()
return
r_IIC_get_data ()
Send address
retry_count=RETRY、0、
No
Startup normally?
Yes
No
Communication completed?
Yes
No
No slave?
Yes
Stop condition generation
R_IIC_StopCondition()
Send address
No
Successful completion? Stop when a communication error occurs
Yes
Master reception start request
processing
R_IIC_Master_Receive()
No
Startup normally?
Yes
No
End?
Yes
No
Slave is connected? If communication normal, issue stop condition and end.
Yes
Stop condition generation
R_IIC_StopCondition()
return
R_IICA0_Master_Send()
Communication status
confirmation processing
R_IICA0_bus_check()
No
Bus available?
Yes
Variable: g_iica0_tx_cnt
Set transmit data byte count
← Third argument (tx_num)
Variable: gp_iica0_tx_address
Set transmit data pointer
← Second argument (tx_buf)
IICA0 register
Send slave address
← First argument (adr) & 0xFE
return
R_IIC_Master_Receive()
Communication status
confirmation processing
R_IICA0_bus_check()
No
Bus available?
Yes
Set receive data byte count Variable: g_iica0_rx_len ← Third argument (rx_num)
return
R_IIC_check_comstate()
return
R_IIC_wait_comend()
No
connecting? While the lower 2 bits of the variable: g_iica0_status is 01,
wait with HALT
Yes
HALT
No
Communication error occurred? In case of communication error, issue stop condition
Yes
Stop condition generation
R_IIC_StopCondition()
Wait 60us
delay_us()
return
R_IIC_StopCondition()
Detect stop condition Loop 1000 times. If SPD0 is set, the loop is suspended.
wait=1000、wait=0 || SPD0、-1
NOP
No
If the SPD0 bit is 0, set the variable status to BUS_BUSY
No detected
Yes
Set error status
return
R_IICA0_bus_check()
No
Bus available? Check if the bus is free (IICBSY 0 bit is 0) or if the bus itself
is in use (MSTS 0 bit is 1)
Yes
Generate start codition STT0 bit ← 1
Detect start condition Loop 1000 times. When the STD 0 bit is set, the loop is
wait=1000、wait=0 || STD0、-1
suspended.
NOP
No
Detected? It is checked whether the master (MSTS 0 bit is 1) detects
start condition (STD 0 bit is 1)
Yes
Set status Variable: status ← IIC_SUCCESS (0x00)
return
r_iica0_interrupt()
D Yes
No Branch when the STD 0 bit is 0 (other than completion of slave
Address complete? address transmission)
A Yes
No
ACK response? If the ACKD0 bit is 0, branch to NACK response
Yes
No
Transmission mode? If the TRC0 bit is 0, branch to receive processing
Yes
No
Transmit data available? If the variable g_iica0_tx_cnt is 0, branch to transmission
l ti
Yes
Data transmission processing
Send buffer data IICA0 register ← *gp_iica0_tx_address
No slave processing
Set communication status to no slave Variable: g_iica0_status ← NO_SLAVE (0x86)
Yes
No If the ACKD0 bit is 0, branch to NACK response
ACK response?
Yes
No
If the variable g_iica0_tx_cnt is 0, branch to transmission
Transmit data available?
Yes
Data transmission processing
Send buffer data IICA0 register ← *gp_iica0_tx_address
C Yes
Data reception processing
Update received data *gp_iica0_rx_address ← IICA register
C B D
Reception continuation processing
Release wait WREL0 bit ← TRUTH (1)
return
delay_us()
No
Waiting time is 1us or more?
Yes
Wait time setting process in
µs units
set_delay_us()
No
The wait time has passed?
Yes
return
set_delay_us()
No
Wait time is over 2000us? When the CPU clock is 32MHz, it is judged whether TM02 is
more than the time (2000μs) that can be counted
Yes
Set the count number of TM02 TDR02 register ← 1999×32 - 1(Set 1999us)
Start counting operation TM02 TS0L register ← 0x04(Trigger TM02 count start)
No
Wait time is less than 1 us? When the waiting time is 1us, TM02 is not used
(it is immediate completion).
Yes
Disable count of TM02 TT0L register ← 0x04(Trigger TM02 count stop)
Start counting operation TM02 TS0L register ← 0x04(Trigger TM02 count start)
return
r_tau0_channel2_interrupt()
No
The remaining time is 0us?
Yes
Disable timer array unit TMMK02 bit ← 1(Disable interrupt)
channel2 interrupt
Disable timer array unit TT0L register ← 0x04(Trigger TM02 count stop)
channel2 operation
No The remaining time is If variable g_us_rest_time is less than 2000 us, set the next
less than 2000us? remaining time to 0
Yes
No The remaining time If variable g_us_rest_time is less than 2000 us, change the
is less than 2000us? next count value
Yes
Timer array unit channel 2 TDR02 register ← g_us_rest_time×32 - 1
Set the next count
return
6. Sample Code
The sample code is available on the Renesas Electronics Website.
Inquiries
http://www.renesas.com/contact/
All trademarks and registered trademarks are the property of their respective owners.
Trademarks
Renesas and the Renesas logo are trademarks of Renesas
Electronics Corporation. All trademarks and registered trademarks are
the property of their respective owners.