EDR Port Timings
From EMIT Controls
Revision as of 16:23, 14 March 2023 by Thomas Peterson (talk | contribs) (Created page with "The EDR has several settings related to port timings for communication. This page describes how those settings work. File:Edr port timing.png The general sequence is: *Master sees that a batch request is due, aka a set of requests covering all the registers. This happens every "Batch Request (s)" duration, by default this is 60 seconds. *The master will switch the bus to WRITE and wait 1 ms *The master will write out the request *The master will wait a reasonable...")
The EDR has several settings related to port timings for communication. This page describes how those settings work.
The general sequence is:
- Master sees that a batch request is due, aka a set of requests covering all the registers. This happens every "Batch Request (s)" duration, by default this is 60 seconds.
- The master will switch the bus to WRITE and wait 1 ms
- The master will write out the request
- The master will wait a reasonable delay for the message (see note 1)
- The master will wait an additional "Read delay us" setting before switching bus to read
- Note that if the master doesn't wait long enough, the message may not be done sending at the time the bus is switched to READ. If the master waits too long, then the bus may not be clear when the slave device wants to respond.
- The master switches the bus to READ / releases the bus and listens for response
- The slave device has presumably been listening and at some point determines it should respond (see note 2)
- The slave device switches to WRITE
- The slave device writes out response
- At some point the slave device releases the bus (see note 4)
- If a slave never responds to a message in the read timeout, the master will consider the message failed (see note 3)
- If the slave does respond, the master will read and process the response
- The master will wait for "Write delay us" after receiving the response before switching back to WRITE
- The master switches to WRITE and continues with the next message in the batch