Easyelectronics.ru

Электроника для всех
Текущее время: 29 окт 2020, 22:36

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: stm32 hsi/hse
СообщениеДобавлено: 02 июл 2011, 19:37 
Заглядывает иногда

Зарегистрирован: 02 июл 2011, 19:13
Сообщения: 38
103C8. Запускаю usart1 на hsi. Вывожу сообщение из кольцевого буфера по прерыванию. Работает.
Запускаю usart1 на hse. Вывожу сообщение. Работает.
Запускаю usart1 на hsi, запускаю hse (не подключаю к sysclk). Вывожу сообщение. Проскакивает первый символ и все.
Вопрос: глюки проца, программы или так и должно быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 00:45 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 22 янв 2011, 03:23
Сообщения: 39
Откуда: Украина/Одесса
Выкладывайте код инициализации RCC - люди посмотрят, может найдут что.
У меня лично работает и от HSE и от HSI. Единственное что я измерил частоту HSI - в моих МК (STM32F100C4T6B и STM32F103RBT6) она довольно сильно отличалась от 8МГц (7.33 и 7.46). Причём если нагревать плату градусов до 40-50 частота уплывает ещё больше что логично. Таким образом для нормальной работы USART от HSI нужно калибровать этот самый HSI (RCC->CCR биты HSICAL[7:0]).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 00:59 
Заглядывает иногда

Зарегистрирован: 02 июл 2011, 19:13
Сообщения: 38
Код на асме врядли кого-то заинтересует. Проблема возникает когда usart запущен на hsi, шлем данные и включаем hse. Вот я и хочу спросить - может кто-то сталкивался - не сбивается периферия?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 01:01 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 22 янв 2011, 03:23
Сообщения: 39
Откуда: Украина/Одесса
Хех, нашел ошибку у себя. Не делайте так:
Код:
RCC->CR=1<<HSION;

Этим было затерто заводское значение HSICAL которое пишется в регистр при ресете. Естественное частота съехала.
Вот так нормально:
Код:
RCC->CR|=1<<HSION;

Частота стала 7.9953МГц так что вполне приемлемо. Но температурную зависимость частоты HSI пока никто не отменял :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 01:04 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 22 янв 2011, 03:23
Сообщения: 39
Откуда: Украина/Одесса
Только-что попробовал посреди передачи по USART при тактировании от HSI просто включить HSE. Полет нормальный ;)
Посмотрел момент старта HSE на осциллографе - никаких изменений частоты сигнала SYSCLK на ножке MCO не наблюдается, как и должно быть. Сейчас ещё на STM32F103 попробую.
P.S. ничего плохого в ассемблере не вижу - у самого несколько подпрограмм на асме ибо удобнее некоторые вещи писать.

Update: проверил на STM32F103RBT6 - аналогично:
Код:
InfoPanel
2011-07-02 23:08
Initializing.
Starting HSE
HSE started
...OK
Found 1w device: 00:8F000001E4F1AD28


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 01:15 
Заглядывает иногда

Зарегистрирован: 02 июл 2011, 19:13
Сообщения: 38
hse работает и у меня а вот usart (или прерывание по tc) затыкается. Наверное я всетаки затупил в программе - завтра буду разбираться. Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 01:19 
Заглядывает иногда

Зарегистрирован: 01 июн 2010, 11:04
Сообщения: 139
У своего частоту HSI не измерял, однако от него завелся USB и работал без проблем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 01:23 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 22 янв 2011, 03:23
Сообщения: 39
Откуда: Украина/Одесса
Да я уже нашел почему у меня HSI работал с таким отклонением - писал выше - я при инициализации нечаянно затер калибровочные биты ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 11:19 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
psv писал(а):
...Код на асме врядли кого-то заинтересует...
откопал вот такую вещь, так что большая часть работы, за программирующих на ассемблере, уже сделана ...


Вложения:
stm32f10x.zip [46.95 Кб]
Скачиваний: 230
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 12:59 
Заглядывает иногда

Зарегистрирован: 02 июл 2011, 19:13
Сообщения: 38
Даааа, жаль что я это уже себе сделал. Но делал под себя - поэтому удобнее получилось.
Спасибо за ссылку!!! Давно такое искал http://stm32asm.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 13:21 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
Сейчас тоже по-маленьку разбираюсь с ARMами - вот слепил пару макросов для Bit Banding_а
Код:
   MACRO
   ram_bit_addr $reg, $offs, $bit_n
   MOV32 $reg,(0x22000000 + ($offs & 0x0FFFFFF)*32 + $bit_n*4)
   MEND   

   MACRO
   ireg_bit_addr $reg, $offs, $bit_n
   MOV32 $reg,(0x42000000 + ($offs & 0x0FFFFFF)*32 + $bit_n*4)
   MEND   


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 13:35 
Заглядывает иногда

Зарегистрирован: 02 июл 2011, 19:13
Сообщения: 38
Мои нагляднее:
macro ;r10=0, r11=1
setbit $word, $offset, $bit
ldr r0,=((($word - 0x40000000) +$offset)*32)+($bit *4) +0x42000000
str r11,[r0]
mend

macro ;r10=0, r11=1
resbit $word, $offset, $bit
ldr r0,=((($word - 0x40000000) +$offset)*32)+($bit *4) +0x42000000
str r10,[r0]
mend

macro ;r10=0, r11=1
getbit $word, $offset, $bit
ldr r0,=((($word - 0x40000000) +$offset)*32)+($bit *4) +0x42000000
ldr r0,[r0]
tst r0,r0
mend

setbit rcc, rcc_apb2enr, iopa_bit ;porta clock enabled
setbit rcc, rcc_apb2enr, afio_bit ;alternate function io clock enabled
setbit rcc, rcc_apb2enr, usart1_bit ;usart1 clock enabled


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: stm32 hsi/hse
СообщениеДобавлено: 03 июл 2011, 20:37 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2011, 14:22
Сообщения: 335
psv писал(а):
Мои нагляднее:.....
ну тут, как говорится, хозяин - барин, но ИМХО "перекручивать" с макросами тоже не стоит. например
Код:
setbit rcc, rcc_apb2enr, iopa_bit ;porta clock enabled
содержит в своем составе обращение к определенным регистрам (что не очевидно, если не взглянуть на сам макрос ...), что может привести к трудноуловимым ошибкам, если об этом забыть....


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 


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


Кто сейчас на конференции

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


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB