Например TDA7294

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





Текущее время: Ср апр 24, 2024 05:18:14

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


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



Начать новую тему Ответить на тему  [ Сообщений: 84 ]    , , 3, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пт дек 06, 2013 22:40:25 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Keil однозначно .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 00:18:56 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 44
Зарегистрирован: Пт сен 10, 2010 20:48:01
Сообщений: 350
Откуда: Минск
Рейтинг сообщения: 1
Мой рабочий код – проверен на GCC+


Вложения:
usart_stm32f051.c [1.93 KiB]
Скачиваний: 1130


Последний раз редактировалось wss60 Сб дек 07, 2013 00:32:32, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 00:23:45 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
wss60, Да чуть не забыл.


Цитата:
#define APBCLK 8000000UL // частота мк


Так как ты переключаешь тактирование USART на HSI,
корректней было обозвать сей дефайн USARTCLK с соответствующей правкой вычислялки...


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 00:33:50 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 44
Зарегистрирован: Пт сен 10, 2010 20:48:01
Сообщений: 350
Откуда: Минск
Рейтинг сообщения: 0
Подправил :)


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 10:13:56 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
wss60, благодарю за пример.
Я пока никак не разберусь с NVIC. Я вижу, что в начале устанавливается таблица прерываний по одному вектору на устройство.
Но затем у нас есть, например в USART ещё 13 маскируемых запросов на прерывания. Как их различать? В AVR для этого были свои векторы, а здесь есть NVIC, который для меня пока чёрный ящик.
Если программа переходит по вектору прерываний, значит прерывание отрабатывается, а если из вектора не возвращается, значит проблема или со стеком, или с адресом возврата, то есть с настройками NVIC.
Как стек настраивается, сколько стеков в СТМ?
Курю даташит, уши горят.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 10:18:55 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Я правильно думаю?
Вначале в USART разрешаются прерывания по определённому событию:
Код:
  USART1->CR1  |= USART_CR1_RXNEIE;       //прерывание по приему данных

Затем в NVIC разрешается прерывание USART
Код:
  NVIC_EnableIRQ (USART1_IRQn);           //разрешить прерывания от USART1

Затем в прерывании анализируется источник прерывания:
Код:
if((USART1->ISR & USART_ISR_RXNE)!=0)

и принимается решение что-то делать.
так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 10:26:55 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Угу все верно . Не забудьте еще о приоритете прерывания .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Сб дек 07, 2013 10:29:27 
Друг Кота
Аватар пользователя

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


В дебри лезете, NVIC здесь не причем . А вот непонимание работы прерываний с FreeRTOS скорей всего имеет место .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 14:06:21 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Ср фев 09, 2011 13:29:01
Сообщений: 170
Откуда: г.Саратов
Рейтинг сообщения: 0
Всем добрый день. У меня все заработало. Как и говорил уважаемый Dosikus (еще раз этому великому кошану спасибо :)) ), читаешь данные из регистра RDR и все работает, как часы. Спасибо еще раз за помощь. Вот только забыл принесть код. Постараюсь завтра выложить. Но сразу хочу сказать, что там кардинально ни чего не поменялось, кроме вычетки регистра RDR в теле прерывания. Вот и все. Дальше буду пробовать наверное с АЦП. НО ТАМ … ВОЩПЕ ОХРИНЕТЬ НАЩАЛЬНИКА :shock: :shock: :shock: . Нда, это тебе не AVR-ка или PIC. ARM ешкин кот :))) . Наверное новую тему придется заводить. Кстати по поводу ИДЕ-шки. Я пользуюсь IAR-ом. Пока доволен.

_________________
Говорят, что у него нет носа и рта, и что он общается телепатией. Говорят, что у него зеленая кожа, и он питается как растение, закопав ноги в землю и подставив спину солнцу. Все что знаем мы: его зовут Вовэн.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 14:29:10 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
Kvasshtain писал(а):
Дальше буду пробовать наверное с АЦП. НО ТАМ … ВОЩПЕ ОХРИНЕТЬ НАЩАЛЬНИКА


Ничего ТАМ сложного нет, все элементарно и просто. Главное читать и не пользовать SPL.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 17:17:07 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Ср фев 09, 2011 13:29:01
Сообщений: 170
Откуда: г.Саратов
Рейтинг сообщения: 0
Будем наедятся, что все пройдет гладко. Но немного почитав (с моим «офигенным» знанием английского) про АЦП, я немного прибалдел. Там только один алгоритм включения чего стоит. ШЕДЕБР. Шаг влево, шаг вправо — расстрел, нафиг. :shock: :o :kill:

_________________
Говорят, что у него нет носа и рта, и что он общается телепатией. Говорят, что у него зеленая кожа, и он питается как растение, закопав ноги в землю и подставив спину солнцу. Все что знаем мы: его зовут Вовэн.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 17:18:34 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Большое спасибо vss60 и dosikus за подсказки.
За это время я портировал код под IAR и немного разобрался с прерываниями.
Что получается:
Поскольку прерывания общие для всего устройства, то в прерывании необходимо анализировать все возможные источники их возникновения и вручную снимать флаги возникновения прерывания.
В данном случае прерывание возникает не только по заполнению приёмного буфера, но и по его переполнению. Например, в процессе отладки.
Это причина зацикливания прерывания.
Поправленный код:
Код:
void USART1_IRQHandler(void)
{
   if((USART1->ISR & USART_ISR_RXNE)!=0)
   {
      usart_temp = USART1->RDR;
   }
   if (USART1->ISR & USART_ISR_ORE)
   {
      USART1->ICR |= USART_ICR_ORECF;
   }
}

Тут ни кокос ни причём, ни IAR.

И пару размышлений.
Первое.
Почему вы не советуете использовать CMSIS (он же SPL)?
Неужели код

Код:
   
   GPIOC->MODER |= GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0;
   GPIOC->OTYPER &= ~GPIO_OTYPER_OT_8 & ~GPIO_OTYPER_OT_9;   
   GPIOC->OSPEEDR &= ~GPIO_OSPEEDER_OSPEEDR8 & ~GPIO_OSPEEDER_OSPEEDR9;
   GPIOC->PUPDR &= ~GPIO_PUPDR_PUPDR8 & ~GPIO_PUPDR_PUPDR9;   


более понятен и более безопасен, чем код:
Код:
   
   GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;
   GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
   GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_2;
   GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
   GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;

   GPIO_Init ((GPIO_TypeDef *)  GPIOC, (GPIO_InitTypeDef *)  &GPIO_InitStruct);


Второй вопрос связан с FreeRTOS 7.5.3.
К сожалению, и в IAR, и в CooCox после настроек портирования она сваливается в Hard Fault.
Надо бы мне ещё поразбираться в особенностях настройки на STM32F051


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 17:20:37 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Ср фев 09, 2011 13:29:01
Сообщений: 170
Откуда: г.Саратов
Рейтинг сообщения: 0
Жмакнул не ту пуколку, шлепнул не по той свистелке не тогда, когда надо, дернул не за ту шморгалку какую нужно не в том месте и … ман-ц пацаны. Контроллер откажется от оцифровки и уйдет к лесным братьям — партизанам. :)))

_________________
Говорят, что у него нет носа и рта, и что он общается телепатией. Говорят, что у него зеленая кожа, и он питается как растение, закопав ноги в землю и подставив спину солнцу. Все что знаем мы: его зовут Вовэн.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 19:35:39 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
GARMIN писал(а):
И пару размышлений.
Первое.
Почему вы не советуете использовать CMSIS (он же SPL)?
Неужели код

более понятен и более безопасен, чем код:


Для начала не путай мягкое с теплым .
CMSIS никакой ж к SPL не относится .
А код не только более понятен, он же и эффективней и безопасней .
Осознать сие ты сможешь только с опытом ,
но сейчас для тебя кажущая легкость главней . А это беда всех новичков ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 20:47:18 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Дело не в лёгкости. Например, установка приоритетов прерываний в совмещённых полях 32-битного слова.
Или регистры альтернативных функций портов ВВ.
Тут довольно легко ошибиться с определением нужного бита. Намного понятнее использовать структуру управления и функцию установки.

Но это не предмет разговора.
Сейчас скачал последнюю версию FreeRTOS 7.6.0 с депозитария, в архиве не было файла startup_stm32f0xx.s под GCC.
Я применил его от предыдущей версии.
Проект собрался, мигает. Буду пробовать прерывание и USART.
Курю приоритеты прерываний.
Есть разные абстракции.
1) приоритеты прерываний в процессоре. Маскируемые и немаскируемые. В STM32F051 они могут быть в диапазоне -4 ... 255 (или 127, если там применимы signed char)
2) приоритеты прерываний, используемые RTOS. Есть прерывания, маскируемые OS в критических секциях, есть прерывания, немаскируемые OS. Как это выглядит для STM32F051, я пока не знаю.
3) софтовые приоритеты задач в самой RTOS. Тут понятно, задаются при создании задач, могут меняться внутри задач.

Что же у меня было с кучей? Почему памяти не хватало при минимальных настройках?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 21:40:14 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Пока USART не сваливается. Отдаёт эхо на терминал. Попробую буфер и очередь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 23:00:07 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
GARMIN писал(а):
Дело не в лёгкости. Например, установка приоритетов прерываний в совмещённых полях 32-битного слова.
Или регистры альтернативных функций портов ВВ.
Тут довольно легко ошибиться с определением нужного бита. Намного понятнее использовать структуру управления и функцию установки.


Глупости все это . В SPL прослойка между юзер кодом и CMSIS .
Вот пример инита прерывания .
Код:
 
  NVIC_SetPriority(TIM3_IRQn, 15);
  NVIC_EnableIRQ(TIM3_IRQn);


Инит альтернативных функций с легкостью выдирается из SPL и от нее не остается и следа .
Так что неправда ваша...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 23:38:43 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Тогда, будь добр, подскажи правильную последовательность действий, что после чего нужно делать:
1) установить альтернативные функции порта
2) включить тактирование порта
3) установить режим USART
4) установить разрешение прерывания в USART
5) разрешить работу USART
6) установить приоритет прерывания в NVIC
7) разрешить прерывание USART в NVIC

У меня после разрешения прерывания сразу один цикл срабатывает, хотя я сбрасываю флаги после разрешения USART


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Пн дек 09, 2013 23:41:15 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
2
1
3
4
6
7
5

Причем можно так же до разрешения UART сбросить флаги прерываний.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F0 и USART
СообщениеДобавлено: Вт дек 10, 2013 13:16:55 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Ср фев 09, 2011 13:29:01
Сообщений: 170
Откуда: г.Саратов
Рейтинг сообщения: 0
У меня не совсем такая последовательность, но все равно работает. В следующий раз учту совет уважаемого Dosikus-а. Как и обещал выкладываю наковырянное. Криво конечно, но может быть кому поможет.


Вложения:
STM32 USART прием.rar [308.87 KiB]
Скачиваний: 554

_________________
Говорят, что у него нет носа и рта, и что он общается телепатией. Говорят, что у него зеленая кожа, и он питается как растение, закопав ноги в землю и подставив спину солнцу. Все что знаем мы: его зовут Вовэн.
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 84 ]    , , 3, ,  

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


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

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


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

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


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