Jump to content

    

STM32 – вопросы – проблемы - решения.

STM32F101CB, STM32F101C8 - все же сколько и какие у него есть таймеры? По сегодняшней доке от st.com только T2,T3 и T4. По какой то объединенной доке 101-103 вроде как существуют T1 и T8. По сравнительной таблице от st.com только 3 таймера - не понятно каких. Вот ведь китайская грамота. Так все же ?

Edited by vlad_new

Share this post


Link to post
Share on other sites

TIM2, TIM3,TIM4

 

There are three synchronizable general-purpose timers embedded in the STM32F101xx

medium-density access line devices.

Edited by Aleksandr Baranov

Share this post


Link to post
Share on other sites

Хи. А я вот его живьем сейчас включил. На счет T8 пока не знаю, а вот T1 там работает. И кому верить - доке или живому камню. Или они его там просто заглушить забыли ? Бардак какой то.

 

Share this post


Link to post
Share on other sites
Хи. А я вот его живьем сейчас включил. На счет T8 пока не знаю, а вот T1 там работает. И кому верить - доке или живому камню. Или они его там просто заглушить забыли ? Бардак какой то.

Воистину с таймерами китайская грамота. Вот табличка моего составления:

//________________________________________________________________
//
//  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-го подвис.

 

 

Хи. А я вот его живьем сейчас включил. На счет T8 пока не знаю, а вот T1 там работает. И кому верить - доке или живому камню. Или они его там просто заглушить забыли ? Бардак какой то.

Наличие таймера (и вообще любого блока) проверяется по биту разрешения тактирования в APBxEN регистре. Ставим бит в единичку - если встал, от блок есть, бит остался нулевой - блока нет.

Share this post


Link to post
Share on other sites

А очень может быть, что у меня 103 отмаркированный, как 101. Иначе не объяснить наличие рабочего T1.

 

Share this post


Link to post
Share on other sites
Или они его там просто заглушить забыли ? Бардак какой то.
Думаю, даже и не пытались. В четверг беседовал с представителем ST, так вот он утверждал, что основной вклад в цену камня вносят корпусирование и тестирование. Причем тестирование существенно больший вклад. А поскольку ST тестирует каждый кристалл, то маркировка камня и его цена (внутри серии, естественно), определяются тем, какой набор тестов на нем прогоняли. Т.е. в каждом маленьком камне серии теоретически должны быть и периферия и флеш и ОЗУ от самого жирного, но никто не гарантирует работоспособность этих "излишков". Может и завирал, конечно.

 

Share this post


Link to post
Share on other sites

Я вот нашел у 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 попался.

 

Edited by vlad_new

Share this post


Link to post
Share on other sites
тестирует каждый кристалл, то маркировка камня и его цена (внутри серии, естественно), определяются тем, какой

ИМХО, STM32F1xx реально содержит три отдельных серии - 100, 101-103, 105-107, так как они достаточно сильно отличаются друг от друга. А что внутри серии - похоже таки на две-три-четыре размерные ветки, с выбраковкой флеша/ОЗУ до меньшего размера.

 

Share this post


Link to post
Share on other sites

Где-то недавно обсуждали прерывния от GPIO. Не помню где. Необходимо ловить прерывания с линий РА7 и РС7 оба сидят на Line7. Как понять в обработчике прерывния от кого оно возникло?

Мне необходимо ловить фронт и спад на обоих линиях. Хранить состояние в глобальной переменной от предыдущего прерывания и сравнивать?

Share this post


Link to post
Share on other sites
Необходимо ловить прерывания с линий РА7 и РС7 оба сидят на Line7. Как понять в обработчике прерывния от кого оно возникло?

прочитать из AFIO->EXTICR2 на какой порт настроено EXTI7

биты 12-15 задают порт.

rm0008 п9.4.4

Мне необходимо ловить фронт и спад на обоих линиях. Хранить состояние в глобальной переменной от предыдущего прерывания и сравнивать?

одновременно - боюсь что не возможно. в один момент времени к EXTI7 может быть подключен только один порт либо PA7, либо PC7

 

Share this post


Link to post
Share on other sites
Мне необходимо ловить фронт и спад на обоих линиях.
про РА7 и РС7 конкретно не скажу, но может стоит задействовать какой-нибудь режим таймеров/счетчиков

Share this post


Link to post
Share on other sites

Вопрос по железу. На одной плате stm32f100 и микросхема пзу spi. питание микрухи 3.6В. Вопрос будет ли работать программатор типа stk200\300?

Вопрос второй. Не понял с ногой NSS, можно ли ее аппаратно использовать для разрешения работы микрухи памяти? Или уже проще просто программно дергать любой удобной ногой?

Share this post


Link to post
Share on other sites

Помогите разобраться со скоростью. Проц F103VE, хотя не думаю что это важно.

Вроде настойки все на макимум (или почти все):

post-28763-1331065487_thumb.png

 

 

 

 

Прерывания только от 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-го порядка в целых числах меньше чем за одну мкс. считал! (причем, проверял таким-же ногодрыганьем).

 

Что я не так делаю?

Share this post


Link to post
Share on other sites
Это что, вызов подпрограмммы и счет от 5 до 0 занимает ОДНУ МИКРОСЕКУНДУ на процессоре с тактовой 72 МЕГАГЕРЦА?!

Легко. Кто знает, что внутри этой подпрограммы? И "счёт" - не самый объективный способ оценивать скорость процессора.

 

Убираю Delay - получаю импульсы примерно 0.22мкс. Порты на 50мгц настроены.

К сведению: 50 МГц - это настройка крутизны фронтов драйвера порта.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.