== Orbit Noise Generator Baseband Board (!BaBo) == [[TOC(depth=3)]] !BaBo performs baseband I/Q data acquistion and generation, data processing and transmission to upstream data servers through a USB interface. !BaBo top-level schematic is [attachment:Babo-13-Global-Schematic.pdf attached]. == Hardware Components == !BaBo is centered around three components: * Cypress EZ-USB FX2 - CY7C68013 USB microcontroller, which is an 8051 core with a USB2 interface * Xilinx XC3S400-4TQ144C FPGA * Analog Device == PCB == == Programming Notes == First you must upload the firmware onto the FX2. Once the firmware is ready on the FX2. Once the FX2 is programmed, it programs the FPGA by feeding it a sequence of bits or bytes that configure all the gates and datapaths and doohickeys inside. Relevant documentation extraction: {{{ 3.5 USB Boot Methods During the power-up sequence, internal logic checks the I2C- compatible port for the connection of an EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses the VID/PID/DID values in the EEPROM in place of the internally stored values (0xC0), or it boot-loads the EEPROM contents into internal RAM (0xC2). If no EEPROM is detected, FX2 enumerates using internally stored descriptors. The default ID values for FX2 are VID/PID/DID (0x04B4, 0x8613, 0xxxyy). 3.6 ReNumeration™ Because the FX2’s configuration is soft, one chip can take on the identities of multiple distinct USB devices. When first plugged into USB, the FX2 enumerates automati- cally and downloads firmware and USB descriptor tables over the USB cable. Next, the FX2 enumerates again, this time as a device defined by the downloaded information. This patented two-step process, called ReNumeration™, happens instantly when the device is plugged in, with no hint that the initial download step has occurred. Two control bits in the USBCS (USB Control and Status) register control the ReNumeration process: DISCON and To simulate a USB disconnect, the firmware sets DISCON to 1. To reconnect, the firmware clears DISCON to 0. Before reconnecting, the firmware sets or clears the RENUM bit to indicate whether the firmware or the Default USB Device will handle device requests over endpoint zero: if RENUM = 0, the Default USB Device will handle device requests; if RENUM = 1, the firmware will. }}} == Appendix ==