Краткий вопрос по ЦАП и АЦП в cortex M4

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Добрый день! курю мануал по данному девайсу. В описании ЦАПа не понятна вот такая запись:
Once the DAC channelx is enabled, the corresponding GPIO pin (PA4 or PA5) is automatically connected to the analog converter output (DAC_OUTx). In order to avoid parasitic consumption, the PA4 or PA5 pin should first be configured to analog (AIN).
Не совсем понятно последнее предложение. Я так понимаю, что для уменьшения потребления выходной пин ЦАПа изначально сконфигурирован в аналоговый вход? Или как это понять?

И вопрос по АЦП. Есть там нога REF-. В описании говорится, что
The lower/negative reference voltage for the ADC, VREF– = VSSA
Т.е. должна быть равна уровню потенциала на аналоговой земле. А зачем тогда эта нога вообще нужна? Я предполагаю, что для осуществления измерений переменного напряжения. т.е. при помощи нее можно было бы задать какую-то среднюю точку. но как тогда быть с тем, что она должна быть равна нулю? Поясните, кто разобрался. Что будет, если на нее подать отрицательный потенциал относительно земли? какой максимальный уровень может на ней присутствовать?
Fucking static initialization order fiasco
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

Pink-Pank писал(а): Не совсем понятно последнее предложение. Я так понимаю, что для уменьшения потребления выходной пин ЦАПа изначально сконфигурирован в аналоговый вход? Или как это понять?
Нет, это значит, что ты сначала должен сконфигурировать ножку процессора как Analog Input. Код такой примерно такой.

Код: Выделить всё

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
Pink-Pank писал(а): И вопрос по АЦП. Есть там нога REF-.
Это нужно для того, чтобы разделить аналоговую и цифровую землю. Там ставят обычный LC фильтр, как и при делении на аналоговое и цифровое питание. Отрицательное напряжение туда не нужно подавать, только защитный диод сгорит.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Нет, это значит, что ты сначала должен сконфигурировать ножку процессора как Analog Input
Так ЦАП сам же подключается к нужной ноге.. Дополнительно ничего настраивать не надо.. :dont_know:
для того, чтобы разделить аналоговую и цифровую землю.
А для аналоговой земли же там отдельная нога.. Vssa
И в корпусах с количеством выводов меньше 176 этой ноги вообще нет... (смотрю 405-407 серию)
Fucking static initialization order fiasco
Контактная информация:
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Pink-Pank писал(а):А для аналоговой земли же там отдельная нога.. Vssa
Это пин МК... а аналоговая земля это правила разводки платы... Земля может быть и не одна, и не две...
"Я не даю готовых решений, я заставляю думать!"(С)
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Изображение

Кажется догадался, пин задает среднюю точку. Средняя точка не может быть меньше 0 и больше Vref+
Или все-таки нижний потенциал, относительно которого меряется напряжение?
Вложения
12345.png
(29.87 КБ) 1190 скачиваний
Fucking static initialization order fiasco
Контактная информация:
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

Pink-Pank писал(а): Так ЦАП сам же подключается к нужной ноге.. Дополнительно ничего настраивать не надо.. :dont_know:
DAC сам подключается. Но вот триггер Шмита, который ответственен за определение - логическая 0 или 1 на этом пине - сам не отключается. Впрочем если используется буферный усилитель встроенный - это неважно.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Пробовал использовать без буфера - все норм работает..
А еще вопрос появился про регулярные и инжектированные группы. В чем отличие? За исключением того, что регулярные пишут значения в один регистр, а инжектированные в 4 разных?
Fucking static initialization order fiasco
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Инжектированная группа может прерывать преобразование регулярной. После обработки инжектированной насколько помню преобразование регулярной возобновляется. Еще для каждого результата имеется регистр смещения, это значение вычитается из результата. И источники запуска у них различаются.
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Да, я ознакомился с этими возможностями, но это частности. А в целом - один фиг каналы последовательно опрашиваются. Если бы одновременно все 4 инжектированных канала мерились... А по поводу пина Vref- кто-то что-нибудь скажет?
Fucking static initialization order fiasco
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Ну собственно этим и различается.
Одновременно все 4 канала можно измерить только 4-мя АЦП. А у камня ведь перед АЦП мультиплексор стоит. Вот им по очереди и выбираете каналы. Были жирные камушки с двойным АЦП, выходит что ими одновременно 2 канала измерить можно.

