Low speed ADC-DAC from Python?


#1

Folks,
Is it possible to read/write from/to the low speed
ADC/DAC from Python?

If possible, what would be a safe rate ?

Thankx,

Angilberto.


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


#2

On Mon, Apr 03, 2006 at 06:34:24AM -0700, Angilberto Muniz Sb wrote:

Folks,
Is it possible to read/write from/to the low speed
ADC/DAC from Python?

The python interfaces to the usrp are specified in
gr-usrp/src/usrp1.py. Check usrp/host/lib/usrp_basic.h for the
missing documentation (sorry about that. We’ve got a situation that’s
violating the “write once” rule):

//! magic value used on alternate register read interfaces
static const int READ_FAILED = -99999;

/*!

  • \brief Write auxiliary digital to analog converter.
  • \param which_dboard [0,1] which d’board
  •    		N.B., SLOT_TX_A and SLOT_RX_A share the same AUX DAC's.
    
  •      			SLOT_TX_B and SLOT_RX_B share the same AUX DAC's.
    
  • \param which_dac [2,3] TX slots must use only 2 and 3.
  • \param value [0,4095]
  • \returns true iff successful
    */
    bool write_aux_dac (int which_board, int which_dac, int value);

/*!

  • \brief Read auxiliary analog to digital converter.
  • \param which_dboard [0,1] which d’board
  • \param which_adc [0,1]
  • \returns value in the range [0,4095] if successful, else
    READ_FAILED.
    */
    int read_aux_adc (int which_dboard, int which_adc);

So from python:

d_board = 0 # 0: side A, 1: side B

v = u.read_aux_adc(d_board, 0)
ok = write_aux_dac(d_board, 2, 2048)

Be sure to pay attention to the comments above that start with N.B.
You may also want to take a look at the usrp schematics if this isn’t
clear.

If possible, what would be a safe rate ?

It’s pretty slow. You’ll need to try it to see how fast it’ll run on
your system. Each read or write is a round trip across the USB, plus
bit banging the SPI bus to talk to the AD9862. There’s no clock
pacing the reads and writes of the the aux dac/adc’s, so the samples
won’t be evenly spaced. Most daughterboards that use them, use them
for things like setting an analog gain control, or reading back an RSSI
indication.

Eric


#3

Perfect Eric.

Thank you for the details…

Angilberto.

— Eric B. removed_email_address@domain.invalid wrote:

a situation that’s
*
bool write_aux_dac (int which_board, int
*/

your system. Each read or write is a round trip

Eric


Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com