Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103RE, DAC и VREF
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Salamander
Господа, пытаюсь подружиться с DAC в STM32F103RET6 (64 ноги).
Вот код:
Код
const uint16_t sin[32] = {

2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056,
3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,
599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647};

unsigned char i=0;

........

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);



  DAC->CR |= DAC_CR_EN1;
    

    
while(1)
{
    DAC->DHR12R1=sin[i++];
    if (i==32) i=0;
    delay_us(10);    
   }


На выходе получаю синусоиду от 1.5 до 2.3 вольт.
Пытаюсь разобраться, как же она расчитывается - в формуле фигурирует Vref.
А у указанного контроллера такой ножки нет.
Как быть? Мне надо полноразмерную синусоиду.
Aner
Vref внутренний, 1.2 вольта. Поищите в даташите сказано как использовать.
Salamander
прошелся поиском по Vref по всем 1000 страницам даташита - нет этого. Написано только, что в 64pin версиях Vref+ внутри соединен с Vdda
alag57
Цитата(Salamander @ May 2 2013, 08:40) *
прошелся поиском по Vref по всем 1000 страницам даташита - нет этого

Это вы по Reference manual-у смотрели. Даташит CD00191185.pdf стр.44 табл.13 - 1.2V
ViKo
В качестве опорного напряжения для АЦП и ЦАП используется Vref+. В корпусах с малым количеством выводов эта цепь подключена к питанию Vdda, которое, обычно цепляют к источнику Vdd (потом плачутся, что шумит АЦП).
Vrefint - это внутренний источник напряжения, который можно использовать при относительных измерениях - сначала измерил что-то, потом - внутренний источник, сравнил. К ЦАПам отношения не имеет.
Примерно, так представляю...
SeregaB
Цитата(Salamander @ May 1 2013, 22:56) *
Господа, пытаюсь подружиться с DAC в STM32F103RET6 (64 ноги).
Вот код:

На выходе получаю синусоиду от 1.5 до 2.3 вольт.
Пытаюсь разобраться, как же она расчитывается - в формуле фигурирует Vref.
А у указанного контроллера такой ножки нет.
Как быть? Мне надо полноразмерную синусоиду.


Выходной буфер включен?

CODE

/* DAC channel1 Configuration */
DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
DAC_Init(DAC_Channel_1, &DAC_InitStructure);
DAC_Cmd(DAC_Channel_1, ENABLE);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.