<p>Just an idea from an interested bystander: Many MCUs implement an 'address detect' feature in 9-bit mode (parity bit is used as an additional data bit) where they will only generate an interrupt if the 9th bit is set.</p>
<p>So you have the address at the start of your frame and only when it matches you turn off the address detect mode to get an interrupt for every byte, so all other nodes are not bothered with interrupts for packets that are not intended for them.</p>
<p>Also an 8-bit address (<code>ETHERNET_ADDR_LEN = 1</code>) is probably enough for such a bus - each node will add impedance and degrade the signal. CAN is specified for 128 nodes, maybe you can do more than that but I doubt you need 48-bit addresses ;)</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/10710#issuecomment-463155710">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AEn7YLE6jLmz0fad19TO5WYj9xo1xltEks5vM_A_gaJpZM4ZyexR">mute the thread</a>.<img src="https://github.com/notifications/beacon/AEn7YA4xIBjtsbm63sPQhCQvUTy15Emuks5vM_A_gaJpZM4ZyexR.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/RIOT-OS/RIOT","title":"RIOT-OS/RIOT","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/RIOT-OS/RIOT"}},"updates":{"snippets":[{"icon":"PERSON","message":"@benpicco in #10710: Just an idea from an interested bystander: Many MCUs implement an 'address detect' feature in 9-bit mode (parity bit is used as an additional data bit) where they will only generate an interrupt if the 9th bit is set.\r\n\r\nSo you have the address at the start of your frame and only when it matches you turn off the address detect mode to get an interrupt for every byte, so all other nodes are not bothered with interrupts for packets that are not intended for them.\r\n\r\nAlso an 8-bit address (`ETHERNET_ADDR_LEN = 1`) is probably enough for such a bus - each node will add impedance and degrade the signal. CAN is specified for 128 nodes, maybe you can do more than that but I doubt you need 48-bit addresses ;)"}],"action":{"name":"View Pull Request","url":"https://github.com/RIOT-OS/RIOT/pull/10710#issuecomment-463155710"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/10710#issuecomment-463155710",
"url": "https://github.com/RIOT-OS/RIOT/pull/10710#issuecomment-463155710",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>