Предлагаю в этой теме обсуждать вопросы разработчиков на STM32.
ivainc1789
Nov 20 2010, 21:20
Верно ли я понял, что таймеры в STM32 могут тактироваться максимум от 32MHz? Т.е. 10бит PWM на частоте 66kHz (как в AVR) невозможна?
AHTOXA
Nov 20 2010, 22:00
Цитата(ivainc1789 @ Nov 21 2010, 02:20)

Верно ли я понял, что таймеры в STM32 могут тактироваться максимум от 32MHz?
Неверно. Если прескалер APB не равен единице (то есть, его частота не равна 72МГц), то входная частота таймеров равна удвоенной частоте APB.
То есть, например, для таймеров TIM2...TIM7 если частота APB2 равна 36МГц, то таймеры считают с частотой 72МГц.
Подборка тем по STM32:
Часы на STM32
http://electronix.ru/forum/index.php?showt...55&hl=STM32ARM Cortex M3 + Linux
http://electronix.ru/forum/index.php?showt...89&hl=STM32Ethernet на STM32, трафик?
http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 bootloader и FreeRtos
http://electronix.ru/forum/index.php?showt...28&hl=STM32STM32 USB_DISCONNECT 2
http://electronix.ru/forum/index.php?showt...32&hl=STM32STM32 audio engine
http://electronix.ru/forum/index.php?showt...63&hl=STM32SPI STM32
http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 SPI(NSS - Hardware NSS mode)
http://electronix.ru/forum/index.php?showt...79&hl=STM32stm32f100 Проблемы с настройкой DAC в RCC
http://electronix.ru/forum/index.php?showt...74&hl=STM32Atollic TrueSTUDIO®/STM32, Отзывы
http://electronix.ru/forum/index.php?showt...94&hl=STM32Программирование фильтров по входам таймеров на STM32
http://electronix.ru/forum/index.php?showt...43&hl=STM32STM32F103 и захват потока данных, Справится ли?
http://electronix.ru/forum/index.php?showt...21&hl=STM32STM32F103x делимся впечатлениями
http://electronix.ru/forum/index.php?showt...60&hl=STM32STM32 USB_DISCONNECT
http://electronix.ru/forum/index.php?showt...94&hl=STM32STM32 или LPC17xx?
http://electronix.ru/forum/index.php?showt...39&hl=STM32STM32 и DFU
http://electronix.ru/forum/index.php?showt...83&hl=STM32stm32f105, APB1
http://electronix.ru/forum/index.php?showt...93&hl=STM32STM32 CAN + USB, Оба сразу не работают и БЕЗ варинтов ?
http://electronix.ru/forum/index.php?showt...54&hl=STM32STM32 MCKIT, Асинхронник и АРМ
http://electronix.ru/forum/index.php?showt...34&hl=STM32stm32 stop mode, Не могу разбудить микроконтроллер внешним прерыванием
http://electronix.ru/forum/index.php?showt...90&hl=STM32STM32 mp3 playbaak
http://electronix.ru/forum/index.php?showt...08&hl=STM32STM32 ReadOut protection, мт-линком
http://electronix.ru/forum/index.php?showt...15&hl=STM32STM32F101C8 и FreeRtos, Имеет ли смысл?
http://electronix.ru/forum/index.php?showt...88&hl=STM32Как обойти совмещение пинов can и usb на stm32f103
http://electronix.ru/forum/index.php?showt...31&hl=STM32STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема
http://electronix.ru/forum/index.php?showt...44&hl=STM32STM32F103 USB, Что то не получается.
http://electronix.ru/forum/index.php?showt...71&hl=STM32Вопрос по таймеру в STM32 Cortex
http://electronix.ru/forum/index.php?showt...76&hl=STM32Кит на STM32, Интересный кит.
http://electronix.ru/forum/index.php?showt...66&hl=STM32STM32 + IAR + download & debug, вопрос по старту программы
http://electronix.ru/forum/index.php?showt...13&hl=STM32STM32: Отладка в RAM
http://electronix.ru/forum/index.php?showt...31&hl=STM32STM32 TIM4 Output Compare 4
http://electronix.ru/forum/index.php?showt...13&hl=STM32STM32F20X - что-то новое от ST
http://electronix.ru/forum/index.php?showt...05&hl=STM32STM32 & NAND
http://electronix.ru/forum/index.php?showt...59&hl=STM32stm32f107vct непонятки с CAN, в loopback CAN1 работает а CAN2 нет
http://electronix.ru/forum/index.php?showt...57&hl=STM32STM32 Virtual COM, STM32 Virtual COM
http://electronix.ru/forum/index.php?showt...04&hl=STM32STM32 отладка в SRAM
http://electronix.ru/forum/index.php?showt...81&hl=STM32STM32F103 и его SPI – непонятки
http://electronix.ru/forum/index.php?showt...02&hl=STM32STM32F103 + Flash Loader Demonstrator, проблемы с процессом прошивки
http://electronix.ru/forum/index.php?showt...37&hl=STM32stm32 i2c
http://electronix.ru/forum/index.php?showt...34&hl=STM32Технический семинар по STM32(Москва, проводил Компел), был на нем...
http://electronix.ru/forum/index.php?showt...81&hl=STM32STM32 Virtual COM Port дрова для Vista
http://electronix.ru/forum/index.php?showt...23&hl=STM32STM32F103RBT6 не прошивается
http://electronix.ru/forum/index.php?showt...29&hl=STM32STM32 LQFP100 & ext.SRAM multiplexed mode, КАК???
http://electronix.ru/forum/index.php?showt...76&hl=STM32Проблемы J-Link + SТМ32
http://electronix.ru/forum/index.php?showt...88&hl=STM32STM32, micro-eeprom в "Option bytes"
http://electronix.ru/forum/index.php?showt...04&hl=STM32STM32, gcc, тип long long, ld ругается при сборке проекта
http://electronix.ru/forum/index.php?showt...62&hl=STM32STM32 & ADC, не могу запустить AnalogWatchdog
http://electronix.ru/forum/index.php?showt...98&hl=STM32STM32 не работает с J-Link, не понимаю...
http://electronix.ru/forum/index.php?showt...38&hl=STM32Максимальное разрешение многоканального программного ШИМ на STM32, Проверьте мои измышления, плз
http://electronix.ru/forum/index.php?showt...82&hl=STM32переварить NTSC c помощью STM32, видеокартинка на ноуте
http://electronix.ru/forum/index.php?showt...54&hl=STM32Анонсированы новые семейства STM32F105 и STM32F107 с Ethernet MAC 10/100, Сравниваем с LPC17xx с Ethernet
http://electronix.ru/forum/index.php?showt...75&hl=STM32Стратегии сброса через J-link, разные для LPC24XX и STM32?
http://electronix.ru/forum/index.php?showt...77&hl=STM32поднять USB на Olimex STM32-H103, апноут не курится
http://electronix.ru/forum/index.php?showt...42&hl=STM32stm32 max jtag speed
http://electronix.ru/forum/index.php?showt...91&hl=STM32STM32F101x + LSE, проблема с часовым генератором
http://electronix.ru/forum/index.php?showt...42&hl=STM32как подключить программатор на FTDI к IAR для работы с STM32
http://electronix.ru/forum/index.php?showt...43&hl=STM32STM32 + RTC&IrDA, Есть ли подводные камни?
http://electronix.ru/forum/index.php?showt...20&hl=STM32Атомарная операция, STM32F10x
http://electronix.ru/forum/index.php?showt...24&hl=STM32STM32: одновременно использовать DMA для USART1 и SPI2 нельзя?
http://electronix.ru/forum/index.php?showt...60&hl=STM32STM32F101 Rev. Z
http://electronix.ru/forum/index.php?showt...74&hl=STM32Errata для STM32
http://electronix.ru/forum/index.php?showt...75&hl=STM32STM32 и ADC, Где храниться информация о текущем конвертируемом канале АЦП из группы
http://electronix.ru/forum/index.php?showt...77&hl=STM32STMicroelectronics разродилась новым семейством - STM32
http://electronix.ru/forum/index.php?showt...69&hl=STM32натокам периферии STM32, Синхронизация массивов, передаваемых и принимаемых по DMA
http://electronix.ru/forum/index.php?showt...35&hl=STM32stm32 не работает pwm на remap TIM3_CH2 (PB.5)
http://electronix.ru/forum/index.php?showt...89&hl=STM32STM32 + IAR, Подскажите методологию
http://electronix.ru/forum/index.php?showt...39&hl=STM32DAC в STM32 Cortex, Библиотечные примеры не работают
http://electronix.ru/forum/index.php?showt...55&hl=STM32Кеил и STM32, Что не позволено дивайсу?
http://electronix.ru/forum/index.php?showt...54&hl=STM32STM3210B-EVAL
http://electronix.ru/forum/index.php?showt...93&hl=STM32STM32F103xxx от ST, Контроллер на ядре Cortex-M3
http://electronix.ru/forum/index.php?showt...94&hl=stm32
Цитата(Danis @ Nov 24 2010, 10:59)

