Difference between revisions of "FPGA Transmitter"
Jump to navigation
Jump to search
Senderovich (talk | contribs) m |
Senderovich (talk | contribs) m |
||
Line 1: | Line 1: | ||
− | == ( | + | == (101) Transmit "S" == |
− | This | + | This block compiles the status values into a single packet by loading them into the CP2200/1 in a defined order and format, including padding/converting any values that need it. Once the packet has been sent, the block transitions to state 010. |
inputs | inputs | ||
Line 9: | Line 9: | ||
internal signals | internal signals | ||
− | * ''S_En'': state enable, ''S_En'' <= not ''St(2)'' | + | * ''S_En'': state enable, ''S_En'' <= not (''St(2)'' or ''St(1)'' or ''St(0)'') |
* ''Go'': when ''S_En'' goes high ''Go'' pulses for one cycle | * ''Go'': when ''S_En'' goes high ''Go'' pulses for one cycle | ||
blocks | blocks | ||
− | * ''' | + | * '''Temp Loader''' |
− | ** | + | ** This block reads the temperature value from the internal registers and loads it to the transmit buffer. |
** inputs | ** inputs | ||
*** ''Clk'': clock | *** ''Clk'': clock | ||
*** ''/Rst'': asynchronous, active-low reset | *** ''/Rst'': asynchronous, active-low reset | ||
− | *** ''Go'': pulse to begin | + | *** ''Go'': pulse to begin; feeds from ''Go'' internal signal of block 101 |
− | *** '' | + | *** ''D_in'': 16-bit data bus from internal registers |
+ | *** ''TxRx_Done'': ''Done'' signal from transceiver | ||
+ | ** ouputs | ||
+ | *** ''TxRx_Go'': ''Go'' signal on transceiver | ||
+ | *** ''TxRx_R/W'': ''R/W'' signal on transceiver | ||
+ | *** ''TxRx_A'': ''A_in'' bus on transceiver | ||
+ | *** ''TxRx_D'': ''D_in'' bus on transceiver | ||
+ | *** ''Done'': pulse to signal completion | ||
+ | * '''ADC Loader''' | ||
+ | ** This block reads the ADC values from the internal registers and loads them to the transmit buffer in order: channel zero to channel seven. | ||
+ | ** inputs | ||
+ | *** ''Clk'': clock | ||
+ | *** ''/Rst'': asynchronous, active-low reset | ||
+ | *** ''Go'': pulse to begin; feeds from ''Done'' signal of Temp Loader | ||
+ | *** ''D_in'': 16-bit data bus from internal registers | ||
+ | *** ''TxRx_Done'': ''Done'' signal from transceiver | ||
+ | ** ouputs | ||
+ | *** ''Sel'': 3-bit select bus for internal registers | ||
+ | *** ''TxRx_Go'': ''Go'' signal on transceiver | ||
+ | *** ''TxRx_R/W'': ''R/W'' signal on transceiver | ||
+ | *** ''TxRx_A'': ''A_in'' bus on transceiver | ||
+ | *** ''TxRx_D'': ''D_in'' bus on transceiver | ||
+ | *** ''Done'': pulse to signal completion | ||
+ | * '''Padder''' | ||
+ | ** This block pads the packet to the minimum 46 bytes. Only 19 bytes have been loaded by this point (1 byte "S", 2 byte temperature, 8 x 2 byte ADC), so 27 bytes of padding (zero) must be loaded. | ||
+ | ** inputs | ||
+ | *** ''Clk'': clock | ||
+ | *** ''/Rst'': asynchronous, active-low reset | ||
+ | *** ''Go'': pulse to begin; feeds from ''Done'' signal of ADC Loader | ||
+ | *** ''TxRx_Done'': ''Done'' signal from transceiver | ||
+ | ** outputs | ||
+ | *** ''TxRx_Go'': ''Go'' signal on transceiver | ||
+ | *** ''TxRx_R/W'': ''R/W'' signal on transceiver | ||
+ | *** ''TxRx_A'': ''A_in'' bus on transceiver | ||
+ | *** ''TxRx_D'': ''D_in'' bus on transceiver | ||
+ | *** ''Done'': pulse to signal completion | ||
+ | * '''Sender''' | ||
+ | ** This block tells the CP2200/1 to send the completed packet. | ||
+ | ** inputs | ||
+ | *** ''Clk'': clock | ||
+ | *** ''/Rst'': asynchronous, active-low reset | ||
+ | *** ''Go'': pulse to begin; feeds from ''Done'' signal of Padder | ||
+ | *** ''TxRx_Done'': ''Done'' signal from transceiver | ||
** outputs | ** outputs | ||
− | *** '' | + | *** ''TxRx_Go'': ''Go'' signal on transceiver |
− | *** '' | + | *** ''TxRx_R/W'': ''R/W'' signal on transceiver |
− | *** '' | + | *** ''TxRx_A'': ''A_in'' bus on transceiver |
− | *** '' | + | *** ''TxRx_D'': ''D_in'' bus on transceiver |
− | *** ''Done'': | + | *** ''Done'': pulse to signal completion |
− |
Revision as of 19:03, 16 May 2008
(101) Transmit "S"
This block compiles the status values into a single packet by loading them into the CP2200/1 in a defined order and format, including padding/converting any values that need it. Once the packet has been sent, the block transitions to state 010.
inputs
- Clk: clock
- /Rst: asynchronous, active-low reset
- State: 3-bit state value
internal signals
- S_En: state enable, S_En <= not (St(2) or St(1) or St(0))
- Go: when S_En goes high Go pulses for one cycle
blocks
- Temp Loader
- This block reads the temperature value from the internal registers and loads it to the transmit buffer.
- inputs
- Clk: clock
- /Rst: asynchronous, active-low reset
- Go: pulse to begin; feeds from Go internal signal of block 101
- D_in: 16-bit data bus from internal registers
- TxRx_Done: Done signal from transceiver
- ouputs
- TxRx_Go: Go signal on transceiver
- TxRx_R/W: R/W signal on transceiver
- TxRx_A: A_in bus on transceiver
- TxRx_D: D_in bus on transceiver
- Done: pulse to signal completion
- ADC Loader
- This block reads the ADC values from the internal registers and loads them to the transmit buffer in order: channel zero to channel seven.
- inputs
- Clk: clock
- /Rst: asynchronous, active-low reset
- Go: pulse to begin; feeds from Done signal of Temp Loader
- D_in: 16-bit data bus from internal registers
- TxRx_Done: Done signal from transceiver
- ouputs
- Sel: 3-bit select bus for internal registers
- TxRx_Go: Go signal on transceiver
- TxRx_R/W: R/W signal on transceiver
- TxRx_A: A_in bus on transceiver
- TxRx_D: D_in bus on transceiver
- Done: pulse to signal completion
- Padder
- This block pads the packet to the minimum 46 bytes. Only 19 bytes have been loaded by this point (1 byte "S", 2 byte temperature, 8 x 2 byte ADC), so 27 bytes of padding (zero) must be loaded.
- inputs
- Clk: clock
- /Rst: asynchronous, active-low reset
- Go: pulse to begin; feeds from Done signal of ADC Loader
- TxRx_Done: Done signal from transceiver
- outputs
- TxRx_Go: Go signal on transceiver
- TxRx_R/W: R/W signal on transceiver
- TxRx_A: A_in bus on transceiver
- TxRx_D: D_in bus on transceiver
- Done: pulse to signal completion
- Sender
- This block tells the CP2200/1 to send the completed packet.
- inputs
- Clk: clock
- /Rst: asynchronous, active-low reset
- Go: pulse to begin; feeds from Done signal of Padder
- TxRx_Done: Done signal from transceiver
- outputs
- TxRx_Go: Go signal on transceiver
- TxRx_R/W: R/W signal on transceiver
- TxRx_A: A_in bus on transceiver
- TxRx_D: D_in bus on transceiver
- Done: pulse to signal completion