реклама на сайте
подробности

 
 
33 страниц V   1 2 3 > »   
Closed TopicStart new topic
> STM32 – вопросы – проблемы - решения.
Danis
сообщение Nov 19 2010, 18:19
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Предлагаю в этой теме обсуждать вопросы разработчиков на STM32.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Nov 20 2010, 21:20
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Верно ли я понял, что таймеры в STM32 могут тактироваться максимум от 32MHz? Т.е. 10бит PWM на частоте 66kHz (как в AVR) невозможна?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 20 2010, 22:00
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ivainc1789 @ Nov 21 2010, 02:20) *
Верно ли я понял, что таймеры в STM32 могут тактироваться максимум от 32MHz?

Неверно. Если прескалер APB не равен единице (то есть, его частота не равна 72МГц), то входная частота таймеров равна удвоенной частоте APB.
То есть, например, для таймеров TIM2...TIM7 если частота APB2 равна 36МГц, то таймеры считают с частотой 72МГц.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Danis
сообщение Nov 24 2010, 05:59
Сообщение #4


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Подборка тем по STM32:

Часы на STM32
http://electronix.ru/forum/index.php?showt...55&hl=STM32


ARM Cortex M3 + Linux
http://electronix.ru/forum/index.php?showt...89&hl=STM32

Ethernet на STM32, трафик?
http://electronix.ru/forum/index.php?showt...54&hl=STM32

STM32 bootloader и FreeRtos
http://electronix.ru/forum/index.php?showt...28&hl=STM32


STM32 USB_DISCONNECT 2
http://electronix.ru/forum/index.php?showt...32&hl=STM32

STM32 audio engine
http://electronix.ru/forum/index.php?showt...63&hl=STM32

SPI STM32
http://electronix.ru/forum/index.php?showt...54&hl=STM32

STM32 SPI(NSS - Hardware NSS mode)
http://electronix.ru/forum/index.php?showt...79&hl=STM32

stm32f100 Проблемы с настройкой DAC в RCC
http://electronix.ru/forum/index.php?showt...74&hl=STM32


Atollic TrueSTUDIO®/STM32, Отзывы
http://electronix.ru/forum/index.php?showt...94&hl=STM32


Программирование фильтров по входам таймеров на STM32
http://electronix.ru/forum/index.php?showt...43&hl=STM32

STM32F103 и захват потока данных, Справится ли?
http://electronix.ru/forum/index.php?showt...21&hl=STM32

STM32F103x делимся впечатлениями
http://electronix.ru/forum/index.php?showt...60&hl=STM32

STM32 USB_DISCONNECT
http://electronix.ru/forum/index.php?showt...94&hl=STM32

STM32 или LPC17xx?
http://electronix.ru/forum/index.php?showt...39&hl=STM32

STM32 и DFU
http://electronix.ru/forum/index.php?showt...83&hl=STM32

stm32f105, APB1
http://electronix.ru/forum/index.php?showt...93&hl=STM32

STM32 CAN + USB, Оба сразу не работают и БЕЗ варинтов ?
http://electronix.ru/forum/index.php?showt...54&hl=STM32

STM32 MCKIT, Асинхронник и АРМ
http://electronix.ru/forum/index.php?showt...34&hl=STM32

stm32 stop mode, Не могу разбудить микроконтроллер внешним прерыванием
http://electronix.ru/forum/index.php?showt...90&hl=STM32

STM32 mp3 playbaak
http://electronix.ru/forum/index.php?showt...08&hl=STM32


STM32 ReadOut protection, мт-линком
http://electronix.ru/forum/index.php?showt...15&hl=STM32


STM32F101C8 и FreeRtos, Имеет ли смысл?
http://electronix.ru/forum/index.php?showt...88&hl=STM32

Как обойти совмещение пинов can и usb на stm32f103
http://electronix.ru/forum/index.php?showt...31&hl=STM32

STM32 SDIO 4bit SD-card, Подскажите кто делал, в чем может быть проблема
http://electronix.ru/forum/index.php?showt...44&hl=STM32


STM32F103 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=STM32

STM32 + IAR + download & debug, вопрос по старту программы
http://electronix.ru/forum/index.php?showt...13&hl=STM32

STM32: Отладка в RAM
http://electronix.ru/forum/index.php?showt...31&hl=STM32

STM32 TIM4 Output Compare 4
http://electronix.ru/forum/index.php?showt...13&hl=STM32


STM32F20X - что-то новое от ST
http://electronix.ru/forum/index.php?showt...05&hl=STM32

STM32 & NAND
http://electronix.ru/forum/index.php?showt...59&hl=STM32


stm32f107vct непонятки с CAN, в loopback CAN1 работает а CAN2 нет
http://electronix.ru/forum/index.php?showt...57&hl=STM32

STM32 Virtual COM, STM32 Virtual COM
http://electronix.ru/forum/index.php?showt...04&hl=STM32

STM32 отладка в SRAM
http://electronix.ru/forum/index.php?showt...81&hl=STM32


STM32F103 и его SPI – непонятки
http://electronix.ru/forum/index.php?showt...02&hl=STM32

STM32F103 + Flash Loader Demonstrator, проблемы с процессом прошивки
http://electronix.ru/forum/index.php?showt...37&hl=STM32

stm32 i2c
http://electronix.ru/forum/index.php?showt...34&hl=STM32

Технический семинар по STM32(Москва, проводил Компел), был на нем...
http://electronix.ru/forum/index.php?showt...81&hl=STM32

STM32 Virtual COM Port дрова для Vista
http://electronix.ru/forum/index.php?showt...23&hl=STM32

STM32F103RBT6 не прошивается
http://electronix.ru/forum/index.php?showt...29&hl=STM32

STM32 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=STM32

STM32, micro-eeprom в "Option bytes"
http://electronix.ru/forum/index.php?showt...04&hl=STM32

STM32, gcc, тип long long, ld ругается при сборке проекта
http://electronix.ru/forum/index.php?showt...62&hl=STM32

STM32 & ADC, не могу запустить AnalogWatchdog
http://electronix.ru/forum/index.php?showt...98&hl=STM32

STM32 не работает с 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, апноут не курится sad.gif
http://electronix.ru/forum/index.php?showt...42&hl=STM32

stm32 max jtag speed
http://electronix.ru/forum/index.php?showt...91&hl=STM32

STM32F101x + LSE, проблема с часовым генератором
http://electronix.ru/forum/index.php?showt...42&hl=STM32

как подключить программатор на FTDI к IAR для работы с STM32
http://electronix.ru/forum/index.php?showt...43&hl=STM32

STM32 + RTC&IrDA, Есть ли подводные камни?
http://electronix.ru/forum/index.php?showt...20&hl=STM32

Атомарная операция, STM32F10x
http://electronix.ru/forum/index.php?showt...24&hl=STM32

STM32: одновременно использовать DMA для USART1 и SPI2 нельзя?
http://electronix.ru/forum/index.php?showt...60&hl=STM32

