Использование внешнего Vref для ЦАП SAMD21 - PullRequest
0 голосов
/ 29 ноября 2018

Я использую плату SAMD21 Xplained.Я бегу пример DAC предоставленный Atmel Студия: DAC_QUICKSTART1

В заголовке файла, который поставляется с примером (dac_feature.h), я следующее перечисление:

enum dac_reference {
    /** 1V from the internal band-gap reference*/
    DAC_REFERENCE_INT1V = DAC_CTRLB_REFSEL(0),
    /** Analog V<SUB>CC</SUB> as reference */
    DAC_REFERENCE_AVCC  = DAC_CTRLB_REFSEL(1),
    /** External reference on AREF */
    DAC_REFERENCE_AREF  = DAC_CTRLB_REFSEL(2),
};

Первоначально, опорное напряжениевнутреннее напряжение 1 В.Я хочу использовать внешнюю ссылку, чтобы выходной сигнал ЦАП мог варьироваться от 0 В до 5 В.

Мой вопрос: как мне на самом деле установить эти настройки?

В том же файле - dac_feature.h, существует следующая структура:

struct dac_config {
    /** Reference voltage */
    enum dac_reference reference;
    /** Select DAC output */
    enum dac_output output;
    /** Left adjusted data */
    bool left_adjust;
    /** GCLK generator used to clock the peripheral */
    enum gclk_generator clock_source;
#ifdef FEATURE_DAC_DATABUF_WRITE_PROTECTION
    /** Bypass DATABUF write protection */
    bool databuf_protection_bypass;
#endif
    /** Voltage pump disable */
    bool voltage_pump_disable;
    /**
     * The DAC behaves as in normal mode when the chip enters STANDBY sleep
     * mode
     */
    bool run_in_standby;
#if (SAMC21)
    /** Dither mode enable data */
    bool dither_mode;
#endif
};

Здесь создается экземпляр dac_reference, называемый ссылкой.Я предполагаю, что это то, где это делается, но я все еще не уверен, как.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 07 декабря 2018

Конфигурация ЦАП может быть определена в struct dac_config, который затем будет использоваться в качестве параметра для dac_init().enum dac_reference определяет возможные значения, для которых можно установить dac_config.reference.

// DAC abstraction struct
struct dac_module dac_instance;

// DAC parameter struct
struct dac_config config_dac;

// initialize to defaults
dac_get_config_defaults(&config_dac);

// set DAC reference to AREF
config_dac.reference = DAC_REFERENCE_AREF;

// use parameters set above to initialize DAC hardware
dac_init(&dac_instance, DAC, &config_dac);

Вышеприведенные строки - вместе с более подробной информацией - можно найти в примечании к приложению AT03244 в главе 9.1.

...