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