Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

STM32F4xx не очень ясно АЦП

Непрочитано 09.06.2012, 03:25  
silabs
Частый гость
 
Регистрация: 08.10.2009
Сообщений: 21
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
silabs на пути к лучшему
По умолчанию STM32F4xx не очень ясно АЦП

Прошу помочь разобраться.
Начинаю разбираться с STM32F407VG (до этого долго работал с Silabs 8051 и AVR).
Задача следующая (8-ми канальный самописец):
- есть 8 каналов, одновременно может быть включено 1 или 2 или … все 8
- необходимо считывать данные непрерывно с каждого включенного канала с частотой от 1 КГц до Max возможной (например 7.2 МГц)
- данные писать в ОЗУ и по мере возможностей передавать в ПК по Ethernet

Не могу понять что означает в datasheet “Additional functions”: ADC123_INn и ADC12_INn.
Например PA0 ADC123_IN0 это означает что вывод PA0 можно использовать как канал 0 для АЦП1, АЦП2 и АЦП3 или только для одного из АЦП. Или если используется независимый режим то ADC123_IN0 можно использовать только для одного АЦП, а если используется мульти режим то ADC123_IN0 можно использовать для всех АЦП?

В datasheet написано: However, an ADC cannot start a conversion if the complementary ADC is still sampling its input (only one ADC can sample the input signal at a given time), т.е. только УВХ одного АЦП одновременно может быть подключено к PA0?

Как я понял PA0 просто конфигурируется как аналоговый вход без подтяжек, после чего его номер прописываеться в ADC_SQR. PA0 как то привязывается к определенному АЦП?
Если прописать PA0 сразу в ADC1_SQR, ADC2_SQR и ADC3_SQR и запустить все 3 АЦП в независимом режиме, но что бы их моменты УВХ были разнесены по времени, так правильно?

Каналы ADC12_INn не могу использоваться для АПЦ3?

И еще не совсем ясно что такое external trigger?
Есть биты “Configuring the trigger polarity”
Trigger detection disabled - это означает что АЦП можно запустить только программно SWSTART?
Detection rising / falling edges - это только для trigger запуска от EXTI или еще как-то от таймеров по обоим фронтам?

Спасибо!

P.S.
Как-то странно STM аналоговый каналы сделала, если включаешь Ethernet или USB HS половины аналоговых каналов нет.
Реклама:
silabs вне форума  
Сказали "Спасибо" silabs
warel (29.06.2019)
Непрочитано 11.06.2012, 14:19  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

а зачем тебе одновременно 3 включенных ацп?
Hives вне форума  
Сказали "Спасибо" Hives
warel (29.06.2019)
Непрочитано 11.06.2012, 14:26  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

8 каналов по 1кГц можно считывать со частотой 8кГц, переключая каналы:
Код:
u16 adc_read(u8 channel)
{
  	ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_1Cycles5);
  	// Start the conversion
  	ADC_SoftwareStartConvCmd(ADC1, ENABLE);
  	// Wait until conversion completion
  	while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
  	// Get the conversion value
  	return ADC_GetConversionValue(ADC1);
}
И инитиализация:
Код:
void adc_init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);					//ADC init

	ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
	ADC_InitStructure.ADC_NbrOfChannel = 1;
  	/* Now do the setup */
  	ADC_Init(ADC1, &ADC_InitStructure);
  	/* Enable ADC1 */
  	ADC_Cmd(ADC1, ENABLE);

  	/* Enable ADC1 reset calibaration register */
  	ADC_ResetCalibration(ADC1);
  	/* Check the end of ADC1 reset calibration register */
  	while(ADC_GetResetCalibrationStatus(ADC1));
  	/* Start ADC1 calibaration */
  	ADC_StartCalibration(ADC1);
  	/* Check the end of ADC1 calibration */
  	while(ADC_GetCalibrationStatus(ADC1));
}
Easyrider83 вне форума  
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
silabs (12.06.2012), warel (29.06.2019)
Непрочитано 12.06.2012, 01:02  
silabs
Частый гость
 
Регистрация: 08.10.2009
Сообщений: 21
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
silabs на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Сообщение от Hives Посмотреть сообщение
а зачем тебе одновременно 3 включенных ацп?
Для до Max возможной (например 7.2 МГц)

Сообщение от Easyrider83 Посмотреть сообщение
8 каналов по 1кГц можно считывать со частотой 8кГц, переключая каналы:
Спасибо.
Не совсем понял к чему это?
1 КГц это минимальная частота, реально работа будет на 3 - 5 МГц.
silabs вне форума  
Сказали "Спасибо" silabs
warel (29.06.2019)
Непрочитано 12.06.2012, 09:36  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

