Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 Первый старт
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт сен 27, 2024 07:18:53

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 76 ]    , 2, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32 TIM1+Прерывание
СообщениеДобавлено: Ср авг 10, 2011 14:13:30 
Грызет канифоль

Зарегистрирован: Сб авг 21, 2010 20:44:27
Сообщений: 287
Откуда: Ростов
Рейтинг сообщения: 0
Большое Вам спасибо ) Все ясно )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 TIM1+Прерывание
СообщениеДобавлено: Ср авг 10, 2011 16:48:05 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
SubDia писал(а):
(Вы, кстати, не модератор на одном из подобных сайтов, аль обознался я?)

На kazus.ru...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 TIM1+Прерывание
СообщениеДобавлено: Ср авг 10, 2011 21:47:24 
Грызет канифоль

Зарегистрирован: Сб авг 21, 2010 20:44:27
Сообщений: 287
Откуда: Ростов
Рейтинг сообщения: 0
Если нужно сначала померять U на 10 канале затем U на 11 ?

RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; //Подключаем АЦП к линии тактирования
RCC->CFGR |= RCC_CFGR_ADCPRE; //Предделитель на максимум (на 8)
RCC->CFGR |= RCC_CFGR_ADCPRE_DIV8;

ADC1->CR2 |= ADC_CR2_CAL; //Запуск калибровки (это нужно сделать ДО установки ADON)
while (!(ADC1->CR2 & ADC_CR2_CAL))
{
}
ADC1->SQR3 |= (ADC_SQR3_SQ1_3 | ADC_SQR3_SQ1_1); // 10 канал, 1 преобразование PC0
ADC1->SQR3|= (ADC_SQR3_SQ2_3 | ADC_SQR3_SQ2_1|ADC_SQR3_SQ2_0); // 11 канал, 2 преобразование PC1 (добавил)
ADC1->CR2 |= (ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTSEL_2 | ADC_CR2_EXTTRIG);
ADC1->CR2 |= ADC_CR2_ADON;
GPIOC->CRL &= ~GPIO_CRL_CNF0; //Аналоговый вход (это АЦП, 10й канал) PC0
GPIOC->CRL &= ~GPIO_CRL_MODE0;
GPIOC->CRL &= ~GPIO_CRL_CNF1; //Аналоговый вход (это АЦП, 11й канал) PC1
GPIOC->CRL &= ~GPIO_CRL_MODE1;

void ADC_RBat(void)
{
ADC1->CR2 |= ADC_CR2_SWSTART; //Запуск преобразования
while (!(ADC1->SR & ADC_SR_EOC)) //Ждем окончания преобразования

adc = ADC1->DR; //Считываем данные (раньше так только с одного канала считывали а как с 2 или больше ? )

}


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32 TIM1+Прерывание
СообщениеДобавлено: Чт авг 11, 2011 14:14:59 
Мучитель микросхем

Карма: 15
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
Victor Gordienko писал(а):
](раньше так только с одного канала считывали а как с 2 или больше ? )
}

В вашем примере вы прочитаете только одно преобразование.
Есть несколько путей для считывания нескольких.
1. Также как раньше, только по очереди, каждый раз перенастраивая ADC на нужный канал. К сожалению у обычной группы каналов только одна выходная ячейка для помещения результатов.
2. Использовать инжектированную группу каналов. Для инжектированной группы есть 4 регистра для помещения результатов. Соотв нужно использовать ADC_JSQR регистр для настройки каналов и еще другие настройки для работы с инжектированными каналами. По инжектированным каналам за раз можно сделать до 4 преобразований. Название инжектированные происходит от того, что эти преобразования могут временно прерывать серию обычных преобразований. Но могут использоваться и отдельно Обратите внимание на порядок преобразований в инжектированной группе. Там были какие то подводные камни, описанные в документации. То ли первый канал в последней ячейке, то ли обратный порядок преобразования в группе. Нужно смотреть документацию внимательней.
3. Использовать 1 обычный и один инжектированный канал. Где-то есть флаг для запуска инжектированной группы после основной. В основной 1 преобразование и в инжектироавнной 1 преобразование.
4. Использовать DMA для передачи только что преобразованных данных обычных каналов. Такой подход использовал я при управлении источником питания на stm32f100с4 (статья на этом сайте). Нужно было считать значения напряжения и тока. Кроме того там используется и запуск инжектированного канала после основного но уже без DMA (3 вариант). Также можно посмотреть.
5. Использовать для считывания обычных каналов прерывание.


Вернуться наверх
 
Материалы вебинара «Пленочные конденсаторы Hongfa для источников питания и силовой электроники»

Опубликованы материалы вебинара, посвященного пленочным конденсаторам компании Hongfa, на котором была представлена текущая линейка и модельный ряд продукции этого направления, включая новые, недавно вышедшие серии. На вебинаре были приведены актуальные примеры применения пленочных конденсаторов Hongfa в источниках питания, зарядных станциях для электротранспорта, преобразователях частоты, фотоэлектрических преобразователях и ветрогенераторах.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Сб авг 13, 2011 22:41:41 
Родился

Зарегистрирован: Пт июл 02, 2010 22:05:38
Сообщений: 12
Рейтинг сообщения: 0
Здравствуйте! Кто уже запускал ацп, поделитесь впечатлениями. Как уровень шумов? У меня пока получается +-8 ЕМР. т.е из 12 бит реально только 8 получается снять((.


Вернуться наверх
 
Помехоподавляющие пленочные конденсаторы Hongfa для бытовых и промышленных сетей

Компания Hongfa - один из лидеров азиатского рынка пленочных конденсаторов с полным циклом производства. Она выпускает пять серий помехоподавляющих конденсаторов этого типа как для бытовой, так и для трехфазной промышленной сети, а также для автомобильного применения. Продукция компании по ассортименту, параметрам и количеству серий конденсаторов ЭМП не уступает другим крупным производителям этого сегмента и может легко заменить ассортимент ушедших из РФ брендов.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Сб авг 13, 2011 23:24:02 
Держит паяльник хвостом
Аватар пользователя

Карма: 9
Рейтинг сообщений: 40
Зарегистрирован: Сб апр 02, 2011 17:59:22
Сообщений: 995
Откуда: Город-герой Севастополь
Рейтинг сообщения: 0
У меня достаточно высок уровень шумов - прыжки на десятках милливольт. Правда, грешу на свои ручонки - плату грамотнее разводить нужно было.
Применяю алгоритм усреднения результатов в управляющей программе на ПК.

_________________
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вс авг 14, 2011 04:01:44 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
На линейность хар-ки и прочие специфические параметры не проверял, но АЦП достаточно хорошее.
В самых первых экспериментах подключал ко входу обычный переменник, значения плавали +- 1 ед
http://ziblog.ru/2011/01/15/stm32-chast ... atel-atsp/

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вс авг 14, 2011 12:44:42 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Zheleznjakov писал(а):
На линейность хар-ки и прочие специфические параметры не проверял, но АЦП достаточно хорошее.
Может кто подскажет по АЦП ?
Запуск взят из примеров к библиотеке от ST, измеряем Vref, но что-то значения сильно гуляют :(
Код:
   uint16_t ADC_res;
   RCC_ADCCLKConfig(RCC_PCLK2_Div8);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_GPIOA|   RCC_APB2Periph_USART1|
      RCC_APB2Periph_AFIO,ENABLE);

   ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
   ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;
   ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
   ADC_InitStructure.ADC_NbrOfChannel=1;
   ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;
   ADC_InitStructure.ADC_ScanConvMode=DISABLE;
   ADC_TempSensorVrefintCmd(ENABLE);
   ADC_Init(ADC1,&ADC_InitStructure);
   ADC_RegularChannelConfig(ADC1,ADC_Channel_Vrefint,1,ADC_SampleTime_55Cycles5);
   ADC_Cmd(ADC1, ENABLE);
   USART_SendStr(USART1,"Reset calibration\r\n");
   ADC_ResetCalibration(ADC1);
   while(ADC_GetResetCalibrationStatus(ADC1)) {}
   USART_SendStr(USART1,"Calibration\r\n");
   ADC_StartCalibration(ADC1);
   while(ADC_GetCalibrationStatus(ADC1)) {}

   ADC_SoftwareStartConvCmd(ADC1,ENABLE);
Далее в цикле
Код:
   while (ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET) {}
   ADC_res=ADC_GetConversionValue(ADC1);
   ADC_SoftwareStartConvCmd(ADC1,ENABLE);
и вывод на USART с подсчетом крайних значений и дельты.
В итоге за 905 секунд значения полученные с АЦП min:1488 max:1535 delta:47
Что-то великоват разброс для Vref

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Пн авг 15, 2011 13:01:38 
Родился

Зарегистрирован: Пт июл 02, 2010 22:05:38
Сообщений: 12
Рейтинг сообщения: 0
Вообще советуют на время преобразования переходить в режим sleep(т.е отключать обработку проги) по __WFI(), но у меня пока это результата не дало((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Пн авг 15, 2011 13:33:10 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Про sleep понятно, но мне кажется это надо при "борьбе за повышенную" точность.
В моем случае - меряем ИОН, и получаем +-20 ед. Многовато..

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Пн авг 15, 2011 20:41:51 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Вероятно влияет само АЦП, нужно увеличить его входное сопротивление для этого максимально увеличить время преобразования.

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Пн авг 15, 2011 21:23:41 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Не удержался решил попробовать, вот что получилось
при 1.5 cycles значение 0x66D-0x66E
при 239.5 cycles значение 0x675-0x676

т.е. не так уж и сильно пляшут.
плата STM32-Discovery

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Пн авг 15, 2011 21:54:16 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Zheleznjakov писал(а):
Не удержался решил попробовать, вот что получилось
при 1.5 cycles значение 0x66D-0x66E
при 239.5 cycles значение 0x675-0x676
т.е. не так уж и сильно пляшут.
плата STM32-Discovery

Спасибо за тест!
Хм... 1504 : 2412: min:1503 max:1511 delta:8
или 0x5DF-0x5E7 это при 239.5 циклов.
Плата самодельная, емкости по питанию стоят непосредственно у ног контроллера.
Тактовая 72МГц, делитель ЦАП - 8.
Кусок кода:
Код:
   RCC_ADCCLKConfig(RCC_PCLK2_Div8);
   RCC_GetClocksFreq(&clk);
   USART_SendStr(USART1,_int2strr(clk.ADCCLK_Frequency));
Выдает в терминалку 9000000

Попробую на discovery... Может, что-то в datasheet упустил - какие-то особенности монтажа.

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 04:20:20 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
А какой мк, а то у меня есть ещё вот такая плата
http://ziblog.ru/2011/03/25/demka-dlya-stm32f103cb/
попробую проверить на ней.

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 09:08:33 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Zheleznjakov писал(а):
А какой мк, а то у меня есть ещё вот такая плата
http://ziblog.ru/2011/03/25/demka-dlya-stm32f103cb/
попробую проверить на ней.

МК stm32f103cbt.
Плата аналогичная, своя:
Изображение


Вложения:
16082011129s.jpg [31.09 KiB]
Скачиваний: 5096

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 09:27:59 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Мыльни код, что бы мне не писать
можешь просто прошивку, только скажи какой порт USART

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 09:58:49 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Zheleznjakov писал(а):
Мыльни код, что бы мне не писать
можешь просто прошивку, только скажи какой порт USART

Саму библиотеку от ST я туда не пихал.
USART1, компилятор от CodeSourcery


Вложения:
ADC.zip [89.51 KiB]
Скачиваний: 324

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 11:13:13 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Zheleznjakov писал(а):
Мыльни код, что бы мне не писать
можешь просто прошивку, только скажи какой порт USART

В файле rename_to_hex.jpg прошивка - надо переименовать. :))


Вложения:
rename_to_hex.jpg [27.53 KiB]
Скачиваний: 646

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 12:37:32 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
На моей плате то же самое :)
min:1493 max:1501 delta:8
min:1493 max:1501 delta:8

Провел дополнительно пару тестов., см рисунки (прога самописная, вся шакала 256=1, т.е. вывожу младший байт)
рис2 - ожидаю-считываю-запускаю-посылаю (АЦП 14 МГц)
Вложение:
ри2.JPG [33.8 KiB]
Скачиваний: 607

рис1 - запускаю-ожидаю-считываю-посылаю (АЦП 14 МГц)
Вложение:
рис1.JPG [35.55 KiB]
Скачиваний: 881


видно что на втором случае лучше результат, видимо сказывается передача по уарт во время преобразования.

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 Первый старт
СообщениеДобавлено: Вт авг 16, 2011 12:41:00 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Сб июн 12, 2010 16:19:17
Сообщений: 190
Откуда: Россия, Томск
Рейтинг сообщения: 0
Изменил время преобразования с 55 до 239


Вложения:
рис3.JPG [34.02 KiB]
Скачиваний: 1023

_________________
С уважением, Денис Железняков aka ZiB
Мой блог: http://ziblog.ru
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 76 ]    , 2, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y