STM32F102C6 не работает с MT-Link. Смотрел приведенные выше темы. Там не мой случай. Аналоговое питание подключено, mt-link подключал коротким шнурком. результат - 0.
Пробую законнектиться с процем с помощью JFlashARM.exe V382. пишет
Код
Connecting ...
- Connecting via USB to J-Link device 0
- J-Link firmware: V1.20 (J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5)
- JTAG speed: 5 kHz (Auto)
- Initializing CPU core (Init sequence) ...
- ERROR: Failed to connect
и выдает окно
Код
Bad JTAG communication: Write to IR: Expected 0x1, got 0x7 (TAP Command : 2) @ Off 0x5
свежескаченный JFlashARM.exe V420p пишет
Код
Connecting ...
- Connecting via USB to J-Link device 0
- J-Link firmware: V1.20 (J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5)
- JTAG speed: 5 kHz (Fixed)
- ERROR: Wrong AHB ID (15:3). Expected 0x04770001 (Mask 0x0FFFFF0F), Found 0xFFFFFFFF
- Initializing CPU core (Init sequence) ...
- JTAG speed: 5 kHz (Fixed)
- ERROR: Failed to connect
jlink.exe при запуске пишет
Код
SEGGER J-Link Commander V4.20p ('?' for help)
Compiled Nov 19 2010 15:55:19
DLL version V4.20p, compiled Nov 19 2010 15:55:07
Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5
Hardware: V5.00
S/N: 11111117
VTarget = 3.339V
Info: Could not measure total IR len. TDO is constant high.
WARNING: CPU core not found.
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
Did not find any core.
No devices found on JTAG chain. Trying to find device on SWD.
No device found on SWD.
Did not find any core.
J-Link>
питание звонил и мерил - все нормально.
jtag выводы звонил и смотрел осциллографом - тоже все нормально, кроме вывода которым контроллер должен отвечать - там всегда 1.
из jlink.exe дергал ногами jtag тоже дергается что и где положено.
в JFlashARM.exe добавлял reset и halt - не помогло.
JFlashARM.exe V420p выбирал процессор STM32F102C6 и STM32F102C6(allow opt///) тоже не помогло.
сброс от залочки
JLinkSTM32.exe говорит
Код
Connecting to J-Link...O.K.
Using SWD as target interface.
Target interface speed: 1000kHz.
Could not identify STM32 device.
Press any key to exit.
mt-link рабочий - коннектится к sam7x без проблем
аппаратного выключения jtag вроде в этом проце нет
процессоры новые...
пробовал wigglerом - тоже не коннектится

версия mt link Hardware: V5.00 может в этом проблема?
может есть еще какие нибуть идеи и соображения?
Цитата(Alfa @ Nov 26 2010, 10:58)

может есть еще какие нибуть идеи и соображения?
Может Вам 6-ю версию прошивки попробовать? Могу скинуть схему 6-го MT-LINK и прошивку если надо? У меня есть MT-LINK v6.0 шьет STM32 нормально.
Цитата(Danis @ Nov 28 2010, 22:45)

Может Вам 6-ю версию прошивки попробовать? Могу скинуть схему 6-го MT-LINK и прошивку если надо? У меня есть MT-LINK v6.0 шьет STM32 нормально.
Приму с благодарностью и схему и прошивку.... Написал вам письмо...
Проблема решена. были перепутаны tms и tck ноги jtag....
mt-link версии 5.0 работает с контроллерами st32...
Наткнулся на одну непонятную вещь в таймере общего назначения (2-4) STM32F103.
Работаю с таймером 2. 3-й канал сконфигурирован как вход. Направление счета как up-counter.
Цель- измерять период импульсов на ноге - входе 3-го канала).
3-й канал настроен на Input Cupture, по факту захвата вызывается прерывание. (CC3IE=1)
В обработчике регистр таймера обнуляется, и регистр захвата переписывается в переменную. Все банально.
В идеальных условиях все работает.
Но есть особенность- не понятно, как к этой конфигурации относится ARR ? Опытным путем установлено что его надо устанавливать в 0xFFFF, для полного диапазона измерений.
Предполагаю, что после перезагрузки таймера туда запишется это число?.
Также, после старта программы, таймер должен хоть один раз переполнится до возникновения первого прерывания. Иначе в регистре захвата какие-то числа, не соответствующие периоду возникновения прерываний, сильно превышающие его. (контролирую прерывание, дергая в обработчике ножкой и смотрю осциллографом).
Логика обнаружения этой особенности работы- надо или подавать импульсы на вход после старта программы или включать прерывание через некоторое время после старта программы.
Пока обошел это, поставив включение прерывания по захвату в конец загрузочных операций, чтобы после инициализации таймера проходило времени больше чем период таймера.
Но мне это не нравится. Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое?
Цитата(Serj78 @ Dec 4 2010, 16:43)

Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое?
Это событие называется "update event". По нему ARR и прескалер грузятся из предварительного в теневой регистр. То есть, начинают действовать новые значения. Для генерации update event вручную надо сделать так:
Код
TIM2->EGR |= TIM_EGR_UG;
И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из вновь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF).
Цитата(AHTOXA @ Dec 4 2010, 23:44)

