реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32F103RE, DAC и VREF
Salamander
сообщение May 1 2013, 18:56
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Господа, пытаюсь подружиться с 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.
А у указанного контроллера такой ножки нет.
Как быть? Мне надо полноразмерную синусоиду.

Сообщение отредактировал Salamander - May 1 2013, 19:07
Go to the top of the page
 
+Quote Post
Aner
сообщение May 1 2013, 20:26
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Vref внутренний, 1.2 вольта. Поищите в даташите сказано как использовать.
Go to the top of the page
 
+Quote Post
Salamander
сообщение May 2 2013, 02:40
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



прошелся поиском по Vref по всем 1000 страницам даташита - нет этого. Написано только, что в 64pin версиях Vref+ внутри соединен с Vdda
Go to the top of the page
 
+Quote Post
alag57
сообщение May 2 2013, 06:00
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 130
Регистрация: 26-06-06
Из: Березовский
Пользователь №: 18 355



Цитата(Salamander @ May 2 2013, 08:40) *
прошелся поиском по Vref по всем 1000 страницам даташита - нет этого

Это вы по Reference manual-у смотрели. Даташит CD00191185.pdf стр.44 табл.13 - 1.2V
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 2 2013, 08:46
Сообщение #5


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В качестве опорного напряжения для АЦП и ЦАП используется Vref+. В корпусах с малым количеством выводов эта цепь подключена к питанию Vdda, которое, обычно цепляют к источнику Vdd (потом плачутся, что шумит АЦП).
Vrefint - это внутренний источник напряжения, который можно использовать при относительных измерениях - сначала измерил что-то, потом - внутренний источник, сравнил. К ЦАПам отношения не имеет.
Примерно, так представляю...
Go to the top of the page
 
+Quote Post
SeregaB
сообщение May 15 2013, 07:47
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 55
Регистрация: 6-04-06
Из: Москва, Зеленоград
Пользователь №: 15 863



Цитата(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);
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016