03-05-2007 01:40 PM
03-07-2007 10:47 AM
Hi Ern-
The AO_Config_Bank registers begin at 0xC3 for DAC0. You can see this in the tMSeries::_initialize() in tMSeries.cpp implementation that ships with the DDK documentation. The associated register IDs are shown in tMSeries.h (kAO_Config_Bank0Id starts at ID 133).
As for the necessary contents for all of the configuration registers, I would encourage you to look at the example aoex1.cpp from the DDK. The aoConfigureDAC() function shows the necessary settings and field descriptions for the AO_Config_Bank registers. That example also shows how to address the DAC_Direct_Data registers.
I just tested aoex1 with my PCI-6259 and the AO updates seem to be working correctly. Can you please clarify exactly what behavior you're seeing?
Thanks-
03-09-2007 03:00 PM
03-12-2007 09:49 AM
03-13-2007 04:26 PM
See my response on the other thread:
http://forums.ni.com/ni/board/message?board.id=90&message.id=809
04-05-2007 06:23 PM
02-19-2008 12:50 PM
02-20-2008 04:10 PM
Hi Pennells-
The 6010 is indeed similar to a 622x in AI terms, but in AO it's quite different. For AO, the 6010 uses the STCII general purpose PWM channels to create the AO data. I haven't had time to create an example yet, but here are some notes that might help you get started.
Each AO channel uses two of the Gen_PWM instances defined in tMSeries.h. For the sake of discussion, the PWM channels will be referred to upper and lower. These are the PWM channel values for their corresponding AO channels:
The actual register values to write to these PWM channels are as follow (where 'value' represents a normal 16-bit binary value, i.e. not 2's complement):
upperPWMValue = ((value >> 7) & 0x1FF) + 256;
lowerPWMValue = ((value & 0x7F) * 1564) / 1000 + 768;
Hopefully this helps-
02-21-2008 03:53 PM
02-21-2008 04:30 PM