Это событие называется "update event". По нему ARR и прескалер грузятся из предварительного в теневой регистр. То есть, начинают действовать новые значения. Для генерации update event вручную надо сделать так:
Код
TIM2->EGR |= TIM_EGR_UG;
И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из внования не запрещать ь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF).
Спасибо! Про то что таймер можно не сбрасывать, я подумал, но извечная привычка экономить переменные и память на них пересилила.. (пока мне нужен только один канал захвата)..
Теперь пытаюсь понять- я что же происходит при старте программы если прерывание разрешено и есть импульсы на входе? ? пробовал смотреть в отладчике содержимое регистров- все работает корректно- значения ARR не меняется.. меняется ли прескалер, вот не посмотрел..

..
При приходе прерывания выполняется обработчик, таймер сбрасывается, потом начинает увеличиваться.. но при приходе следующего импульса значение регистра захвата и самого таймера не 400-500мкс , как ожидалось, а 14-15 тысяч. Величина прескалера- 71, частота счетчика получается 1 Мгц.
Ivan Kuznetzov
Dec 5 2010, 19:11
Нет ли у кого примера по работе с USB-HOST MassStorage для 105й - 107й серии STM32 ?
Их не существует в природе - похоже, что индусы из ST не осилили USB host

Даже в комплекте с отладочной платой от ST идут бинарники (!), собранные с использованием платного стека USB.
Ivan Kuznetzov
Dec 9 2010, 09:44
у ST есть аппноут IAP бутлодера, я его переделал чтобы тот грузил прошивку не по UART, а с SD карты.
Но, бутлодер располагается с адреса 0x08000000, программа с адреса 0x08003000
Чтобы войти в бут - необходимо выключить питание МК и включить снова
Вопрос: можно ли перепрыгнуть на 0x08000000 адрес из основной программы без перезапуска?
Или лучше врубить ватчдог и дождаться пока он сбросит проц?
KnightIgor
Dec 12 2010, 11:57
Цитата(Serj78 @ Dec 5 2010, 11:08)