STM32F101 Rev. Z
http://electronix.ru/forum/index.php?showt...74&hl=STM32


Errata для STM32
http://electronix.ru/forum/index.php?showt...75&hl=STM32

STM32 и ADC, Где храниться информация о текущем конвертируемом канале АЦП из группы
http://electronix.ru/forum/index.php?showt...77&hl=STM32

STMicroelectronics разродилась новым семейством - STM32
http://electronix.ru/forum/index.php?showt...69&hl=STM32

натокам периферии STM32, Синхронизация массивов, передаваемых и принимаемых по DMA
http://electronix.ru/forum/index.php?showt...35&hl=STM32

stm32 не работает pwm на remap TIM3_CH2 (PB.5)
http://electronix.ru/forum/index.php?showt...89&hl=STM32

STM32 + IAR, Подскажите методологию
http://electronix.ru/forum/index.php?showt...39&hl=STM32

DAC в STM32 Cortex, Библиотечные примеры не работают
http://electronix.ru/forum/index.php?showt...55&hl=STM32

Кеил и STM32, Что не позволено дивайсу?
http://electronix.ru/forum/index.php?showt...54&hl=STM32

STM3210B-EVAL
http://electronix.ru/forum/index.php?showt...93&hl=STM32

STM32F103xxx от ST, Контроллер на ядре Cortex-M3
http://electronix.ru/forum/index.php?showt...94&hl=stm32


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Alfa
сообщение Nov 26 2010, 06:58
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Цитата(Danis @ Nov 24 2010, 10:59) *
Подборка тем по STM32:

Проблемы J-Link + SТМ32
http://electronix.ru/forum/index.php?showt...88&hl=STM32


STM32 не работает с J-Link, не понимаю...
http://electronix.ru/forum/index.php?showt...38&hl=STM32


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ом - тоже не коннектится sad.gif

версия mt link Hardware: V5.00 может в этом проблема?


может есть еще какие нибуть идеи и соображения?



Go to the top of the page
 
+Quote Post
Danis
сообщение Nov 28 2010, 17:45
Сообщение #6


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Alfa @ Nov 26 2010, 10:58) *
может есть еще какие нибуть идеи и соображения?


Может Вам 6-ю версию прошивки попробовать? Могу скинуть схему 6-го MT-LINK и прошивку если надо? У меня есть MT-LINK v6.0 шьет STM32 нормально.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Alfa
сообщение Nov 29 2010, 03:53
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



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


Приму с благодарностью и схему и прошивку.... Написал вам письмо...
Go to the top of the page
 
+Quote Post
Alfa
сообщение Dec 3 2010, 03:47
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Проблема решена. были перепутаны tms и tck ноги jtag....
mt-link версии 5.0 работает с контроллерами st32...

Сообщение отредактировал Alfa - Dec 3 2010, 03:49
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 4 2010, 11:43
Сообщение #9


Знающий
****

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



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

Работаю с таймером 2. 3-й канал сконфигурирован как вход. Направление счета как up-counter.
Цель- измерять период импульсов на ноге - входе 3-го канала).

3-й канал настроен на Input Cupture, по факту захвата вызывается прерывание. (CC3IE=1)
В обработчике регистр таймера обнуляется, и регистр захвата переписывается в переменную. Все банально.
В идеальных условиях все работает.

Но есть особенность- не понятно, как к этой конфигурации относится ARR ? Опытным путем установлено что его надо устанавливать в 0xFFFF, для полного диапазона измерений.
Предполагаю, что после перезагрузки таймера туда запишется это число?.

Также, после старта программы, таймер должен хоть один раз переполнится до возникновения первого прерывания. Иначе в регистре захвата какие-то числа, не соответствующие периоду возникновения прерываний, сильно превышающие его. (контролирую прерывание, дергая в обработчике ножкой и смотрю осциллографом).

Логика обнаружения этой особенности работы- надо или подавать импульсы на вход после старта программы или включать прерывание через некоторое время после старта программы.

Пока обошел это, поставив включение прерывания по захвату в конец загрузочных операций, чтобы после инициализации таймера проходило времени больше чем период таймера.

Но мне это не нравится. Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 4 2010, 20:44
Сообщение #10


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Serj78 @ Dec 4 2010, 16:43) *
Очевидно, есть какое-то событие, происходящее по переполнению таймера, приводящее к корректной работе. Но какое?

Это событие называется "update event". По нему ARR и прескалер грузятся из предварительного в теневой регистр. То есть, начинают действовать новые значения. Для генерации update event вручную надо сделать так:
Код
TIM2->EGR |= TIM_EGR_UG;

И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из вновь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF).


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Serj78
сообщение Dec 5 2010, 10:08
Сообщение #11


Знающий
****

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



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

И ещё совет: не надо каждый раз сбрасывать таймер. Это расточительно (практически таймер занят только под один канал захвата), и к тому же страдает точность (вы теряете тики, прошедшие за время входа в прерывание). Просто запоминайте предыдущее значение регистра захвата, и вычитайте его из внования не запрещать ь захваченного. Это даст длительность импульса. А таймер пусть работает в свободном режиме (от 0 до 0xFFFF).


Спасибо! Про то что таймер можно не сбрасывать, я подумал, но извечная привычка экономить переменные и память на них пересилила.. (пока мне нужен только один канал захвата)..

Теперь пытаюсь понять- я что же происходит при старте программы если прерывание разрешено и есть импульсы на входе? ? пробовал смотреть в отладчике содержимое регистров- все работает корректно- значения ARR не меняется.. меняется ли прескалер, вот не посмотрел.. sad.gif ..
При приходе прерывания выполняется обработчик, таймер сбрасывается, потом начинает увеличиваться.. но при приходе следующего импульса значение регистра захвата и самого таймера не 400-500мкс , как ожидалось, а 14-15 тысяч. Величина прескалера- 71, частота счетчика получается 1 Мгц.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Dec 5 2010, 19:11
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Нет ли у кого примера по работе с USB-HOST MassStorage для 105й - 107й серии STM32 ?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 5 2010, 19:54
Сообщение #13


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Их не существует в природе - похоже, что индусы из ST не осилили USB host sad.gif
Даже в комплекте с отладочной платой от ST идут бинарники (!), собранные с использованием платного стека USB.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Dec 9 2010, 09:44
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



