open-ephys / ONI

Open Neuro Interface Hardware Specification and API Documentation
https://open-ephys.github.io/ONI/
Creative Commons Attribution Share Alike 4.0 International
1 stars 2 forks source link

Low-level register map addresses #5

Open aacuevas opened 7 months ago

aacuevas commented 7 months ago

Ported from https://github.com/jonnew/ONI/issues/6

Original text:

Register address spaces Right now we have 11 specific registers and allow custom registers to exist past that, not giving space for future revisions. Proposed register space would be split three 4MByte (for 32-bit values) regions: 0x00000000-0x000FFFFF: Oni register space. Reserved for the specification registers and future additions to them 0x0010000-0x003FFFFF: Reserved for oni-spec compliance information 0x00400000-0xFFFFFFFF: Device specific optional registers

The split is done this way to make it easier to develop for a wider range of hardware devices, as not all interfaces might have a full 32-bit address scheme available. 24-bit addressing is a common value, and this could cover all addresses on that space. It is unlikely that more than 20bit addressing per region will be required.

This will still allows for the custom options to exist, if required by hardware, without risking overlapping future spec revisions