...пробовал смотреть в отладчике ...
При приходе прерывания выполняется обработчик, таймер сбрасывается, потом начинает увеличиваться.. но при приходе следующего импульса значение регистра захвата и самого таймера не 400-500мкс , как ожидалось, а 14-15 тысяч.
Ключевое слово: "под отладчиком". В STM32F по умолчанию периферия продолжает "тикать" в
реальном времени, пока происходит останов под отладчиком или пошаговые прохождения по программе. Чтобы остановить периферию (в твоем случае - Таймер), необходимо установить при инициализации системы нужный бит в узле отладки, что можно сделать либо библиотечной функцией:
Код
DBGMCU_Config (DBGMCU_TIM3_STOP, ENABLE); // stop timer3 while debugging
либо на "регистровом" уровне программирования:
Код
DBGMCU->CR |= DBGMCU_TIM3_STOP;
Конечно, внешний измеряемый сигнал остановить нельзя, но под отладчиком, по крайней мере, не будет выбега таймера.
Aleksandr Baranov
Dec 16 2010, 13:07
Цитата(Ivan Kuznetzov @ Dec 9 2010, 07:44)

Вопрос: можно ли перепрыгнуть на 0x08000000 адрес из основной программы без перезапуска?
Или лучше врубить ватчдог и дождаться пока он сбросит проц?
Я включаю не вачдог, а программный сброс. Потом после сброса анализирую флаг. Программный сбос в отличие от вачдога не срабатывает при аварийных ситуациях.
Fktrctq
Dec 19 2010, 17:25
Можно и другим способом. А именно так как описано в Application Note 2557 "STM32F10xxx in-application programming using the USART (IAP)". Фактически переход по нужному адресу осуществляется через присвоение этого адреса указателю на функцию, с последующим вызовом этой функции. Только не забудьте об переинициализации стека (макрос "__MSR_MSP()" в исходнике cortexm3_macro.s ).
Успехов!
stm32f105 реализую USB-OTG (в режиме only-host)
запрос дескриптора к 0-точке осуществляется по одному каналу или надо заводить канал на передачу и канал на приём ?
676038
Jan 11 2011, 14:29
Цитата(Ivan Kuznetzov @ Dec 6 2010, 04:11)

