Difference between revisions of "MRI lab: FPGA controller documentation"

From Course Wiki
Jump to: navigation, search
Line 1: Line 1:
 
==Control registers==
 
==Control registers==
  
{{ControlRegister|Name=PhaseIncrement|Bits=31:0|Function=Set frequency of generated sinewave|Device=/dev/pio_phaseIncrement}}
 
  
  
Line 11: Line 10:
 
!Function
 
!Function
 
!device
 
!device
|-
+
{{ControlRegister|Name=PhaseIncrement|Bits=31:0|Function=Set frequency of generated sinewave|Device=/dev/pio_phaseIncrement}}
!PhaseIncrement
+
{{ControlRegister|Name=Pulse1On|Bits=31:0|Function=Duration of first pulse|Device=/dev/pio_pulse1On}}
|*
+
{{ControlRegister|Name=Pulse1Off|Bits=31:0|Function=Interval between first and second pulses|Device=/dev/pio_pulse1Off}}
|31:0
+
{{ControlRegister|Name=Pulse2On|Bits=31:0|Function=Duration of second pulse|Device=/dev/pio_pulse2On}}
|Frequency of generated sinewave
+
{{ControlRegister|Name=Pulse2Off|Bits=31:0|Function=Minimum interval between end of second pulse and first pulse repeat|Device=/dev/pio_pulse2off}}
|/dev/pio_phaseIncrement
+
{{ControlRegister|Name=PulseControl||Control bits for pulse generator and digitizer|Device=/dev/pio_pulseControl}}
|-
+
{{ControlRegister|Bits=5:4|Function=00 = adc input (normal operation); 01 = adc test signal (count); 10 = test mode (DAC output); 11 = test mode (constant 0xDEADBEEF)}}
!Pulse1On
+
{{ControlRegister|Bits=3|Function=ADC gate enable}}
|*
+
{{ControlRegister|Bits=2|Field=DAC B output|Function=0 = carrier; 1 = trigger}}
|31:0
+
|Length of first pulse
+
|/dev/pio_pulse1On
+
|-
+
!Pulse1Off
+
|*
+
|31:0
+
|Interval between first and second pulse
+
|/dev/pio_pulse1Off
+
|-
+
!Pulse2On
+
|*
+
|31:0
+
|Length of second pulse
+
|/dev/pio_pulse2On
+
|-
+
!Pulse2On
+
|*
+
|31:0
+
|Interval between second pulse and end of cycle
+
|/dev/pio_pulse2Off
+
|-
+
!PulseControl
+
|
+
|
+
|
+
|/dev/pio_pulse2On
+
|-
+
|
+
|ADC DMA source
+
|5:4
+
|00 = adc input (normal operation); 01 = adc test signal (count); 10 = test mode (DAC output); 11 = test mode (constant 0xDEADBEEF)
+
|
+
|-
+
|
+
|ADC gate enable
+
|3
+
|0 = enable; 1 = disable (always valid)
+
|
+
|-
+
|
+
|DAC B output
+
|2
+
|0 = carrier; 1 = trigger
+
|todo
+
|}
+
  
 
==API==
 
==API==

Revision as of 00:47, 19 June 2010

Control registers

Register Field Bits Function device
PhaseIncrement
*
31:0 Set frequency of generated sinewave /dev/pio_phaseIncrement
Pulse1On
*
31:0 Duration of first pulse /dev/pio_pulse1On
Pulse1Off
*
31:0 Interval between first and second pulses /dev/pio_pulse1Off
Pulse2On
*
31:0 Duration of second pulse /dev/pio_pulse2On
Pulse2Off
*
31:0 Minimum interval between end of second pulse and first pulse repeat /dev/pio_pulse2off
PulseControl
*
/dev/pio_pulseControl
*
5:4 00 = adc input (normal operation); 01 = adc test signal (count); 10 = test mode (DAC output); 11 = test mode (constant 0xDEADBEEF)
*
3 ADC gate enable
DAC B output
2 0 = carrier; 1 = trigger

API