у ST есть аппноут IAP бутлодера, я его переделал чтобы тот грузил прошивку не по UART, а с SD карты.
Но, бутлодер располагается с адреса 0x08000000, программа с адреса 0x08003000
Чтобы войти в бут - необходимо выключить питание МК и включить снова
Вопрос: можно ли перепрыгнуть на 0x08000000 адрес из основной программы без перезапуска?
Или лучше врубить ватчдог и дождаться пока он сбросит проц?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Dec 12 2010, 11:57
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(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;


Конечно, внешний измеряемый сигнал остановить нельзя, но под отладчиком, по крайней мере, не будет выбега таймера.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Dec 16 2010, 13:07
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(Ivan Kuznetzov @ Dec 9 2010, 07:44) *
Вопрос: можно ли перепрыгнуть на 0x08000000 адрес из основной программы без перезапуска?
Или лучше врубить ватчдог и дождаться пока он сбросит проц?

Я включаю не вачдог, а программный сброс. Потом после сброса анализирую флаг. Программный сбос в отличие от вачдога не срабатывает при аварийных ситуациях.


--------------------
ASB
Go to the top of the page
 
+Quote Post
Fktrctq
сообщение Dec 19 2010, 17:25
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 10-11-05
Из: Таганрог
Пользователь №: 10 659



Можно и другим способом. А именно так как описано в Application Note 2557 "STM32F10xxx in-application programming using the USART (IAP)". Фактически переход по нужному адресу осуществляется через присвоение этого адреса указателю на функцию, с последующим вызовом этой функции. Только не забудьте об переинициализации стека (макрос "__MSR_MSP()" в исходнике cortexm3_macro.s ).
Успехов!


--------------------
Вы пробовали выключить и снова включить?
Go to the top of the page
 
+Quote Post
plis
сообщение Dec 21 2010, 15:54
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



stm32f105 реализую USB-OTG (в режиме only-host)
запрос дескриптора к 0-точке осуществляется по одному каналу или надо заводить канал на передачу и канал на приём ?
Go to the top of the page
 
+Quote Post
676038
сообщение Jan 11 2011, 14:29
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-07-06
Пользователь №: 19 070



Цитата(Ivan Kuznetzov @ Dec 6 2010, 04:11) *
Нет ли у кого примера по работе с USB-HOST MassStorage для 105й - 107й серии STM32 ?

Появилось на сайте ST:
STM32F105/107xx USB Host library (UM1021)
Go to the top of the page
 
+Quote Post
vvs
сообщение Jan 13 2011, 12:52
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 5-01-05
Пользователь №: 1 809



Подбираю процессор для нового проекта. Рассматриваю STM32F103 или F105 в корпусе LQFP64. Вопрос про ADC: какой входной диапазон напряжения ADC - VREF = 1,2 V или VDA = 3,3 V?
Вопрос возник по причине того, что в AN-2834 (глава Using a preamplifier) пишется, что слабый сигнал можно усилмвать до 3В. А в DataSheet на STM32F105 входное напряжение ограничено VREF,
которая в корпусе LQFP64 на пинах недоступна. Да, проверить сам не могу, т.к. не имею оного железа.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Jan 14 2011, 16:01
Сообщение #21


Знающий
****

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



В STM32F103 в 64- пиновом корпусе Vref сидит жестко на 3.3 вольтах питания Соответственно, измеряемое напряжение будет не выше напряжения питания.
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jan 18 2011, 10:21
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Еще одна неприятная особенность у STM32F107 - собрали схему сброса RST с подтягивающим к 3.3В рез-ром 10к и танталом 10мк в параллель с керамикой 0.1мк. В итоге ватчдог контроллера глобальный физический сброс выдать не может - импульс до "0" не дотягивает. Наверное внутри транзистор слабоват.
Выпаивание тантала помогло. Но вопрос остался. В доке на счет номиналов подключаемой емкости к пину NRST ничего не нашёл.
На других контроллерах такого не замечено.
Go to the top of the page
 
+Quote Post
akimych
сообщение Jan 20 2011, 18:11
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



10мкФ на резет - это не слишком ли? 0.1 всегда ставили, да и меньше видел. В AN2586 0.1 мкФ на резет нарисовано.
Go to the top of the page
 
+Quote Post
OVladimir
сообщение Jan 24 2011, 09:16
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290



Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.
С STM32F103RС та же история, декларировано 256 КБ, на самом деле 512.
Может, у кого-нибудь найдётся конкретное объяснение описанных свойств процессоров?
Это понятно, что делают один кристалл для всей ветки, заглушают часть схемы и по-другому маркируют корпус. Интересно, что это за технологическая операция такая у ST что флэш всёравно работает?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jan 24 2011, 15:41
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(OVladimir @ Jan 24 2011, 10:16) *
Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает, но когда я сделал тоже самое (залил в STM32F103R8 больше чем 64 КБ) через JTAG, он работать отказался (при отладке увидел, что останавливается на инструкции BKPT в самом начале). Получается, что в R8 - 128 KB с нюансом.


Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!
Go to the top of the page
 
+Quote Post
OVladimir
сообщение Jan 25 2011, 08:20
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290



Цитата(KnightIgor @ Jan 24 2011, 17:41) *
Вы с коллегой над одним и тем же экземпляром процессора измывались? Если нет, моя версия - STM32F103R8 на самом деле был STM32F103RB. Я сам пару раз накалывался, т.к., если процессор не свежаком из трубы, а из коробки с образцами, на маркировке "8" и "B" почти невозможно отличить друг от друга!

Действительно, отличить очень сложно, но у нас уже давно массовое производство и отличать маркировку уже научились. "Измывались" мы над несколькими разными процессорами, и речь идёт не о похожести B на 8.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Jan 26 2011, 15:59
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(OVladimir @ Jan 25 2011, 09:20) *
... но у нас уже давно массовое производство и отличать маркировку уже научились.


А, кстати о массовости: довольны STM32F? Какова статистика?
Go to the top of the page
 
+Quote Post
skripach
сообщение Jan 26 2011, 16:16
Сообщение #28


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата
Вопрос по поводу объёма флэш памяти.

Обычное дело - маркетинг. Кристаллы во всех корпусах одинаковые. sm.gif
Почти не шутка.


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Jan 26 2011, 19:08
Сообщение #29


Знающий
****

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



Цитата(OVladimir @ Jan 24 2011, 12:16) *
Вопрос по поводу объёма флэш памяти.
Как-то раз, оператор в производстве случайно залил программу для STM32F103RB (128КБ) в STM32F103R8 (64КБ). Программатор не ругался, программа работает,


А каким программатором заливали? Через бутлоадер?
Не очень понятно, в каких случаях можно залить более 64км, а в каких нет..
Go to the top of the page
 
+Quote Post
OVladimir
сообщение Jan 27 2011, 18:06
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-01-07
Из: Вильнюс
Пользователь №: 24 290



Цитата(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, может, голову оторвать захотят....

Сообщение отредактировал OVladimir - Jan 27 2011, 18:11
Go to the top of the page
 
+Quote Post
fiim
сообщение Jan 28 2011, 14:27
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 29-10-09
Пользователь №: 53 291



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

Сообщение отредактировал fiim - Jan 29 2011, 07:36
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Jan 29 2011, 16:37
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Цитата(676038 @ Jan 11 2011, 19:29) *
Появилось на сайте ST:
STM32F105/107xx USB Host library (UM1021)


Опробовал на флешках, мышках и клавиатуре. Флешки больше 8 Гб в упор не видит. У флешек на 8 Гб видит только 4. Почему?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jan 30 2011, 07:08
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



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

Где-то под размер отвели 32-битную переменную или в промежуточных вычислениях недосмотрели, а 232 как раз 4G.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
topkin
сообщение Jan 30 2011, 11:32
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



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

А где вы разжились этими камушками? Образцы уже поставляют?
Go to the top of the page
 
+Quote Post
ZiB
сообщение Jan 30 2011, 14:45
Сообщение #35


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Цитата(topkin @ Jan 30 2011, 17:32) *
А где вы разжились этими камушками? Образцы уже поставляют?

У нас уже доступны по предзаказу
http://www.elcopro.ru/catalog/price-list/?search=STM32L
Пока только STM32L151CBT6 по 300 рублей.
Но у меня пока руки не дошли
только с дисковери побаловался
http://ziblog.ru/category/mikrokontrolleryi/stm32/
Go to the top of the page
 
+Quote Post
fiim
сообщение Jan 31 2011, 07:55
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 29-10-09
Пользователь №: 53 291



Цитата(topkin @ Jan 30 2011, 14:32) *
А где вы разжились этими камушками? Образцы уже поставляют?

Да, это образец, просто повезло, вовремя отхватил, наверно последний был в Терре.
Думаю скоро появятся в продаже.
Note: Переводить все порты на аналоговый вход желательно, но не обязательно(тем более, что в стоп-моде могут потребоваться какие-то уровни на пинах): главное отключить подтяжки(пулап-пулдаун)жтага-это они в основном столько кушают.

Сообщение отредактировал fiim - Jan 31 2011, 08:03
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Feb 1 2011, 09:41
Сообщение #37


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Статейка для совсем начинающих:
http://www.codeproject.com/KB/cpp/STM32_Di...ry_Project.aspx


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Feb 1 2011, 15:46
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Danis @ Nov 19 2010, 19:19) *
Предлагаю в этой теме обсуждать вопросы разработчиков на STM32.


ТЕМА: неверное значение при считывании регистра DBGMCU_IDCODE, STM32F103RB.

Попробовал в программе вывести значение этого RO регистра (с помощью printf(), разумеется). Согласно Reference Manual RM0008, стр. 1055, регистр всегда доступен. С удивлением увидел нули!

1. Начал под отладчиком пошагово - вдруг все считалось правильно!
2. Вышел из отладчика, нажимал RESET, перезапуская процессор, - по-прежнему все правильно.
3. Передернул питание - опять нули!.

Повторяем с шага 1. - опять правильно считывается, пока питание не передернешь.

Кто сталкивался?
Go to the top of the page
 
+Quote Post
akimych
сообщение Feb 1 2011, 17:44
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?
Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Feb 1 2011, 19:30
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(akimych @ Feb 1 2011, 18:44) *
Ну правильно, DBG различают POR и остальные резеты. 0 читается один раз после включения?
Может какие-то тонкости синхронизации шин. На 100м не воспроизвелось.


Пробовал читать подрят несколько раз - все равно нули после передергивания питания.
О синхронизации не скажу... Читаю лишь после того, как запущена вся периферия.

Как я написал, согласно актуальному Reference Manual регистр читается и из пользовательской программы. Где-то в недрах форума ST я действительно нашел упоминание, что считывается только в режиме debug, а иначе - нули, но это касалось первых ревизий. Мой процессор имеет в DBGMCU_IDCODE (если удалось считать) значение 0x20030410, что означает Medium Density Device Revision Y.

Интересно, что втыкает единократный вход в режим debug после переброски питания, что после этого считывается реальное значение... Может надо прочесть разок POR?

Сообщение отредактировал KnightIgor - Feb 1 2011, 19:31
Go to the top of the page
 
+Quote Post
akimych
сообщение Feb 1 2011, 22:28
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
Может надо прочесть разок POR?

Не представляю, как можно прочитать POR sm.gif
Но вот если прочитать 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го.
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Feb 1 2011, 22:41
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(akimych @ Feb 1 2011, 23:28) *
Но вот если прочитать errata, то можно выяснить
И касается походу всех ревизий 101 и 103го.

Хорошо, тогда почему все же регистр читается, пусть даже после того, как единожды попользовались отладчиком, но потом жали на RESET?
Go to the top of the page
 
+Quote Post
akimych
сообщение Feb 2 2011, 00:06
Сообщение #43


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Потому что обычный RESET на эти регистры не влияет.

Сообщение отредактировал akimych - Feb 2 2011, 00:06
Go to the top of the page
 
+Quote Post
Twen
сообщение Feb 14 2011, 11:44
Сообщение #44


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Добрый день всем. Всех с праздником.
Я вот перехожу на стм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 ?


Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Feb 14 2011, 13:53
Сообщение #45


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



stm32f10x_nvic.h

CODE
/* NVIC Init Structure definition */
typedef struct
{
u8 NVIC_IRQChannel;
u8 NVIC_IRQChannelPreemptionPriority;
u8 NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;



--------------------
ASB
Go to the top of the page
 
+Quote Post
topkin
сообщение Feb 14 2011, 20:12
Сообщение #46


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Привет всем, столкнулся с такой проблемой в 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 обещали исправить эту проблему:-)
Прикрепленные файлы
Прикрепленный файл  FlashSTM32F10xxx.zip ( 639 байт ) Кол-во скачиваний: 129
 
Go to the top of the page
 
+Quote Post
Rafael
сообщение Feb 18 2011, 11:34
Сообщение #47





Группа: Новичок
Сообщений: 1
Регистрация: 21-02-05
Пользователь №: 2 803



Вернувшись к проекту через год неожиданно наткнулся на проблему с драйвером 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 все работало без глюков, с любым размером буфера
Go to the top of the page
 
+Quote Post
akimych
сообщение Feb 19 2011, 10:23
Сообщение #48


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
Пробовал VCPDriver: v1.1, v1.2, v1.3

Интересно, чем они отличаются. Учитывая, что это и не драйвер по сути, просто inf файл. Драйвер родной виндовый usbser, который в разных версиях винды может отличаться.
Глянуть бы каким-нибудь usblyzer-ом что там происходит.




Go to the top of the page
 
+Quote Post
Danis
сообщение Feb 20 2011, 20:38
Сообщение #49


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Привет спецы, интересует STM32F2XX: интерфейс подключения камеры. Планирую заложить в новый проект. Кто нить использовал уже опытные образцы?


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Mar 1 2011, 00:39
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Не пойму, нужно ли выводить ресет на разьем SWD? Или достаточно SWCLK и SWDIO ?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
e-serg
сообщение Mar 1 2011, 06:29
Сообщение #51


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 24-07-08
Из: Иркутск
Пользователь №: 39 180



Цитата(InsolentS @ Mar 1 2011, 08:39) *
Не пойму, нужно ли выводить ресет на разьем SWD? Или достаточно SWCLK и SWDIO ?

Достаточно, на мелких платах только их и использую.
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Mar 1 2011, 12:25
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(e-serg @ Mar 1 2011, 11:29) *
Достаточно, на мелких платах только их и использую.

Спасибо. А на крупных платах как поступаете? Разводите JTAG?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 1 2011, 12:43
Сообщение #53


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Тоже вывожу только SWCLK и SWDIO. Выводить JTAG смысла не вижу: разве JTAG даёт какое-нибудь преимущество над SWD при отладке?
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Mar 1 2011, 16:24
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(scifi @ Mar 1 2011, 17:43) *
Тоже вывожу только SWCLK и SWDIO. Выводить JTAG смысла не вижу: разве JTAG даёт какое-нибудь преимущество над SWD при отладке?

Вроде скорость заливки во FLASH выше.
Я правильно понимаю, что в любой момент времени, если на пинах SWCLK и SWDIO появится определённая последовательность данных, проц перейдёт в режим отладки? Получается потенциально опасная ситуация


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 1 2011, 20:06
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(InsolentS @ Mar 1 2011, 19:24) *
Я правильно понимаю, что в любой момент времени, если на пинах SWCLK и SWDIO появится определённая последовательность данных, проц перейдёт в режим отладки? Получается потенциально опасная ситуация

Вот что сказано в руководстве по STM32:
Цитата
If the debugger host wants to switch to the SW-DP, it must provide a dedicated JTAG
sequence on TMS/TCK (respectively mapped to SWDIO and SWCLK) which disables the
JTAG-DP and enables the SW-DP. This way it is possible to activate the SWDP using only
the SWCLK and SWDIO pins.
This sequence is:
1. Send more than 50 TCK cycles with TMS (SWDIO) =1
2. Send the 16-bit sequence on TMS (SWDIO) = 0111100111100111 (MSB transmitted first)
3. Send more than 50 TCK cycles with TMS (SWDIO) =1

Я так понимаю, этот танец с бубном сделан таким для того, чтобы он никак не мог произойти при нормальном использовании JTAG. Поэтому можно спать спокойно.
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 2 2011, 12:10
Сообщение #56


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
если на пинах SWCLK и SWDIO появится определённая последовательность данных, проц перейдёт в режим отладки? Получается потенциально опасная ситуация

Не проц перейдет в режим отладки, а JTAG переключится в режим SWD.
Резет теоретически может пригодиться на случай, если прошивка переводит мк в режим, когда отладчик не может подключиться.
Но я бы на этот случай подключал boot0 на землю через резистор, чтобы в крайнем случае можно было запустить бутлоадер и потом отладчик.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Mar 2 2011, 14:32
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



привет всем! Хочу использовать одновременно IWDG и STOP режим. Как-то это можно обыграть? Я так понимаю, если я войду в спячку, то вачдог сбросит МК.

Сообщение отредактировал Ivan Kuznetzov - Mar 2 2011, 14:33


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
Murk
сообщение Mar 2 2011, 14:59
Сообщение #58


Частый гость
**

Группа: Участник
Сообщений: 150
Регистрация: 15-02-06
Из: ЛНР Рубежное
Пользователь №: 14 357



Ivan Kuznetzov Дауж врятли, скорее всего вместе с контроллером уснёт и вачдог.
У Renesas_a такое есть.

Сообщение отредактировал Murk - Mar 2 2011, 14:59


--------------------
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Чем больше слёз тем больше облегчения, в слезах и заключается лечение.
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Mar 2 2011, 16:12
Сообщение #59


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Проверил: если проц перевести в STOP при включенном IWDG, то последний сбросит МК. Т.е. надо вачдог как-то обновлять во время спячки


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Mar 3 2011, 16:26
Сообщение #60


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Кто-нибудь пробовал применить встроенный CEC интерфейс для чего-нибудь полезного? Например, в качестве дополнительного UART или I-wire (если это вообще возможно) ?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Mar 9 2011, 09:33
Сообщение #61


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Ivan Kuznetzov @ Mar 2 2011, 17:12) *
Проверил: если проц перевести в STOP при включенном IWDG, то последний сбросит МК. Т.е. надо вачдог как-то обновлять во время спячки