Нет ли у кого примера по работе с USB-HOST MassStorage для 105й - 107й серии STM32 ?
Появилось на сайте ST:
STM32F105/107xx USB Host library (UM1021)
Подбираю процессор для нового проекта. Рассматриваю STM32F103 или F105 в корпусе LQFP64. Вопрос про ADC: какой входной диапазон напряжения ADC - VREF = 1,2 V или VDA = 3,3 V?
Вопрос возник по причине того, что в AN-2834 (глава Using a preamplifier) пишется, что слабый сигнал можно усилмвать до 3В. А в DataSheet на STM32F105 входное напряжение ограничено VREF,
которая в корпусе LQFP64 на пинах недоступна. Да, проверить сам не могу, т.к. не имею оного железа.
Serj78
Jan 14 2011, 16:01
В STM32F103 в 64- пиновом корпусе Vref сидит жестко на 3.3 вольтах питания Соответственно, измеряемое напряжение будет не выше напряжения питания.
Halfback
Jan 18 2011, 10:21
Еще одна неприятная особенность у STM32F107 - собрали схему сброса RST с подтягивающим к 3.3В рез-ром 10к и танталом 10мк в параллель с керамикой 0.1мк. В итоге ватчдог контроллера глобальный физический сброс выдать не может - импульс до "0" не дотягивает. Наверное внутри транзистор слабоват.
Выпаивание тантала помогло. Но вопрос остался. В доке на счет номиналов подключаемой емкости к пину NRST ничего не нашёл.
На других контроллерах такого не замечено.
akimych
Jan 20 2011, 18:11
10мкФ на резет - это не слишком ли? 0.1 всегда ставили, да и меньше видел. В AN2586 0.1 мкФ на резет нарисовано.
OVladimir
Jan 24 2011, 09:16
Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.
С STM32F103RС та же история, декларировано 256 КБ, на самом деле 512.
Может, у кого-нибудь найдётся конкретное объяснение описанных свойств процессоров?
Это понятно, что делают один кристалл для всей ветки, заглушают часть схемы и по-другому маркируют корпус. Интересно, что это за технологическая операция такая у ST что флэш всёравно работает?
KnightIgor
Jan 24 2011, 15:41
Цитата(OVladimir @ Jan 24 2011, 10:16)

Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.
Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!
OVladimir
Jan 25 2011, 08:20
Цитата(KnightIgor @ Jan 24 2011, 17:41)

Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!
Действительно, отличить очень сложно, но у нас уже давно массовое производство и отличать маркировку уже научились. "Измывались" мы над несколькими разными процессорами, и речь идёт не о похожести B на 8.
KnightIgor
Jan 26 2011, 15:59
Цитата(OVladimir @ Jan 25 2011, 09:20)

... но у нас уже давно массовое производство и отличать маркировку уже научились.
А, кстати о массовости: довольны STM32F? Какова статистика?
skripach
Jan 26 2011, 16:16
Цитата
Вопрос по поводу объёма флэш памяти.
Обычное дело - маркетинг. Кристаллы во всех корпусах одинаковые.

Почти не шутка.
Serj78
Jan 26 2011, 19:08
Цитата(OVladimir @ Jan 24 2011, 12:16)

Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает,
А каким программатором заливали? Через бутлоадер?
Не очень понятно, в каких случаях можно залить более 64км, а в каких нет..
OVladimir
Jan 27 2011, 18:06
Цитата(Serj78 @ Jan 26 2011, 21:08)

А каким программатором заливали? Через бутлоадер?
Не очень понятно, в каких случаях можно залить более 64км, а в каких нет..
Цитата(skripach @ Jan 26 2011, 21:08)

Обычное дело - маркетинг. Кристаллы во всех корпусах одинаковые.
Почти не шутка.
в производстве, конечно же, через BootLoader, у себя на столе через jtag, в обоих случаях получается запрограммировать без ошибок, только вот в случае jtag программа не работает (я об этом уже писал), в этом и заключается нюанс, который выделен маркировкой (R8-64КБ, RB-128КБ и т.д.)
Цитата(KnightIgor @ Jan 26 2011, 21:08)

А, кстати о массовости: довольны STM32F? Какова статистика?
Бодрящая статистика, на самом деле. Работает как часики (если программа правильная, без жуков, что называется), несколько тысяч просессоров уже работают, никаких аномалий, было, правда, несколько полу-дохлых, но это в производстве при тесте сразу обнаружилось.
P.S. Зря я, наверное, эту тему тут начал, ST, может, голову оторвать захотят....
Народ, кто уже успел попробовать stm32L151-152?
Большая проблема: В СТОП-МОДе потребление составляет 300мкА, вместо заявленных 1-2!!!
В Стэндбай-Моде всё честно- 1мкА, но он мне не подходит, т.к. во-первых не сохраняет SRAM,
а во-вторых, отключает ИОН, который мне нужен все время совне.
Почему в СТОПе такое потребление? Пример я взял стандартный из библиотеки, он маленький, запутаться невозможно.
Единственное, что я изменил -это тактирование: не от внешнего резонатора, а от внутреннего(пробовал и MSI и HSI+PLL)
--------------------------------
Все, проблема решена: необходимо дополнительно перевести все порты с цифрового входа на аналоговый вход.
Ivan Kuznetzov
Jan 29 2011, 16:37
Цитата(676038 @ Jan 11 2011, 19:29)

Опробовал на флешках, мышках и клавиатуре. Флешки больше 8 Гб в упор не видит. У флешек на 8 Гб видит только 4. Почему?
SSerge
Jan 30 2011, 07:08
Цитата(Ivan Kuznetzov @ Jan 29 2011, 22:37)

Опробовал на флешках, мышках и клавиатуре. Флешки больше 8 Гб в упор не видит. У флешек на 8 Гб видит только 4. Почему?
Где-то под размер отвели 32-битную переменную или в промежуточных вычислениях недосмотрели, а 2
32 как раз 4G.
topkin
Jan 30 2011, 11:32
Цитата(fiim @ Jan 28 2011, 17:27)

Народ, кто уже успел попробовать stm32L151-152?
Большая проблема: В СТОП-МОДе потребление составляет 300мкА, вместо заявленных 1-2!!!
В Стэндбай-Моде всё честно- 1мкА, но он мне не подходит, т.к. во-первых не сохраняет SRAM,
а во-вторых, отключает ИОН, который мне нужен все время совне.
Почему в СТОПе такое потребление? Пример я взял стандартный из библиотеки, он маленький, запутаться невозможно.
Единственное, что я изменил -это тактирование: не от внешнего резонатора, а от внутреннего(пробовал и MSI и HSI+PLL)
--------------------------------
Все, проблема решена: необходимо дополнительно перевести все порты с цифрового входа на аналоговый вход.
А где вы разжились этими камушками? Образцы уже поставляют?
Цитата(topkin @ Jan 30 2011, 17:32)

А где вы разжились этими камушками? Образцы уже поставляют?
У нас уже доступны по предзаказу
http://www.elcopro.ru/catalog/price-list/?search=STM32LПока только STM32L151CBT6 по 300 рублей.
Но у меня пока руки не дошли
только с дисковери побаловался
http://ziblog.ru/category/mikrokontrolleryi/stm32/
Цитата(topkin @ Jan 30 2011, 14:32)

А где вы разжились этими камушками? Образцы уже поставляют?
Да, это образец, просто повезло, вовремя отхватил, наверно последний был в Терре.
Думаю скоро появятся в продаже.
Note: Переводить все порты на аналоговый вход желательно, но не обязательно(тем более, что в стоп-моде могут потребоваться какие-то уровни на пинах): главное отключить подтяжки(пулап-пулдаун)жтага-это они в основном столько кушают.
demiurg_spb
Feb 1 2011, 09:41
KnightIgor
Feb 1 2011, 15:46
Цитата(Danis @ Nov 19 2010, 19:19)

Предлагаю в этой теме обсуждать вопросы разработчиков на STM32.
ТЕМА: неверное значение при считывании регистра DBGMCU_IDCODE, STM32F103RB.
Попробовал в программе вывести значение этого RO регистра (с помощью printf(), разумеется). Согласно Reference Manual
RM0008, стр. 1055, регистр всегда доступен. С удивлением увидел нули!
1. Начал под отладчиком пошагово - вдруг все считалось правильно!
2. Вышел из отладчика, нажимал RESET, перезапуская процессор, - по-прежнему все правильно.
3. Передернул питание - опять нули!.
Повторяем с шага 1. - опять правильно считывается, пока питание не передернешь.
Кто сталкивался?
akimych
Feb 1 2011, 17:44
Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?
Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.
KnightIgor
Feb 1 2011, 19:30
Цитата(akimych @ Feb 1 2011, 18:44)

Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?
Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.
Пробовал читать подрят несколько раз - все равно нули после передергивания питания.
О синхронизации не скажу... Читаю лишь после того, как запущена вся периферия.
Как я написал, согласно актуальному Reference Manual регистр читается и из пользовательской программы. Где-то в недрах форума ST я действительно нашел упоминание, что считывается только в режиме debug, а иначе - нули, но это касалось первых ревизий. Мой процессор имеет в DBGMCU_IDCODE (если удалось считать) значение 0x20030410, что означает Medium Density Device Revision Y.
Интересно, что втыкает единократный вход в режим debug после переброски питания, что после этого считывается реальное значение... Может надо прочесть разок POR?
akimych
Feb 1 2011, 22:28
Цитата
Может надо прочесть разок POR?
Не представляю, как можно прочитать POR

Но вот если прочитать errata, то можно выяснить
Цитата
The DBGMCU_IDCODE and DBGMCU_CR debug registers are accessible only in debug
mode (not accessible by the user software). When these registers are read in user mode,
the returned value is 0x00.
И касается походу всех ревизий 101 и 103го.
KnightIgor
Feb 1 2011, 22:41
Цитата(akimych @ Feb 1 2011, 23:28)

