|
|
  |
STM32F103x, делимся впечатлениями |
|
|
|
Dec 25 2009, 21:04
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Dir @ Dec 26 2009, 00:34)  Квадрат не вдоль, а поперек  )) Они не плоские, как резисторы, а высокие. Параллелепипед BLM21 выглядит на плате слегка монстрообразно. Паять эти BLM18 очень просто, потому как есть за что пинцетом ухватиться и не надо переворачивать, чтобы надпись сверху была. Но это все ИМХО, конечно. Некоторым и BLM21 мало, им больше подавай. А, понятно  Ну, если принести удобство в жертву ради красивостей... ладно, закажу на всякий случай и 18-тый, хотя он будет на плате как белая ворона среди кучи 0805 корпусов  Имхо, некоторым и 0402 много, им меньше подавай
|
|
|
|
|
Dec 28 2009, 14:20
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Начал работать с STM32 и столкнулся с невозможностью запустить 1-й таймер в режиме ШИМ. Остальные таймеры работают, первый ни в какую. Путем анализа регистра таймера выяснил, что он считает, на предделитель и ARR реагирует правильно. Но как-нибудь, в любом режиме заставить дергаться хоть один из выходов- никакне выходит, MOE в BTDR включен. Где копать? может, я что-то не допонял? Компилятор- Кейл uVision3. Пытался разрешить прерывания по 1-му таймеру - Сapture/Сompare прерывания ни по одному из каналов не вызываются, только по update (зажигаю в прерывании светодиод) C остальными таймерами- прерывания работают (правда, там они глобальные для всего таймера целиком, а дальше сам разбирайся., что не очень удобно). Если смотреть на блок-схему первого таймера, то создается впечатление, что сигнал OC1_REF просто не вырабатывается  Кто-нибудь работал с первым таймером? есть какие-нибудь особенности?
|
|
|
|
|
Dec 31 2009, 15:36
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Спасибо за код! Все это я уже делал, значит, логически я на правильном пути  Я пользуюсь фирменным файлом stm32_init.c от отладочной платы кейла , с встроенным "мета языком" - configuration wizard. Вероятно, для первого таймера криво написан, хотя по остальной периферии замечаний нет. Буду пробовать последовательно изменять каждый регистр, чтобы найти где косячит визард. пока я только после визарда DIER менял и регистр блокировки и dead time (где бит MOE) . это не помогло.
|
|
|
|
|
Jan 11 2010, 16:29
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Цитата(sonycman @ Jan 11 2010, 19:02)  Вот простейший проект для Keil uVision 4. Активация TIMER1 в режиме PWM, первый и второй каналы:
Timer.rar ( 122.73 килобайт )
Кол-во скачиваний: 127Спасибо! завтра попробую. Хочу активировать выходы OC2N и OC3N (они доступны на отладочной плате, B15, B14,B13)? или вообще на первый раз любой пин аппаратно связаный с СС регистром. Ноги конечно же сконфгурированы как выводы альтернативной функции на 50 Мгц. Непонятно то, что таймер не генерит сигнал совпадения на выходе регистра сравнения, ибо считает до выбранного числа в APR с установленной частотой, н ни ногами не дергает ни прерывание по совпадению не вызывается, только по update. Причем прерывания update почему-то вызываются 2 раза подряд: В прерывании по update стоит команда поднять-опустить одну ножку и сброс статус регистра, так вот на осциллографе я вижу 2 импульса с подряд на расстоянии 400нс, длительность импульса 128нс, и эти пары идут с периодом счета таймера. Вообще хочу 12 ШИМ выходов сделать, а для этого 3 таймеров общего назначения не достаточно, ибо uart-s тоже нужны, а ноги по назначению пересекаются...
|
|
|
|
|
Jan 12 2010, 14:02
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(Serj78 @ Jan 12 2010, 11:42)  Нашел ошибку в кейловском визарде , он никак не выставляет BTDR регистр- он всегда 0. руками он выставляется. Вот поэтому я не люблю пользоваться всякими "визардами" или "фёрмварами". Цитата также не смог разобраться где прописаны определения типа TIM_CCER_CC1E , или TIM_CCER_CC2E, в явном виде дефайнов нет.. Ну как же, а самая первая строка - #include "stm32f10x_map.h"? В этом файле всё и прописано. Отпишитесь, в чём была проблема. Интересно.
|
|
|
|
|
Jan 13 2010, 06:48
|

Знающий
   
Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499

|
Цитата(sonycman @ Jan 12 2010, 17:02)  Вот поэтому я не люблю пользоваться всякими "визардами" или "фёрмварами". Ну как же, а самая первая строка - #include "stm32f10x_map.h"? В этом файле всё и прописано. Отпишитесь, в чём была проблема. Интересно.  почему-то у меня кейл не возпринимает этои инклюд.. пробовал и #include <stm32f10x_map.h> и #include "stm32f10x_map.h" кстати, чем кавычки отличаются от < > ? почему-то внутри моего конфигуратора стоит ссылка на этот stm32f10x_map.h, и оттуда она работает.. на имена регистров он не ругается, а вот имена битов почему-то ему не известны.. ага, нашел. версии файла разные. у меня май 2008, у вас сентябрь. у меня имен битов нет.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|