Both sides previous revision Previous revision Next revision | Previous revision |
rnd:projects:aft [2022-12-27 02:50] – [Communication] asdf | rnd:projects:aft [2023-05-07 02:54] (current) – asdf |
---|
SFP modules expose a great deal of data detailing their internal status, all accessible through I2C at one of two addresses (''0xA0'', ''0xA2''). Before data can be read, the EEPROM address must be loaded in by performing a dummy write containing the 8-bit EEPROM address to retrieve. For example, the device vendor name is stored in 16 bytes at I2C address ''0xA0'', EEPROM address 20. The following snippet demonstrates this procedure. | SFP modules expose a great deal of data detailing their internal status, all accessible through I2C at one of two addresses (''0xA0'', ''0xA2''). Before data can be read, the EEPROM address must be loaded in by performing a dummy write containing the 8-bit EEPROM address to retrieve. For example, the device vendor name is stored in 16 bytes at I2C address ''0xA0'', EEPROM address 20. The following snippet demonstrates this procedure. |
| |
<code c> | <code cpp> |
// load in the EEPROM address | // load in the EEPROM address |
Wire.beginTransmission(0x50); | Wire.beginTransmission(0x50); |
After each read, the internal address register is incremented so it points to the next byte. Given the way we're most likely to access this table, this fact is of relatively little use to us. | After each read, the internal address register is incremented so it points to the next byte. Given the way we're most likely to access this table, this fact is of relatively little use to us. |
| |
| <table |tab_sfpreg_50> |
| <caption>Registers of interest at I2C address 0x50</caption> |
| |
| <datatables paging="false"> |
| ^ Value ^ Address (dec) ^ Data length ^ |
| | Manufacturer name (ASCII) | 20 | 16 | |
| | Compliance code | 3 | 8 | |
| | Nominal signalling rate (100s Mbd) | 12 | 1 | |
| | Supported optional DDM features | 93 | 1 | |
| </datatables> |
| </table> |
| |
| <table |tab_sfpreg_51> |
| <caption>Registers of interest at I2C address 0x51</caption> |
| |
| <datatables paging="false"> |
| ^ Value ^ Address (dec) ^ Data length ^ |
| |
| </datatables> |
| </table> |
==== Serial data transmission ==== | ==== Serial data transmission ==== |
| |
* [[https://github.com/Stutchbury/EncoderButton]] | * [[https://github.com/Stutchbury/EncoderButton]] |
* [[https://www.instructables.com/Manchester-Code-Library-for-Arduino/]], [[https://github.com/mdeudon/Manchester]], [[wp>manchester code]] | * [[https://www.instructables.com/Manchester-Code-Library-for-Arduino/]], [[https://github.com/mdeudon/Manchester]], [[wp>manchester code]] |
| * https://www.ti.com/lit/ug/tidu366/tidu366.pdf |
| * https://cdn.hackaday.io/files/21599924091616/AN_2030_DDMI_for_SFP_Rev_E2.pdf |
| * https://gitea.osmocom.org/electronics/osmo-small-hardware/raw/branch/master/sfp-breakout/sfp-experimenter.pdf |
| * https://www.ti.com/lit/ds/symlink/sn65lvds1.pdf?ts=1672100269172&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FSN65LVDS1%252Fpart-details%252FSN65LVDS1D%253Futm_source%253Dgoogle%2526utm_medium%253Dcpc%2526utm_campaign%253Docb-tistore-promo-asc_opn_en-cpc-storeic-google-wwe%2526utm_content%253DDevice%2526ds_k%253DSN65LVDS1D%2526DCM%253Dyes%2526%2526utm_source%253Dgoogle%2526utm_medium%253Dcpc%2526utm_campaign%253D%2526utm_content%253D%2526ds_k%253Dsn65lvds1d%2526DCM%253Dyes%2526gclid%253DCjwKCAiAqaWdBhAvEiwAGAQltruYrSedpQ0uALxXlAq5xiuhmzbVhkdHlCKyi0L3cz9s1VCdN4uf8xoCVpwQAvD_BwE%2526gclsrc%253Daw.ds |
| * https://hackaday.com/2020/05/11/new-teensy-4-1-arrives-with-100-mbps-ethernet-high-speed-usb-8-mb-flash/ |
| * https://twitter.com/PA4DAN/status/1108517564005695491/photo/1 |
| * https://www.fluxlight.com/content/Tech-Docs/AdTran%2012004800%20Datasheet.pdf |
| * https://hackaday.com/2021/02/13/experiment-with-sfp-modules-with-this-handy-breakout/ |
| |
===== References ===== | ===== References ===== |
[(sparkfun_serialcomm>https://learn.sparkfun.com/tutorials/serial-communication)] | [(sparkfun_serialcomm>https://learn.sparkfun.com/tutorials/serial-communication)] |
[(twi_protocol>https://ww1.microchip.com/downloads/en/devicedoc/doc0180.pdf)] | [(twi_protocol>https://ww1.microchip.com/downloads/en/devicedoc/doc0180.pdf)] |
| |
| {{tag>electronics}} |