Посмотри DBGMCU тему: если в регистре DBGMCU->CR установить бит DBGMCU_IWDG_STOP (0x100) где-нибудь в процессе инициализации системы, то при отладке IWDG тоже будет стоять. Это имеется ввиду?


Цитата(InsolentS @ Mar 3 2011, 17:26) *
Кто-нибудь пробовал применить встроенный CEC интерфейс для чего-нибудь полезного? Например, в качестве дополнительного UART или I-wire (если это вообще возможно) ?

CEC интерфейса как отдельного железа нет: это библиотечная реализации протокола управления бытовой аппаратурой с использованием существующей "обычной" периферии.

Сообщение отредактировал KnightIgor - Mar 9 2011, 09:32
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Mar 9 2011, 13:06
Сообщение #62


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(KnightIgor @ Mar 9 2011, 14:33) *
Посмотри DBGMCU тему: если в регистре DBGMCU->CR установить бит DBGMCU_IWDG_STOP (0x100) где-нибудь в процессе инициализации системы, то при отладке IWDG тоже будет стоять. Это имеется ввиду?



CEC интерфейса как отдельного железа нет: это библиотечная реализации протокола управления бытовой аппаратурой с использованием существующей "обычной" периферии.

А за что отвечает пин "CEC" (PB8 в stm32f100xx) ?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
Serj78
сообщение Mar 10 2011, 18:09
Сообщение #63