По поводу Vref-, он танется отдельной дорожкой до аналоговой земли ИОН(например REF196) для уменьшения цифровых шумов и прочей гадости. Но если у вас малоногие корпуса, то искать его бесполезно, он уже внутри соединен к VSSA.
Добавлено: Пн июл 07, 2014 17:54:34
Вот тут описывается как правильно какой пин куда подключать:
AN2834
Application note
How to get the best ADC accuracy
in STM32F10xxx devices
Последний раз редактировалось ibiza11 Ср июл 09, 2014 10:11:40, всего редактировалось 1 раз.
Причина: 2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

для уменьшения цифровых шумов и прочей гадости.
Так в корпусах с большим количеством ног присутствуют и Vssa и Vref-... Получаются две земли.. Отсюда и вопросы, нафига... :dont_know: Должен же быть какой-то сокровенный смысл этого.. Почему, как у ЦАПа не оставить просто Vssa?
Fucking static initialization order fiasco
Контактная информация:
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Что конкретно двигало инженерами ST при разработки кристалла мне неизвестно, но предположить могу следующее.
На картинке из даташита видно:
6.1.6 Power supply scheme
Figure 9. Power supply scheme
что VDDA и VSSA питают не только АЦП, но и ЦАП и схему тактирования(HSE,PLL etc.). Следовательно все их помои пойдут на VREF-/VREF+. Это не так заметно для 12 битного АЦП, но 16-битные сигма-дельта преобразователи будут хорошо видеть шум. Поэтому отдельная дорожка до точки соединения земель поможет улучшить шумовые параметры.
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Слабо, конечно, верится, но все-таки обнадежили.. :))) Спасибо! )
Fucking static initialization order fiasco
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

А кто подскажет вот в этом месте:
Clock for the analog circuitry: ADCCLK, common to all ADCs. This clock is generated from the APB2 clock divided by a programmable prescaler that allows the ADC to work at fPCLK2/2, /4, /6 or /8. Refer to the datasheets for the maximum value of ADCCLK.
просматривал раздел по тактированию, не нашел там информации про АЦП.
Насколько я понял, АЦП берет для аналоговой части тактовый сигнал из APB2. И в каком-то регистре можно установить делитель для АЦП. Что за тактовый сигнал fPCLK2? Я так понимаю, это сигнал этой шины? И где регистр для деления частоты АЦП на 2, 4, 6 или 8? Для ABP2 прескалеры такие: 1, 2, 4, 8, 16.. А где для АЦП? :dont_know: Ткните куды надо, плиз!
СпойлерИзображение
Вложения
12345.png
(87.79 КБ) 882 скачивания
Fucking static initialization order fiasco
Контактная информация:
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

Дык берем первый попавшийся сэмпл и смотрим :))
Например открыл ADC3_DMA из STM32F4-Discovery_FW_V1.1.0.

Видим код:

Код: Выделить всё

  ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
  ADC_CommonInit(&ADC_CommonInitStructure);
Лезем в ADC_CommonInit и смотрим куда пишется ADC_Prescaler.
ADC->CCR = ...

Ага Bits 17:16 ADCPRE: ADC prescaler в регистре ADC_CCR
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Спасиб! А вот ЦАП. Если ножку порта на выход настроить, подать 1 или 0, а потом включить ЦАП с определенным уровнем. Бо-бо будет? Или все лишнее само отключится?
Fucking static initialization order fiasco
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

Что, никто не знает?
Fucking static initialization order fiasco
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Документация знает:
Note: Once DAC_Channelx is enabled, the corresponding GPIO pin (PA4 or PA5) is automatically
connected to the analog converter output (DAC_OUTx). In order to avoid parasitic
consumption, the PA4 or PA5 pin should first be configured to analog (AIN).
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

А когда ЦАП выключаем, предыдущие настройки возвращаются или нет? :shock:
Fucking static initialization order fiasco
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

выключение ЦАП на настройки ног никак не влияет - настройки ног делаем тоже ручками
Ответить

Вернуться в «ARM»