
Inter-processor communication controller (IPCC)
RM0453
384/1454
RM0453 Rev 2
To send communication data:
•
The sending processor waits for its response pending software variable to get 0.
–
Once the response pending software variable is 0 the communication data is
posted.
•
Once the complete communication data has been posted, the channel status flag
CHnF is set to occupied with CHnS and the response pending software variable is set
to 1 (this gives memory access and generates the RX occupied interrupt to the
receiving processor).
•
Once the channel status flag CHnF is set, the channel free interrupt is unmasked
(CHnFM = 0).
To send a response:
•
The receiving processor waits for its response pending software variable to get 1.
–
Once the response pending software variable is 1 the response is posted.
•
Once the complete response is posted, the channel status flag CHnF is cleared to free
with CHnC and the response pending software variable is set to 0 (this gives memory
access and generates the TX free interrupt to the sending processor).
•
Once the channel status flag CHnF is cleared, the channel occupied interrupt is
unmasked (CHnOM = 0).
Figure 42. IPCC Half-duplex - Receive procedure state diagram
To receive communication data the channel occupied interrupt is unmasked (CHnOM = 0):
•
On a RX occupied interrupt, the receiving processor checks which channel became
occupied, masks the associated channel occupied interrupt (CHnOM) and reads the
communication data from the memory.
•
Once the complete communication data is retrieved, the response pending software
variable is set. The channel status is not changed, access to the memory is kept to post
the subsequent response.
RX
occupied interrupt
MS42434V1
Response processor A
Communication processor B
MASK
Channel N
occupied interrupt
Write CHnOM = 1
RX
occupied interrupt
Read CHnF = 1
Read
Communication
data from Memory
Write Response pending = 1
Allow Response
to be sent
MASK
Channel N
free interrupt
Write CHnFM = 1
TX
free interrupt
TX
free interrupt
Read CHnF = 0
Read Response
from Memory
Write Response pending = 0
Allow
Communication
data to be sent
Complete communication retrieved