Знающий
****

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



А кто- нибудь заморачивался написанием собственного софта (под PC) для прошивки STM32 через его штатный бутлоадер на производстве?
Сейчас использую ST-шный flash loader demonstrator, но он слишком универсальный по интерфейсу...

Хочется окно с одной кнопкой- прошить- он стирает чип и заливает новую прошивку из hex- файла например..

Есть ли открытые подобные проекты? А то из programing manual не все понятно sm.gif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 10 2011, 18:36
Сообщение #64


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



stm32flash


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Serj78
сообщение Mar 11 2011, 05:42
Сообщение #65


Знающий
****

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



Спасибо! Пока не разобрался как скачать, "This project currently has no downloads."
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 11 2011, 05:48
Сообщение #66


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Качать там нужно исходникиsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Ant.
сообщение Mar 13 2011, 20:00
Сообщение #67


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 18-06-06
Пользователь №: 18 144



Кто-нибудь разбирался с изохронным USB?
В документации для STM32F103C8 написано, что максимальный размер пакета для изохронного эндпоинта 512 байт.
Но не понятно, в случае эндпоинта с двумя буферами, получается максимальный размер пакета 256 байт ?

Использую библиотеку STM32_USB-FS-Device_Driver V3.2.1.
При передаче пакетов размером 192 байта с интервалом 1мс работает, а 384 - уже нет...

