Skip to content

Conversation

@jamwaffles
Copy link
Collaborator

@jamwaffles jamwaffles commented Mar 14, 2025

The ESI file for the EL3702 describes 3 SMs and 3 FMMUs:

<Fmmu Sm="0" Su="0">Inputs</Fmmu>
<Fmmu Sm="1" Su="1">Inputs</Fmmu>
<Fmmu Sm="2" Su="2">Inputs</Fmmu>
<Sm StartAddress="#x1000" ControlByte="#x20" Enable="1">Inputs</Sm>
<Sm StartAddress="#x1400" ControlByte="#x20" Enable="1">Inputs</Sm>
<Sm StartAddress="#x0998" Virtual="true">Inputs</Sm>

However EtherCrab reads the EEPROM which only reports FMMUs 0 and 2. The previous fallback behaviour was to use the first available inputs or outputs FMMU, but as far as I can see this was a bit too clever and the behaviour should be (can be?) simplified to naively mapping the SM to an FMMU of the same index, whether it exists in the EEPROM or not.

This got my EL3702 into OP with two channels (and no oversampling).

Cc #283

@jamwaffles jamwaffles enabled auto-merge (squash) March 14, 2025 17:30
@jamwaffles jamwaffles merged commit 9e840bc into master Mar 14, 2025
10 checks passed
@jamwaffles jamwaffles deleted the virtual-sm branch March 14, 2025 17:34
theol0403 pushed a commit to theol0403/ethercrab that referenced this pull request Aug 4, 2025
* Change FMMU fallback behaviour to use SM index

* Recapture tests

* Bump MSRV to 1.81
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant