rnd:projects:aft

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
rnd:projects:aft [2022-12-23 01:26] asdfrnd:projects:aft [2023-05-07 02:54] (current) asdf
Line 41: Line 41:
 | 20 | VeeT | Transmitter ground | | 20 | VeeT | Transmitter ground |
 </table> </table>
 +
 +<WRAP center round tip 60%>
 +The ''Tx_disable'' pin is connected to an internal pull-up resistor inside the module. This pin must be pulled low to enable the transmit laser.
 +</WRAP>
  
 ==== Osmocom SPF experimenter ==== ==== Osmocom SPF experimenter ====
Line 52: Line 56:
 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);
Line 65: Line 69:
 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 ====
  
Line 132: Line 156:
  
 ==== Communication ==== ==== Communication ====
-Using an [[https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h|FT232H breakout]], test I2C reads from the SFP and UART serial data transmission/reception+UART transmission is not looking terribly promising at this time
  
 +Different SFP models appear to produce different signals when the output is open. The SMF unit (unknown vendor) outputs nothing, while the Veloso units send (noisy) pulse trains (see {{ref>fig_idle}}). They also respond differently to inputs, with the former producing an inverted replica of the input and the latter outputting what might be PWM ({{ref>fig_k}}).
 +
 +<figure center|fig_idle>
 + <subfigure |fig_smf_idle>
 + {{ :rnd:projects:smf-idle.png?400 |}}
 +<caption>SMF</caption>
 + </subfigure>
 + <subfigure |fig_veloso_idle>
 + {{ :rnd:projects:veloso-idle.png?400 |}}
 +<caption>Veloso</caption>
 + </subfigure>
 +<caption>Idle responses from signal loopback</caption>
 +</figure>
 +
 +<figure center|fig_k>
 + <subfigure |fig_smf_k>
 + {{ :rnd:projects:smf-k.png?400 |}}
 +<caption>SMF</caption>
 + </subfigure>
 + <subfigure |fig_veloso_k>
 + {{ :rnd:projects:veloso-k.png?400 |}}
 +<caption>Veloso</caption>
 + </subfigure>
 +<caption>Responses to UART ''k'' at 115200 baud, 8N1</caption>
 +</figure>
 ==== Power considerations ==== ==== Power considerations ====
 Portable operation is a must for this tester. Portable operation is a must for this tester.
Line 153: Line 202:
   * [[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 =====
Line 162: Line 219:
 [(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}}
  • rnd/projects/aft.1671758819.txt.gz
  • Last modified: 2022-12-23 01:26
  • by asdf