Еще не совсем понятно, как устанавливать значения ENDP1_BUF0Addr и ENDP1_BUF1Addr в файле usb_conf.h.
Go to the top of the page
 
+Quote Post
Danis
сообщение Mar 14 2011, 07:19
Сообщение #68


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Ant. @ Mar 14 2011, 00:00) *
Но не понятно, в случае эндпоинта с двумя буферами, получается максимальный размер пакета 256 байт ?


Вот из даташита.
22.2 USB main features
● USB specification version 2.0 full-speed compliant
● Configurable number of endpoints from 1 to 8
● Cyclic redundancy check (CRC) generation/checking, Non-return-to-zero Inverted
(NRZI) encoding/decoding and bit-stuffing
● Isochronous transfers support
● Double-buffered bulk/isochronous endpoint support
● USB Suspend/Resume operations
● Frame locked clock pulse generation
Note: The USB uses a dedicated 512-byte SRAM memory for data transmission and reception
(only the USB accesses this SRAM).


У меня так и получилось. MAx размер пакета 256 байт.




--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Fry__
сообщение Mar 14 2011, 13:20
Сообщение #69


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 26-03-10
Пользователь №: 56 229



Подскажите - как правильно организовать работу DMA с группой введеных каналов ADC1 и ADC2, или введеные каналы только в прерывании надо обслуживать?
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 14 2011, 17:42
Сообщение #70


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата из даташита
Цитата
Only the end of conversion of a regular channel generates a DMA request ...


Go to the top of the page
 
+Quote Post
Danis
сообщение Mar 14 2011, 18:00
Сообщение #71


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Fry__ @ Mar 14 2011, 17:20) *
Подскажите - как правильно организовать работу DMA с группой введеных каналов ADC1 и ADC2, или введеные каналы только в прерывании надо обслуживать?


Чето вопрос не совсем понял. Переформулируйте. А вообще разве ADC2 можно на DMA посадить?

Reference manual STM32_rev11
Note: Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in
dual ADC mode using DMA thanks to master ADC1.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Fry__
сообщение Mar 14 2011, 18:29
Сообщение #72


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 26-03-10
Пользователь №: 56 229



Цитата(akimych @ Mar 14 2011, 21:42) *
Цитата из даташита: Only the end of conversion of a regular channel generates a DMA request ...

Ясно, спасибо.

Цитата(Danis @ Mar 14 2011, 22:00) *
Чето вопрос не совсем понял. Переформулируйте. А вообще разве ADC2 можно на DMA посадить?

Reference manual STM32_rev11
Note: Only ADC1 and ADC3 have this DMA capability. ADC2-converted data can be transferred in
dual ADC mode using DMA thanks to master ADC1.

Да, да - я знаю. Я имел ввиду работу ADC1&2 в Dual режиме.
Просто есть восемь входных аналоговых сигналов, я подумал сформировать введеные группы на первом и втором АЦП. Хотелось использовать смещение, для регулярных каналов оно не поддерживается.

Сообщение отредактировал Fry__ - Mar 14 2011, 18:31
Go to the top of the page
 
+Quote Post
Danis
сообщение Mar 22 2011, 12:19
Сообщение #73


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Возникло затруднение при выборе в IAR языка С++. Хочу часть программы перенести с «большой машины» на контроллер STM32, там она ООП вся, на Си переписывать нет времени.
Все компилиться и зашивается как и при использовании языка Си, но программа не отлаживается J-Link-ом, вернее начинает отлаживаться и затыкается. Использую периферийную библиотеку STM32 version V3.4.0.
Все нормально инициализируется, но после инициализации NVIC, программа затыкается так (см. скриншот). В чем косяк? Предполагаю, что не видит обработчик прерывания?
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 22 2011, 15:51
Сообщение #74


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



extern "C" TIM2_IRQHandler()
...


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Danis
сообщение Mar 23 2011, 05:22
Сообщение #75


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(AHTOXA @ Mar 22 2011, 19:51) *
extern "C" TIM2_IRQHandler()
...

СПАСИБО, так работает!


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Alechin
сообщение Mar 25 2011, 12:10
Сообщение #76


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



А как-нибудь сделать обработчик членом класса можно? Имя то будет уже другим. "В лоб" не получилось.
Например самый простой вариант - SysTick таймер.
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 25 2011, 13:30
Сообщение #77


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
А как-нибудь сделать обработчик членом класса можно?

Подозреваю, что это не очень хорошая мысль. Вызываться-то он будет, как обычная процедура.
Такое прокатит разве что со статическим методом. Но видимо придется в стартапе прописать реальное имя этого метода.
Тогда уж проще из обычного обработчика вызывать метод класса.

Кто использует RTC у STM32, нормально часы работают?
Просто я в ветке про "LPC1768 и RTC" наткнулся на фразу
Цитата
Означает, что RTC в первых ревизиях уходят более чем на 1с. за сутки на краях рабочих температур.

Т.е. 1с в сутки это много. А у меня на стм32 при комнатной температуре уход часов на неск. секунд в сутки обычное дело.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 25 2011, 14:46
Сообщение #78


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(akimych @ Mar 25 2011, 15:30) *
Кто использует RTC у STM32, нормально часы работают?

Замечательно работают. Естественно, какой-то уход всегда будет, но не 1 с в сутки, это точно.
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 26 2011, 00:15
Сообщение #79


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
Замечательно работают. Естественно, какой-то уход всегда будет, но не 1 с в сутки, это точно.

А какие кварцы используете?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 26 2011, 09:39
Сообщение #80


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(akimych @ Mar 26 2011, 02:15) *
А какие кварцы используете?

Да самые, что ни есть, обычные.
NC38 Кварцевый резонатор часовой (32.768 кГц, +/-20 ppm, C=12.5pF, -20 to +60C), корпус цилиндрический d=3mm, h=8.3mm
Теоретически, при +/-20 ppm они могут уходить и больше, чем на секунду в сутки, но на практике получается секунда за трое суток - неделю. Может я везучий?
Ах да, может это важно, я не беру комплектующие на радиорынке, только у проверенных поставщиков.
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 26 2011, 19:24
Сообщение #81


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
NC38 Кварцевый резонатор часовой (32.768 кГц, +/-20 ppm, C=12.5pF, -20 to +60C), корпус цилиндрический d=3mm, h=8.3mm

Вот интересно, в даташите на стм32 есть фраза
Цитата
To avoid exceeding the maximum value of CL1 and CL2 (15 pF) it is strongly recommended to use a resonator
with a load capacitance CL < 7 pF. Never use a resonator with a load capacitance of 12.5 pF.

Получается, зря пугают?

А кварцы у меня в таком же корпусе, правда вроде бы не NC38, а DT38. Куплены не на рынке, серийное изделие все-таки.


Go to the top of the page
 
+Quote Post
uu5jkb
сообщение Mar 28 2011, 18:58
Сообщение #82


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 4-02-09
Пользователь №: 44 400



Добрый вечер всем.
Поставил себе Keil uVision 4.20, открыл первый попавшийся пример, подключил плату STM32VLDiscovery, прошил, дебаггером погулял, порадовался. Далее пытаюсь написать что-то самостоятельно, и, чтобы не гонять контроллер, пытаюсь дебажить программу симулятором. Для тренировки опять открыл проект из примеров, ничего не поганил в нем. Запускаю дебаггер, в окне дизассемблера указатель на адресе 0х00000000 с командой mov r0, r0. Жму F10, указатель остается на месте, в SP появляется какое-то немыслимое число 0xFFFFFFF8 или около того. Ни на main, ни на Reset Handler указатель не перескакивает, до брейк-пойнтов после нажатия на Run не идет. В окне Command пишут "Error 65. access violation at 0x00000000: no 'read' permission". В MAP Memory разрешаю отладчику делать с этим участком памяти все, ситуацию не спасает. Зашел на сайт Keil, там предложили как один из вариантов писать в Debug Command Window $=0x0800000. После этой команды указатель переходит в начало функции main, но дальше все равно по шагам не идет. Настройки памяти в Options не трогал, начальные адреса нормальные. Расскажите, пожалуйста, где и почему я дурак. Пробовал открывать проекты других контроллеров (LPC, Atmel etc) - дебаггер прекрасно работает

Сообщение отредактировал uu5jkb - Mar 28 2011, 19:36
Go to the top of the page
 
+Quote Post
akimych
сообщение Mar 28 2011, 23:20
Сообщение #83


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Цитата
пытаюсь дебажить программу симулятором

Не поддерживает симулятор кейла полноценно серию STM32F100, только ядро.
Выбирайте F101 и симулируйте. Это самый простой способ.
Или можно прописать DLL-ки от F101 в опциях симулятора/отладчика.

Сколько уже народу на эти грабли наступило...

Go to the top of the page
 
+Quote Post
uu5jkb
сообщение Mar 29 2011, 06:28
Сообщение #84


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 4-02-09
Пользователь №: 44 400



Цитата(akimych @ Mar 29 2011, 02:20) *
Не поддерживает симулятор кейла полноценно серию STM32F100, только ядро.
Выбирайте F101 и симулируйте. Это самый простой способ.
Или можно прописать DLL-ки от F101 в опциях симулятора/отладчика.

Сколько уже народу на эти грабли наступило...


Большое спасибо, помогло. А как, интересно, сам Keil комментирует такую ситуацию...
Про грабли - это верно, зато не пропустил опыт. Еще раз спасибо
Go to the top of the page
 
+Quote Post
Картофель-фри
сообщение Mar 30 2011, 06:19
Сообщение #85





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



Всем привет

Хотел сказать что есть такая интересная статья по всем преимуществам STM32 против AVR, Stellaris, LPC krapula.gif .

http://www.compeljournal.ru/enews/2011/2/3

Особенно интересный график под конец! STM32 рулит disco.gif !
Go to the top of the page
 
+Quote Post
KSN
сообщение Mar 30 2011, 07:10
Сообщение #86


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Помогите выйти из 3-х сосен: проц STM32F103RBT6. Программирую порты PA0-PA3 как Floating input. К этим выводам подключены джамперы, которыми устанавливаю "0", либо "1". При включении платы PA0 постоянно "0", после сброса по NRST состояние PA0 определяется джампером.
Уже замучился искать, где ошибся. Какие настройки можно глянуть?
Go to the top of the page
 
+Quote Post
Danis
сообщение Mar 30 2011, 12:50
Сообщение #87


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(KSN @ Mar 30 2011, 11:10) *
Помогите выйти из 3-х сосен: проц STM32F103RBT6. Программирую порты PA0-PA3 как Floating input. К этим выводам подключены джамперы, которыми устанавливаю "0", либо "1". При включении платы PA0 постоянно "0", после сброса по NRST состояние PA0 определяется джампером.
Уже замучился искать, где ошибся. Какие настройки можно глянуть?


Выложите свой исходник инициализации порта, гляну.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Юрийюрич
сообщение Mar 30 2011, 20:55
Сообщение #88





Группа: Новичок
Сообщений: 1
Регистрация: 22-06-07
Пользователь №: 28 618



Парочка хинтов.
Некоторое время назад пришлось поработать с STM32 с многими используемым замечательным скриптом stm32loader.py. Если в компьютере есть последовательный порт, скрипт замечательно с ним работает. Но компьютеры с таким портом уже давно редкость, приходится использовать USB-переходники (FTDI, Prolific). При использовании их заливка прошивки идёт раза в два медленнее. Дело в том, что скрипт высылает данные побайтно, а драйвер для каждого байта отправляет по USB целый блок и получает подтверждение. Оверхед налицо!
Проблема лечится в методе cmdWriteMemory: собираем весь блок (до 256 байт) данных в стринг, затем вываливаем его драйверу одним махом. Вот так:
CODE
def cmdWriteMemory(self, addr, data):
assert(len(data) <= 256)
strwr = '' #Data will be collected to this bytestring
if self.cmdGeneric(0x31):
mdebug(10, "*** Write memory command")
self.sp.write(self._encode_addr(addr))
self._wait_for_ask("0x31 address failed")
#map(lambda c: hex(ord( c )), data)
lng = (len(data)-1) & 0xFF
mdebug(10, " %s bytes to write" % [lng+1]);
strwr += chr(lng)
crc = 0xFF
for c in data:
crc = crc ^ c
strwr += chr( c )
strwr += chr(crc)
self.sp.write(strwr) #Write the whole collected bytestring
self._wait_for_ask("0x31 programming failed")
mdebug(10, " Write memory done")
else:
raise CmdException("Write memory (0x31) failed")

И ещё одна проблема наблюдалась. Скрипт открывает файл не используя бинарный режим явно, что под Windows иногда приводит к заливке прошивки неполностью.
Лечится в мэйне:
CODE
if (conf['write'] or conf['verify']):
data = map(lambda c: ord( c ), file(args[0], 'rb').read())
print 'File', args[0], ':', len(data), 'bytes'

Также порекомендую в конце скрипта включить команду на запуск программы, чтобы она сразу начинала работать без необходимости вручную выключать режим бутлодера и делать сброс:
CODE
cmd.cmdGo(0x08000000)
finally:
cmd.releaseChip()
Go to the top of the page
 
+Quote Post
KSN
сообщение Mar 31 2011, 01:56
Сообщение #89


Местный
***

Группа: Свой
Сообщений: 404
Регистрация: 3-12-04
Из: Новосибирск
Пользователь №: 1 304



Цитата(Danis @ Mar 30 2011, 19:50) *
Выложите свой исходник инициализации порта, гляну.

Решил проблему. После инициализации портов перед операцией чтения вставил небольшую задержку. Спасибо за предложение помощи.
Go to the top of the page
 
+Quote Post
Mos
сообщение Mar 31 2011, 11:58
Сообщение #90


Частый гость
**

Группа: Свой
Сообщений: 89
Регистрация: 31-10-06
Пользователь №: 21 829



Интересная проблемка с реализацией USB CDC на STM32F103 и usbser.sys (WinXP).
Был взят пример Usb Virtual Serial Port и переделан по-людски, версия Usb - библиотеки: STM32 USB-FS-Device Driver 3.2.1;
Режим работы таков: после подключения и инициализации, хост передаёт девайсу некоторый объём данных (~1 Кб) для инициализации; в процессе работы хост практически всегда молчит.
Девайс непрерывно передаёт хосту данные (накопленные в FIFO) со скоростью 100 Кб/с. Если на момент опроса у девайса нет данных для передачи, то он отвечает ZLP.

Всё работает просто чудно!

Но почему-то через примерно 300, либо примерно 980, либо примерно 1800 секунд на девайсе перестаёт вызываться Callback на TX sad.gif

Вероятность ошибки в "пользовательском" коде невелика (ибо он очень прост). Подозрение падает на usbser.sys

Вот.
Go to the top of the page
 
+Quote Post
Sergey_vn
сообщение Apr 1 2011, 01:41
Сообщение #91





Группа: Участник
Сообщений: 10
Регистрация: 2-03-06
Пользователь №: 14 864



А кто-нибудь в курсе, когда STM обещает начать массовое производство и выпуск серии STM32F2xx?
Go to the top of the page
 
+Quote Post
topkin
сообщение Apr 4 2011, 09:59
Сообщение #92


Частый гость
**

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Цитата(Sergey_vn @ Apr 1 2011, 05:41) *
А кто-нибудь в курсе, когда STM обещает начать массовое производство и выпуск серии STM32F2xx?

По слухам с апреля, до нас с вами докатится не раньше мая...
Go to the top of the page
 
+Quote Post
10199
сообщение Apr 4 2011, 12:12
Сообщение #93


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 534



Всем привет. Планируем использовать CORTEХ-M3 контроллер STM32F103C8 совместно с эмулятором J-Link ARM ( http://jtag.su/index.php?option=com_conten...7&Itemid=1) в IAR. Т.к. опыта работы с такими контроллерами нету, то вопрос таков - будет ли это все работать? :D
Go to the top of the page
 
+Quote Post
Danis
сообщение Apr 4 2011, 13:01
Сообщение #94


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(10199 @ Apr 4 2011, 15:12) *
Всем привет. Планируем использовать CORTEХ-M3 контроллер STM32F103C8 совместно с эмулятором J-Link ARM ( http://jtag.su/index.php?option=com_conten...7&Itemid=1) в IAR. Т.к. опыта работы с такими контроллерами нету, то вопрос таков - будет ли это все работать? :D


Будет, только ссылка Ваша на китайский клон, стоит он около 600руб.
http://www.aliexpress.com/product-fm/37417...holesalers.html


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
10199
сообщение Apr 8 2011, 05:09
Сообщение #95


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 534



Начали разбираться с stm32 контроллером, чтобы не создавать новую тему - так как вопросов будет много - буду спрашивать их здесь.
В модуле GPIO есть регистры AFIO, чтобы назначать REMAP и указывать ножку для внешнего прерывания. С этим вроде все ясно. Но еще там есть один магический регистр Event control register (AFIO_EVCR), который назначает ножку и порт для некого "EVENTOUT Cortex output". Поиск в даташите на ядро и в референсе ничего не дали. В гугле толком тоже нету. Что это такое?

Сообщение отредактировал 10199 - Apr 8 2011, 05:09
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 8 2011, 05:54
Сообщение #96


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Тоже есть вопросик про GPIO они что не предусмотрели регистр для атомарного XOR'а порта вывода?
BSSR и BRR - это конечно хорошо но мало...

Как народ делает атомарно инверсию пина?
Неужели через if !!!!
Или через ремап для побитовой адресации?

PS: Я тут макросами имени Аскольда под STM озадачился, всё красиво получилось кроме pin_toggle(PIN)...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2011, 08:59
Сообщение #97


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(demiurg_spb @ Apr 8 2011, 11:54) *
PS: Я тут макросами имени Аскольда под STM озадачился, всё красиво получилось кроме pin_toggle(PIN)...

Посмотрите вот это, может пригодится.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 8 2011, 09:21
Сообщение #98


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(AHTOXA @ Apr 8 2011, 12:59) *
Посмотрите вот это, может пригодится.

Код
void Cpl()
{
      *(volatile uint32_t *)ODR_BB_ADDR = ~*(volatile uint32_t *)ODR_BB_ADDR;
}
Посмотрел. Выглядит симпатично. А во что это компилиться?
Я всё же больше на Си...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 8 2011, 09:26
Сообщение #99


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(demiurg_spb @ Apr 8 2011, 12:21) *
Посмотрел. Во что это компилиться?

И компилится, и атомарная операция. Через бит-бэнд регион обращается к отдельному биту регистра ODR.
Т.е. доступ к одному биту в bit-band alias области, как к целому слову в bit-band области.
Только смысла в ней немного.
Проще через BSRR и BRR, и по скорости, и по коду.
Код
void LED_Blink(void) {
  while (1) {
    GPIOB->BSRR = 0x0002;
//    __nop(), __nop(), __nop;
    GPIOB->BRR = 0x0002;
  }
}
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 8 2011, 09:50
Сообщение #100


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(ViKo @ Apr 8 2011, 13:26) *
Проще через BSRR и BRR, и по скорости, и по коду.
И компилится, и атомарная операция. Через бит-бэнд регион обращается к отдельному биту регистра ODR.
Т.е. доступ к одному биту в bit-band alias области, как к целому слову в bit-band области.
Только смысла в ней немного.

Т.е. так вполне сносно будет?
Код
...
#define _PIN_SET(   XPORT, XPIN, XMODE, XSPEED)  do {GPIO##XPORT->BSRR = (1UL << (XPIN)); } while (0)  // Atomic operation
#define _PIN_CLR(   XPORT, XPIN, XMODE, XSPEED)  do {GPIO##XPORT->BRR  = (1UL << (XPIN)); } while (0)  // Atomic operation

#define _PIN_TEST(  XPORT, XPIN, XMODE, XSPEED)   ( (GPIO##XPORT->IDR  & (1UL << (XPIN))) != 0UL )

#define _PIN_TOGGLE(XPORT, XPIN, XMODE, XSPEED)                                        \
do                                                                                     \
{                                                                                      \
    if (_PIN_TEST(XPORT, XPIN, XMODE, XSPEED))  _PIN_CLR(XPORT, XPIN, XMODE, XSPEED);  \
    else                                        _PIN_SET(XPORT, XPIN, XMODE, XSPEED);  \
} while (0)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

33 страниц V   1 2 3 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 16:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.02662 секунд с 7
ELECTRONIX ©2004-2016