Add register bit to show 4-channel support
Firmware version 0.8.
This commit is contained in:
		
							parent
							
								
									674229791f
								
							
						
					
					
						commit
						8549f151bc
					
				|  | @ -549,6 +549,7 @@ Enable 4-channel sampling (only supported on 4-channel devices). | |||
| | Bits    | Field name    | Access | Description | | ||||
| |---------|---------------|--------|-------------| | ||||
| | 0       | ch4_mode      | RW     | '1' to enable 4-channel sampling. | | ||||
| | 8       | ch4_enabled   | RO     | '1' for a 4-channel device. | | ||||
| 
 | ||||
| When 4-channel sampling is disabled, only channels IN1 and IN2 are active. | ||||
| One 64-bit word is emitted for each decimated sample, containing the data of these two channels. | ||||
|  |  | |||
|  | @ -94,7 +94,7 @@ package puzzlefw_pkg is | |||
|     -- Firmware info word. | ||||
|     constant fw_api_version:        natural := 1; | ||||
|     constant fw_version_major:      natural := 0; | ||||
|     constant fw_version_minor:      natural := 7; | ||||
|     constant fw_version_minor:      natural := 8; | ||||
|     constant fw_info_word:          std_logic_vector(31 downto 0) := | ||||
|         x"4a" | ||||
|         & std_logic_vector(to_unsigned(fw_api_version, 8)) | ||||
|  |  | |||
|  | @ -286,6 +286,8 @@ begin | |||
| 
 | ||||
|     -- Memory-mapped registers. | ||||
|     inst_registers: entity work.registers | ||||
|         generic map ( | ||||
|             num_acq_channels    => 2 ) | ||||
|         port map ( | ||||
|             clk                 => clk_adc, | ||||
|             reset               => s_reset, | ||||
|  |  | |||
|  | @ -13,6 +13,11 @@ use work.puzzlefw_pkg.all; | |||
| 
 | ||||
| entity registers is | ||||
| 
 | ||||
|     generic ( | ||||
|         -- Number of analog input channels. It should be either 2 or 4. | ||||
|         num_acq_channels:   integer range 2 to 4 | ||||
|     ); | ||||
| 
 | ||||
|     port ( | ||||
|         -- Main clock, active on rising edge. | ||||
|         clk:                in  std_logic; | ||||
|  | @ -116,7 +121,11 @@ begin | |||
|                 when reg_decimation_factor => v.prdata(17 downto 0) := r.reg_control.decimation_factor; | ||||
|                 when reg_shift_steps =>     v.prdata(3 downto 0) := r.reg_control.shift_steps; | ||||
|                 when reg_averaging_en =>    v.prdata(0) := r.reg_control.averaging_en; | ||||
|                 when reg_ch4_mode =>        v.prdata(0) := r.reg_control.ch4_mode; | ||||
|                 when reg_ch4_mode => | ||||
|                     v.prdata(0) := r.reg_control.ch4_mode; | ||||
|                     if num_acq_channels > 2 then | ||||
|                         v.prdata(8) := '1'; | ||||
|                     end if; | ||||
|                 when reg_simulate_adc =>    v.prdata(0) := r.reg_control.simulate_adc; | ||||
|                 when reg_trigger_mode => | ||||
|                     v.prdata(0) := r.reg_control.trig_auto_en; | ||||
|  | @ -186,7 +195,10 @@ begin | |||
|                 when reg_decimation_factor => v.reg_control.decimation_factor := apb_pwdata(17 downto 0); | ||||
|                 when reg_shift_steps =>     v.reg_control.shift_steps := apb_pwdata(3 downto 0); | ||||
|                 when reg_averaging_en =>    v.reg_control.averaging_en := apb_pwdata(0); | ||||
|                 when reg_ch4_mode =>        v.reg_control.ch4_mode := apb_pwdata(0); | ||||
|                 when reg_ch4_mode => | ||||
|                     if num_acq_channels > 2 then | ||||
|                         v.reg_control.ch4_mode := apb_pwdata(0); | ||||
|                     end if; | ||||
|                 when reg_simulate_adc =>    v.reg_control.simulate_adc := apb_pwdata(0); | ||||
|                 when reg_trigger_mode => | ||||
|                     v.reg_control.trig_auto_en := apb_pwdata(0); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue