11.04.2012, 14:02
|
|
Прохожий
Регистрация: 16.11.2011
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Изучаем STM32 Cortex M3
Да я просто отладочную плату делаю. Будут светодиоды пользователя. Подключаю их через линию 3,3В через резистор 390Ом к линии ввода/вывода.
А вот по поводу USB сделал так: линия питания +5В с разъёма usb (1-ый контакт) подаётся на линию ввода/вывода МК через фильтр по питанию (собственно схема в даташите). Это получается +5В будет браться с другого устройства - хоста (например ноутбук) и подаётся на линию ввода/вывода МК. А чтобы всё было нормально, нужно эту линию ввода/вывода сконфигурировать на +5В (активировать подтяжку) программно.
Я прав???
|
|
|
|
11.04.2012, 14:09
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Uklunok, лучше схему выложите. Иначе мозги вскипят.
|
|
|
|
11.04.2012, 14:25
|
|
Прохожий
Регистрация: 16.11.2011
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Изучаем STM32 Cortex M3
вот так подключаю USB интерфейс:
Жирный провод - это шина. Линия VBUS пошла на линию I/O ,например PA24. Остальные линии USB пошли на одноимённые выводы МК.
Правда VBG это не от сюда, не заметил когда картинку обрезал.
Так подключаю светодиоды:
РЕзисторы заменил на 390Ом, т.к. подключил их к источнику питания 3,3В с этим сопротивлением горят нормально.
Рассчитывал сопротивление резистора по формуле для smd светодиода. Получилось 68Ом, но не светится. Поставил 390Ом - всё нормально, но не знаю на сколько это применимо в линиям ввода/вывода МК.
|
|
|
|
11.04.2012, 17:39
|
|
Гражданин KAZUS.RU
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от Uklunok
|
но не знаю на сколько это применимо в линиям ввода/вывода МК.
|
Вы натишите какой мк и я подарю Вам Datasheet на него
|
|
|
|
12.04.2012, 10:23
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Непонятки с Clock Security System(CSS).
Проблема: когда пальцем дотрагиваюсь до кварца, срабатывает CSS, отключается кварц HSE и я попадаю в обработчик NMI - это нормально. Однако примерно в 1/3 случаев повторно срабатывает немаскируемое прерывание NMI и/или я попадаю в HardFault. Почему происходит вызов Hard Fault?
Код:
PHP код:
|
//Это вызывается из main() для настройки периферии
void device_init( void )
{
//HSE clock config
RCC-›CR = (0x10‹‹3) | RCC_CR_HSEON | RCC_CR_HSION | RCC_CR_CSSON;//включил все генераторы, частота LSI - по умолчанию(8МГц+/-1%)
while( !(RCC-›CR & RCC_CR_HSERDY) );//wait when HSE will be ready
//ADC prescaller = PCLK2/2, SYSCLK = HSE
RCC-›CFGR = RCC_CFGR_ADCPRE_0 | RCC_CFGR_ADCPRE_1 | RCC_CFGR_SW_0; //перешли на кварц 11.0592МГц когда он готов
}
//немаскируемое прерывание
void NMI_Handler( void )
{
if( RCC-›CIR & RCC_CIR_CSSF ) //HSE clock failure
{
RCC-›CR = (0x10‹‹3) | RCC_CR_HSION;//отключим CSS чтоб он нас больше не тревожил
RCC-›CIR |= RCC_CIR_CSSC; //clear pending CSSF flag
//перенастройка UART1 чтоб он смог работать от LSI
USART1-›CR1 = 0;
USART1-›CR1 = USART_CR1_UE | USART_CR1_TCIE | USART_CR1_RXNEIE;
USART1-›BRR = 0x341;
USART1-›CR1 |= USART_CR1_TE | USART_CR1_RE;
sys_status = CLK_FAILURE;//сигнал проге что был сбой
LED_ALARM_ON();//зажгем красный светодиод
return;
}
while(1);
}
void HardFault_Handler( void )
{
if( RCC-›CIR & RCC_CIR_CSSF ) //HSE clock failure
{
RCC-›CIR |= RCC_CIR_CSSC; //clear pending CSSF flag
return;
}
while(1);//часто попадаю сюда и кручусь пока не сбросит WatchDog(IWDG) --- почему?
}
|
|
|
|
|
12.04.2012, 14:20
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
|
|
|
|
13.04.2012, 00:49
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от uk8amk
|
Непонятки с Clock Security System(CSS).
Проблема: когда пальцем дотрагиваюсь до кварца, срабатывает CSS, отключается кварц HSE и я попадаю в обработчик NMI - это нормально. Однако примерно в 1/3 случаев повторно срабатывает немаскируемое прерывание NMI и/или я попадаю в HardFault. Почему происходит вызов Hard Fault?
void device_init( void )
{
RCC-›CR = (0x10‹‹3) | RCC_CR_HSEON | RCC_CR_HSION|RCC_CR_CSSON; //включил все генераторы
while( !(RCC-›CR & RCC_CR_HSERDY) );//wait when HSE will be ready
//ADC prescaller = PCLK2/2, SYSCLK = HSE
RCC-›CFGR = RCC_CFGR_ADCPRE_0 |RCC_CFGR_ADCPRE_1|RCC_CFGR_SW_0; //перешли на кварц 11.0592МГц
}
|
Вы забыли выбрать источник системного клока с помощью CFGR_SW. Далее, после включения HSE надо бы подождать, пока он застабилизируется, и только потом включать CSS. Ещё надо бы подождать пока источник клока в статусе SWS не станет таким же, как и в SW.
|
|
|
|
13.04.2012, 02:31
|
|
Заблокирован
Регистрация: 14.04.2008
Адрес: Украина, совсем рядом от террористов!
Сообщений: 388
Сказал спасибо: 32
Сказали Спасибо 85 раз(а) в 62 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Здравствуйте уважаемые! Интересует вопрос, кто как определят время выполнения участков кода, например функций. Пользуюсь Ira, в симуляторе счетчик циклов есть, через st-link ноль. В принципе пробовал перед интересуемым участком устанавливать порт, в конце сбрасывать и на частотомер, можно таймер запускать. Но это изврат!!! Может, есть проще способ?
|
|
|
|
13.04.2012, 10:10
|
|
Вид на жительство
Регистрация: 05.07.2006
Адрес: Tashkent
Сообщений: 454
Сказал спасибо: 24
Сказали Спасибо 67 раз(а) в 44 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Hives,
Теперь ясно. Прошлым летом когда я игрался на дискавери и "дергал" светодиод таймером был такой же глюк. Тогда я все списал на корявость связки Keil+STLink. Но видимо проблема лежит куда глубже.
Попробую в обработчике сделать двойное очищение флажков.
=GM=,
После цикла задержки на стабилизацию HSE я же и так переключаюсь на него.
CSSON попробую выставлять после запуска, хотя он меня не тревожит.
|
|
|
|
13.04.2012, 11:19
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от uk8amk
|
=GM=, После цикла задержки на стабилизацию HSE я же и так переключаюсь на него. CSSON попробую выставлять после запуска, хотя он меня не тревожит
|
Хорошо, если RCC_CFGR_SW_0=1, то вы выбрали HSE, но CSSON установили раньше, пока ждёте стабилизации CSS может сработать
Последний раз редактировалось =GM=; 13.04.2012 в 11:53.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:28.
|
|