Например TDA7294

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





Текущее время: Вс окт 20, 2024 02:54:51

Часовой пояс: 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. Использовать для считывания обычных каналов прерывание.


Вернуться наверх
 
Надежные решения и компоненты SUNCO для управления реле

Рассмотрим реализацию узла управления реле на примере компонентов SUNCO и реле Hongfa. Разберем оптимальные схемы и долговечные полупроводниковые компоненты для их реализации среди широкого ассортимента SUNCO. В номенклатуру компании SUNCO входят диодные мосты, выпрямительные, сигнальные и TVS-диоды, стабилитроны, биполярные, цифровые PNP- и NPN-транзисторы, маломощные тиристоры, симисторы и MOSFET.

Подробнее>>
Не в сети
 Заголовок сообщения: 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]
Скачиваний: 5098

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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]
Скачиваний: 325

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: 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]
Скачиваний: 1024

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

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


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

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


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

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


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