Но вот если прочитать errata, то можно выяснить
И касается походу всех ревизий 101 и 103го.
Хорошо, тогда почему все же регистр читается, пусть даже после того, как единожды попользовались отладчиком, но потом жали на RESET?
akimych
Feb 2 2011, 00:06
Потому что обычный RESET на эти регистры не влияет.
Добрый день всем. Всех с праздником.
Я вот перехожу на стм32, до этого работал с 8/16 битными.
Скачал с сайта производителя библиотеки для работы с стм32...
Нашел пример программы для инициализации МК:
NVIC_InitTypeDef NVIC_InitStructure;
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
GPIOA->CRH &= ~(GPIO_CRH_MODE9 | GPIO_CRH_CNF9);
GPIOA->CRH |= GPIO_CRH_MODE9_0;
/* Enable the TIM2 gloabal Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
Вопрос, где в библиотека объявлен тип NVIC_InitTypeDef структуры NVIC_InitStructure ?
Aleksandr Baranov
Feb 14 2011, 13:53
stm32f10x_nvic.hCODE
/* NVIC Init Structure definition */
typedef struct
{
u8 NVIC_IRQChannel;
u8 NVIC_IRQChannelPreemptionPriority;
u8 NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;
topkin
Feb 14 2011, 20:12
Привет всем, столкнулся с такой проблемой в STM32F100RB, проблема решена на данный момент, но думаю будет полезно осваивающим. В проекте используются 3 канала АЦП, проводится преобразование входных сигналов с максимальной частотой - 1.2мкс по очереди и данные передаются через DMA в память, далее обработка и тому подобное, пользую IAR EW. Создал проект, в режиме дебага все отлаживается, проверил работоспособность программы, завершаю дебаг, далее вношу еще изменения в проект, пытаюсь снова войти в режим отладки и все... IAR ругается что невозможно соединиться с платой, первоначавльно думал что проц сгорел. Хотя фирмаваре внутри камня крутится и нормально работает! Зашил эту же программу в STM32VLDiscovery и ситуация полностью повторилась. Долго чесал затылок, в итоге попробовал приконнектиться к плате с помощью софтины ST-Link Utility и на тебе, микроконтроллер виден! Очистил прошивку, передернул питание, далее снова в IAR EW, проблема исчезает, но стоит 1 раз прошить и ситуация повторяется с точностью. Вдоль и поперек занимался любовью с DMA и АЦП, не помогло, но выяснил, что перед тем как нажать кнопку дебага или перепрошивки в софтине, необходимо нажать кнопку ресета на плате и вуалля, шьется как ни в чем не бывало! Далее собрал проект под uVision, там такая проблема не повторилась. Соответственно все подозрения пали на IAR EW. В итоге воспользовался техподдержкой ST, ребята 2 дня думали и написали ответ, что это косяк IAR EW. В кратце, при прошивке IAR EW сбрасывает только ядро, далее грузится в ОЗУ алгоритм загрузки кода flash, но в это время DMA передает данные с каналов АЦП в память, соответственно происходит конфликт и микроконтроллер зависает. В итоге они мне прислали исправленный файл ххх.mac, который необходимо скормить IAR EW по адресу по пути - вашадиректория\Embedded Workbench 6.0\arm\config\flashloader\ST\. Так и сделал, проблема исчезла. В общем, теперь остановка DMA происходит, файл прикрепил, необходимо его распаковать.
P.S. Всем удачи в нашем нелегком труде! В следующем релизе IAR обещали исправить эту проблему:-)
Rafael
Feb 18 2011, 11:34
Вернувшись к проекту через год неожиданно наткнулся на проблему с драйвером STM Virtual COM Port. С тех пор OS рабочем компе сменилась с XP на Win7. Использовал демонстрационный проект Virtual_COM_Port из STM32_USB-FS-Device_Lib_V3.1.0.
Проблема в следующем: при подключении прибора к USB порту устройство STMicroelectronics Virtual COM Port появляется, но не может запуститься: Запуск этого устройства невозможен. (Код 10). Отчасти проблема решается установкой буфера приема = 64 байта (VIRTUAL_COM_PORT_DATA_SIZE), но работа порта неустойчива, прием идет со сбоями
Пробовал VCPDriver: v1.1, v1.2, v1.3
На XP все работало без глюков, с любым размером буфера
akimych
Feb 19 2011, 10:23
Цитата
Пробовал VCPDriver: v1.1, v1.2, v1.3
Интересно, чем они отличаются. Учитывая, что это и не драйвер по сути, просто inf файл. Драйвер родной виндовый usbser, который в разных версиях винды может отличаться.
Глянуть бы каким-нибудь usblyzer-ом что там происходит.
Привет спецы, интересует STM32F2XX: интерфейс подключения камеры. Планирую заложить в новый проект. Кто нить использовал уже опытные образцы?
InsolentS
Mar 1 2011, 00:39
Не пойму, нужно ли выводить ресет на разьем SWD? Или достаточно SWCLK и SWDIO ?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.