- From: Rolf Mueller <rolf.mueller_at_uni-tuebingen.de>
- Date: Tue, 23 Jul 2002 16:04:55 +0200
On Thu, Jul 18, 2002 at 09:55:36AM -0700, David Schleef wrote:
> Find out what is different, and find the minimal change that
> will fix it. It will probably be one or two register writes,
> nothing more.
Thank you for your advice. Below is a working sequence of register
accesses as well as what comedi does. Maybe somebody happens to see
the minimal change needed to fix it?
This sequence works: ------------
Joint_Reset 0x48 (wind) 0x0011 AI_Reset, AI_Configuration_Start=1
Interrupt_A_Ack 0x04 (drct) 0x3f80 (AI_SC_TC_Error_Confirm,AI_SC_TC_Interrupt_Ack,AI_START1_Interrupt_Ack,AI_START2_Interrupt_Ack,AI_START_Interrupt_Ack,AI_STOP_Int
errupt_Ack,AI_Error_Interrupt_Ack)=1
AI_Mode_1 0x0c (wind) 0x000c Reserved_One=1,AI_Start_Stop=1
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0,AI_Configuration_End=1
Write_Strobe_0 0x52 (wind) 0x0001 Clear configuration memory
Write_Strobe_1 0x53 (wind) 0x0001 Clear ADC FIFO
ConfigFifoHigh 0x12 (drct) 0x1000 Channel=0,ChannelType(Differential)
ConfigFifoLow 0x10 (drct) 0x8001 LastChannel=1,Gain(Gain001_0)
Clock_and_FOUT 0x38 (wind) 0x1b00 Slow_Internal_Timebase=1,Slow_Internal_Time_Divide_By_2=1,Clock_To_Board=1,Clock_To_Board_Divide_By_2=1
Write_Strobe_1 0x53 (wind) 0x0001 Clear ADC FIFO
Joint_Reset 0x48 (wind) 0x0010 AI_Configuration_Start=1
AI_Personal 0x4d (wind) 0xa020 AI_LOCALMUX_CLK_Pulse_Width(About_1_Clock_Period), AI_SHIFTIN_Pulse_Width(About_2_Clock_Periods),AI_SOC_Polarity(Falling_Edge)
AI_Output_Control 0x3c (wind) 0x032f AI_CONVERT_Output_Select(Active_High),AI_SC_TC_Output_Select(Active_High),AI_SCAN_IN_PROG_Output_Select(Active_High),AI_LOCALMUX_
CLK_Output_Select(Active_Low)
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0, AI_Configuration_End=1
AI_Command_1 0x08 (wind) 0x0001 AI_CONVERT_Pulse=1
AI_Mode_1 0x0c (wind) 0x000d AI_Trigger_Once=1
AI_Trigger_Select 0x3f (wind) 0x0060 AI_START1_Select(Pulse), AI_START1_Polarity(Active_High_Or_Rising_Edge),AI_START1_Edge=1,AI_START1_Sync=1
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0, AI_Configuration_End=1
Joint_Reset 0x48 (wind) 0x0010 AI_Configuration_Start=1
AI_START_STOP_Select 0x3e (wind) 0x0060 AI_START_Select(SI_TC),AI_START_Edge=1,AI_START_Sync=1,AI_START_Polarity(Active_High_Or_Rising_Edge)
AI_SI_Load_A 0x0e (wind) 0x0000
0x0f (wind) 0x0001
AI_Command_1 0x08 (wind) 0x0200 AI_SI_Load
AI_SI_Load_A 0x0e (wind) 0x0000
0x0f (wind) 0x0001
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0, AI_Configuration_End=1
Joint_Reset 0x48 (wind) 0x0010 AI_Configuration_Start=1
AI_START_STOP_Select 0x3e (wind) 0x09e0 AI_STOP_Select(IN), AI_STOP_Polarity(Active_High_Or_Rising_Edge)
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0, AI_Configuration_End=1
Joint_Reset 0x48 (wind) 0x0010 AI_Configuration_Start=1
AI_SI2_Load_A 0x17 (wind) 0x0001
AI_SI2_Load_B 0x19 (wind) 0x0001
AI_Mode_2 0x0d (wind) 0x0100 AI_SI2_Reload_Mode(Alternate_First_Period_Every_STOP)
AI_Command_1 0x08 (wind) 0x0800 AI_SI2_Load=1
AI_Mode_2 0x0d (wind) 0x0300 AI_SI2_Initial_Load_Source(Load_B)
Joint_Reset 0x48 (wind) 0x0100 AI_Configuration_Start=0, AI_Configuration_End=1
Write_Strobe_1 0x53 (wind) 0x0001 Clear ADC FIFO
AI_Command_1 0x08 (wind) 0x1540 AI_SC_Arm=1,AI_SI_Arm=1,AI_SI2_Arm=1,AI_DIV_Arm=1
AI_Command_2 0x08 (drct) 0x0001 AI_START1_Pulse=1
read:
AI_Status_1 0x04 (drct) 0x00a2
And this is what comedi does instead: ----------
DIO_Control 0x0b (wind) 0x0000
Joint_Reset 0x48 (wind) 0x0004
Interrupt_A_Enable 0x49 (wind) 0x0000
Interrupt_A_Enable 0x49 (wind) 0x0000
Interrupt_A_Ack 0x02 (wind) 0xc060
Analog_Trigger_Etc 0x3d (wind) 0x4000
G0_Mode 0x1a (wind) 0x0000
G0_Input_Select 0x24 (wind) 0x0000
GO_Autoincrement 0x44 (wind) 0x0000
Joint_Reset 0x48 (wind) 0x0008
Interrupt_B_Enable 0x4b (wind) 0x0000
Interrupt_B_Enable 0x4b (wind) 0x0000
Interrupt_B_Ack 0x03 (wind) 0xc006
Analog_Trigger_Etc 0x3d (wind) 0xc000
G1_Mode 0x1b (wind) 0x0000
G1_Input_Select 0x25 (wind) 0x0000
G1_Autoincrement 0x45 (wind) 0x0000
IO_Bidirection_Pin 0x39 (wind) 0x0000
Interrupt_A_Enable 0x49 (wind) 0x0000
Joint_Reset 0x48 (wind) 0x0001
Write_Strobe_1 0x53 (wind) 0x0001
Joint_Reset 0x48 (wind) 0x0010
AI_Command_1 0x08 (wind) 0x0000
AI_Mode_1 0x0c (wind) 0x000d
AI_Mode_2 0x0d (wind) 0x0000
AI_Mode_3 0x57 (wind) 0x0000
AI_Personal 0x4d (wind) 0xa420
AI_Mode_1 0x0c (wind) 0x032e
AI_START_STOP_Select 0x3e (wind) 0x29e0
Interrupt_A_Ack 0x02 (wind) 0x3f80
Joint_Reset 0x48 (wind) 0x0100
Clock_and_FOUT 0x38 (wind) 0x1ba0
Joint_Reset 0x48 (wind) 0x0020
AO_Command_1 0x09 (wind) 0x2000
Interrupt_B_Enable 0x4b (wind) 0x0000
AO_Personal 0x4e (wind) 0x0010
Interrupt_B_Ack 0x03 (wind) 0x3f98
AO_Personal 0x4e (wind) 0x1430
AO_Output_Control 0x56 (wind) 0x0000
AO_START_Select 0x42 (wind) 0x0000
AO_Command_1 0x09 (wind) 0x0000
AI_SI_Load_B 0x11 (wind) 0x00ff
0x09 (drct) 0x0021
Write_Strobe_1 0x53 (wind) 0x0001
Write_Strobe_0 0x52 (wind) 0x0001
ConfigFifoHigh 0x12 (drct) 0x1000
ConfigFifoLow 0x10 (drct) 0x800a
AI_Command_1 0x08 (wind) 0x0001
ni_E: timeout 1
AI_Command_1 0x08 (wind) 0x0001
ni_E: timeout 2
Received on 2002-07-23Z13:04:55