В этом случае вам нужен внешний АЦП и ПЛИС.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 12.06.2012, 13:18  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Сообщение от silabs Посмотреть сообщение
Если прописать PA0 сразу в ADC1_SQR, ADC2_SQR и ADC3_SQR и запустить все 3 АЦП в независимом режиме, но что бы их моменты УВХ были разнесены по времени, так правильно?
Да. И ещё Вам нужен "Interleaved mode". Тогда после триггера стартует ADC1. Его УВХ подключается ко входу на 3 клока. По окончании выборки + 2 клока подключается УВХ ADC2, а первый ADC начинает преобразование. Через 3+2 клока подключается УВХ ADC3, второй ADC начинает преобразование параллельно с первым. Ещё через 3 клока начинается преобразование ADC3.
Если к этому моменту ADC1 уже закончил преобразования, то его УВХ подключается ко входу и всё начинается сначала.
То есть, если 3 клока на выборку и 12 на преобразование, то всё ровненько будет преобразовываться через каждые 5 ADC клоков.
Yurkin2007 вне форума  
Эти 2 пользователя(ей) сказали Спасибо Yurkin2007 за это сообщение:
silabs (12.06.2012), warel (29.06.2019)
Непрочитано 12.06.2012, 13:49  
silabs
Частый гость
 
Регистрация: 08.10.2009
Сообщений: 21
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
silabs на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Сообщение от Easyrider83 Посмотреть сообщение
В этом случае вам нужен внешний АЦП и ПЛИС.
Нет, для этого м/к как раз это не нужно.

Сообщение от Yurkin2007 Посмотреть сообщение
Да. И ещё Вам нужен "Interleaved mode".
Спасибо.
Даташит я прочитал, теорию понял.
Не понятны только нюансы о которых спрашиваю вверху.

Interleaved mode годится для Max возможной частоты.
Если нужно например не 7.2 МГц, а 5 МГц или 6 МГц и на 2 или 3 канала.
То не совсем ясно как использовать Interleaved mode.

P.S.
По external trigger.
Для того что бы например запускать АЦП от T1 нужно установить:
ADC_CR2-›EXTEN = 00b (Trigger detection disabled)
ADC_CR2-›EXTSEL = 0000b (Timer 1 CC1 event)
Так?
silabs вне форума  
Сказали "Спасибо" silabs
warel (29.06.2019)
Непрочитано 12.06.2012, 14:13  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Сообщение от silabs Посмотреть сообщение
Если нужно например не 7.2 МГц, а 5 МГц или 6 МГц
Используйте DELAY.
Цитата:
Регистр ADC_CCR:
Bit 11:8 DELAY: Delay between 2 sampling phases
максимальная задержка между преобразованиями 20 клоков
Yurkin2007 вне форума  
Сказали "Спасибо" Yurkin2007
warel (29.06.2019)
Непрочитано 12.06.2012, 14:19  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Сообщение от silabs Посмотреть сообщение
Для того что бы например запускать АЦП от T1 нужно установить:
ADC_CR2-›EXTEN = 00b (Trigger detection disabled)
ADC_CR2-›EXTSEL = 0000b (Timer 1 CC1 event)
Таймер есть внешнее устройство для АЦП и поэтому надо разрешить EXTEN=01b
Yurkin2007 вне форума  
Эти 2 пользователя(ей) сказали Спасибо Yurkin2007 за это сообщение:
silabs (13.06.2012), warel (29.06.2019)
Непрочитано 16.06.2012, 00:37  
pasipaka
Прописка
 
Регистрация: 21.03.2011
Сообщений: 107
Сказал спасибо: 15
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
pasipaka на пути к лучшему
По умолчанию Re: STM32F4xx не очень ясно АЦП

Так а на практике, с какой макс.частотой дискретизации можно например 12 ( каналов оцифровывать? Частоту имею ввиду отдельного канала. Учитывая не только скорострельность модуля ADC, но и задержки на коммутацию, обработку и отложение результатов в буфер.

Последний раз редактировалось pasipaka; 16.06.2012 в 22:11.
pasipaka вне форума  
Сказали "Спасибо" pasipaka
warel (29.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень низкочастотный детектор innovator_king Поиск схем. Делимся схемами 11 20.08.2010 00:27
Я очень рад halizev2 Делимся опытом 1 20.10.2008 11:39
Очень интригующий дивайс Kabron Отвлекитесь, эмбеддеры! 10 18.09.2007 15:36
АЦП на МК без АЦП zelanez Микроконтроллеры, АЦП, память и т.д 7 29.07.2006 09:59


Часовой пояс GMT +4, время: 23:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.