|
|
  |
STM32 – вопросы – проблемы - решения. |
|
|
|
Feb 29 2012, 13:58
|
Частый гость
 
Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118

|
TIM2, TIM3,TIM4
There are three synchronizable general-purpose timers embedded in the STM32F101xx medium-density access line devices.
Сообщение отредактировал Aleksandr Baranov - Feb 29 2012, 14:20
--------------------
ASB
|
|
|
|
|
Feb 29 2012, 15:55
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(vlad_new @ Feb 29 2012, 17:21)  Хи. А я вот его живьем сейчас включил. На счет T8 пока не знаю, а вот T1 там работает. И кому верить - доке или живому камню. Или они его там просто заглушить забыли ? Бардак какой то. Воистину с таймерами китайская грамота. Вот табличка моего составления: CODE //________________________________________________________________ // // Timers, availability // // T1 T2-5 T6-7 T8 T9-11 T12-14 T15-17 // F100-low x x x - - - x // F100-med x x x - - - x // F100-high x x x - - x x // F101-low - x - - - - - // F101-med - x - - - - - // F101-high x x x x - - - // F101-xl x x x x x x - // F102-low - x - - - - - // F102-med - x - - - - - // F103-low x x - x - - - // F103-med x x - x - - - // F103-high x x x x - - - // F103-xl x x x x x x - // F105/107 x x x x - - - //
И еще - у ST последнее время случается путаница в маркировке - попалась партия STM32F103, маркированная как STM32F100 (причем купленно официально). Ага, таймера 12 у 103-го нету, девайс с программой от 100-го подвис. Цитата(vlad_new @ Feb 29 2012, 17:21)  Хи. А я вот его живьем сейчас включил. На счет T8 пока не знаю, а вот T1 там работает. И кому верить - доке или живому камню. Или они его там просто заглушить забыли ? Бардак какой то. Наличие таймера (и вообще любого блока) проверяется по биту разрешения тактирования в APBxEN регистре. Ставим бит в единичку - если встал, от блок есть, бит остался нулевой - блока нет.
|
|
|
|
|
Feb 29 2012, 16:39
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (vlad_new @ Feb 29 2012, 17:21)  Или они его там просто заглушить забыли ? Бардак какой то. Думаю, даже и не пытались. В четверг беседовал с представителем ST, так вот он утверждал, что основной вклад в цену камня вносят корпусирование и тестирование. Причем тестирование существенно больший вклад. А поскольку ST тестирует каждый кристалл, то маркировка камня и его цена (внутри серии, естественно), определяются тем, какой набор тестов на нем прогоняли. Т.е. в каждом маленьком камне серии теоретически должны быть и периферия и флеш и ОЗУ от самого жирного, но никто не гарантирует работоспособность этих "излишков". Может и завирал, конечно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 29 2012, 16:41
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

|
Я вот нашел у st.com документ "RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs", http://www.st.com/internet/com/TECHNICAL_R.../CD00171190.pdfТам на странице 282 сказано, что у 101-103 все таки есть T1 и T8. Отредактировано: Нет все таки я неверно перевел. Там речь про 103, что он содержит только T1. Значит все таки нельзя мне закладываться на T1 в stm32f101cb. А жаль. Ведь работает сволочь Видать и впрямь перемаркированный 103 попался.
Сообщение отредактировал vlad_new - Feb 29 2012, 17:06
|
|
|
|
|
Feb 29 2012, 17:37
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(Сергей Борщ @ Feb 29 2012, 18:39)  тестирует каждый кристалл, то маркировка камня и его цена (внутри серии, естественно), определяются тем, какой ИМХО, STM32F1xx реально содержит три отдельных серии - 100, 101-103, 105-107, так как они достаточно сильно отличаются друг от друга. А что внутри серии - похоже таки на две-три-четыре размерные ветки, с выбраковкой флеша/ОЗУ до меньшего размера.
|
|
|
|
|
Mar 1 2012, 07:46
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 18-03-11
Пользователь №: 63 690

|
Цитата(uriy @ Mar 1 2012, 09:47)  Необходимо ловить прерывания с линий РА7 и РС7 оба сидят на Line7. Как понять в обработчике прерывния от кого оно возникло? прочитать из AFIO->EXTICR2 на какой порт настроено EXTI7 биты 12-15 задают порт. rm0008 п9.4.4 Цитата(uriy @ Mar 1 2012, 09:47)  Мне необходимо ловить фронт и спад на обоих линиях. Хранить состояние в глобальной переменной от предыдущего прерывания и сравнивать? одновременно - боюсь что не возможно. в один момент времени к EXTI7 может быть подключен только один порт либо PA7, либо PC7
|
|
|
|
|
Mar 1 2012, 08:06
|

Участник

Группа: Участник
Сообщений: 31
Регистрация: 26-12-11
Пользователь №: 69 097

|
Цитата("uriy") Мне необходимо ловить фронт и спад на обоих линиях. про РА7 и РС7 конкретно не скажу, но может стоит задействовать какой-нибудь режим таймеров/счетчиков
|
|
|
|
|
Mar 4 2012, 20:47
|
Участник

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402

|
Вопрос по железу. На одной плате stm32f100 и микросхема пзу spi. питание микрухи 3.6В. Вопрос будет ли работать программатор типа stk200\300? Вопрос второй. Не понял с ногой NSS, можно ли ее аппаратно использовать для разрешения работы микрухи памяти? Или уже проще просто программно дергать любой удобной ногой?
|
|
|
|
|
Mar 6 2012, 20:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763

|
Помогите разобраться со скоростью. Проц F103VE, хотя не думаю что это важно. Вроде настойки все на макимум (или почти все):
Прерывания только от Systick, настоеного на 1мс, и это 1мс и есть (проверил осциллографом и ногодрыганьем). Но такое-же ногодрыганье в дргум месте меня сбивает с толку: Код void Delay(volatile uint32_t nCount){ for(; nCount != 0; nCount--); } //--- while(1){ GPIO_SetBits(GPIOB, GPIO_Pin_7); Delay(5); GPIO_ResetBits(GPIOB, GPIO_Pin_7); } И я получаю импульсы примерно 1мкс длительностью. Пробовал вызывать Delay в цикле for(i=0;i<10;i++) - получал около 10мкс. Это что, вызов подпрограмммы и счет от 5 до 0 занимает ОДНУ МИКРОСЕКУНДУ на процессоре с тактовой 72 МЕГАГЕРЦА?! Убираю Delay - получаю импульсы примерно 0.22мкс. Порты на 50мгц настроены. До этого работал с lpc1768, так от у меня IIR фильтры 2-го порядка в целых числах меньше чем за одну мкс. считал! (причем, проверял таким-же ногодрыганьем). Что я не так делаю?
|
|
|
|
|
Mar 6 2012, 21:31
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Allregia @ Mar 7 2012, 00:31)  Это что, вызов подпрограмммы и счет от 5 до 0 занимает ОДНУ МИКРОСЕКУНДУ на процессоре с тактовой 72 МЕГАГЕРЦА?! Легко. Кто знает, что внутри этой подпрограммы? И "счёт" - не самый объективный способ оценивать скорость процессора. Цитата(Allregia @ Mar 7 2012, 00:31)  Убираю Delay - получаю импульсы примерно 0.22мкс. Порты на 50мгц настроены. К сведению: 50 МГц - это настройка крутизны фронтов драйвера порта.
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|