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

 
 
20 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> STM32F103x, делимся впечатлениями
Krom
сообщение Apr 29 2008, 06:41
Сообщение #91


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

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



Добрый день! А работать с этими процами под Linux в Эклипс+OCD+GCC... кто-нибудь уже пробовал?
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Apr 29 2008, 16:21
Сообщение #92


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

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



На Techtrends 2008 анонсировали (пока неофициально - обещают официально выдать только в мае) расширение линейки STM32 как вверх - до 512 кБ FLASH и 64 кБ ОЗУ с кучей новых вкусностей, так и вниз до блох, сравнимых с ATmega88.
Предварительные доки выложил на ftp в /upload/DOCs/ARM/STM32/
и в пески
hччp://upload.caxapa.ru/STM32_ref_man.zip
hччp://upload.caxapa.ru/STM32F101xCDE.pdf
hччp://upload.caxapa.ru/STM32F103xCDE.pdf


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
Krom
сообщение Apr 30 2008, 07:12
Сообщение #93


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

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



Что-то у меня никак не получается связать Кейл и отладочную плату STM3210B-EVAL.
Имеется в наличии STM3210B-EVAL и USB J-Link иаровский.
Стоит RealView MDK-ARM v3.20, Segger J-Link ARM V3.80.
По отдельности все работает - кейл проект компиллирует, с помощью J-Flash hex-файл во флеш прошивается, программа работает (демо-пример).
А вот все вместе - никак.
В Кейле в Flash->Configure Flash Tools на вкладках Debug и Utilites установлено RDI Interface Driver, длл-ки указаны не кейловские, а сеггеровские ( в обоих случаях JLinkRDI.dll).
Если делаем Start/Stop Debug Session задумывается на пару минут, потом выбрасывает в окно Disassemly sad.gif
А грузить и стирать флеш из Кейла вообще не хочет. Что я забыл настроить?
Go to the top of the page
 
+Quote Post
Maximm
сообщение Apr 30 2008, 22:43
Сообщение #94


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

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



У меня проблема с компиляцией проектов для STM32F103 - использую Keil MDK v. 3.20 при компиляции примеров от Keil получаю ошибку:

STM32F10x.s: error: A3903U: Argument 'DARMSTM' not permitted for option 'device'.

Подскажите, пожалуйста, что не так сделал.....


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
Maximm
сообщение May 4 2008, 18:20
Сообщение #95


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

Группа: Свой
Сообщений: 157
Регистрация: 7-10-07
Из: Санкт-Петербург
Пользователь №: 31 137



Цитата(Maximm @ May 1 2008, 02:43) *
У меня проблема с компиляцией проектов для STM32F103 - использую Keil MDK v. 3.20 при компиляции примеров от Keil получаю ошибку:

STM32F10x.s: error: A3903U: Argument 'DARMSTM' not permitted for option 'device'.

Подскажите, пожалуйста, что не так сделал.....


Может кому-нибудь пригодится: ошибка была в лиценции к Keil - стояла "RealView MDK Enterprise" - с ней проект не компилировался, сменил на "RealView MDK Professional" и всю заработало....
Даже не понятно почему такая разница в лицензиях...


--------------------
Если работает через раз - значит не работает!
Go to the top of the page
 
+Quote Post
gregory812
сообщение May 9 2008, 08:00
Сообщение #96


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 23-11-06
Из: Odessa
Пользователь №: 22 646



Запустил АЦП на отладочной плате STM3210B-EVAL. Показания плавают в пределах +-5LSB. Выходит, что по точности не больше 10-ти разрядов. Кто испытывал АЦП поделитесь впечателниями.

Сообщение отредактировал gregory812 - May 9 2008, 08:02
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 3 2009, 21:39
Сообщение #97


Любитель
*****

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



Имеется STM32F103RBT6 (на плате от Olimex STM32 P103) и МТ-Линк (версия железа 5.0, серийник 11111117).
Почему-то дебаггер заливает прошивку в контроллер через раз.
То есть соединение всегда проходит на ОК, но вот дальше дебаггер обязательно споткнётся на стирании, или на записи страницы. Выдаётся сообщение о таймауте стирания или записи... 07.gif
Причём если сразу-же повторить попытку - то запись и проверка записи завершаются успешно.

Юзал заливку из под JFlashARM из пакета дров сеггера (версия 4.0), так и из под кейла MDK3.40.
Скорость соединения выставлял от 5 до 200 килогерц - без разницы.

В этом топике тоже пишут про "пляски с бубном" с дебаггером - это что, у всех так?

Причём вот что интересно - до этого юзал этот-же дебаггер с самопальной платой с LM3S601 - ни одной проблемы с дебаггером! Запись, стирание, проверка - быстро и чётко, без запинок.

Может, с железом на олимексовской плате что не так? В смысле, лишний пулл-ап/пулл-даун влепили на жи-таг?
Я просто теряюсь в догадках... wacko.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 4 2009, 22:05
Сообщение #98


Любитель
*****

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



А в STM32 разве нет возможности обращаться к периферийным регистрам через бит-бэнг области?
Что-то в мануале не нашёл упоминаний...
Почему-то показалось, что такая фича есть у всех кортексов, а не только у Stellaris... 05.gif

ЗЫ: А, сорри, нашёл! Уря, я просто перепутал, когда искал - правильно пишется "band", а не "bang"...
Go to the top of the page
 
+Quote Post
cebotor
сообщение Jan 5 2009, 23:25
Сообщение #99


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

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



Цитата(sonycman @ Jan 4 2009, 00:39) *
Почему-то дебаггер заливает прошивку в контроллер через раз.

Год почти полет нормальный. в том числе и на пятой версии j-линка и Мтлинка (дебаггер - ИАР)
а Вы что под дебаггером подразумеваете ?
Пляски были, не отрецаем,- но плясали вокруг GDB сервера и(или) SWD, кажется , а если работать напрямую и не по СВД ,то там все как часы.


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 6 2009, 09:54
Сообщение #100


Любитель
*****

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



Цитата(cebotor @ Jan 6 2009, 03:25) *
Год почти полет нормальный. в том числе и на пятой версии j-линка и Мтлинка (дебаггер - ИАР)
а Вы что под дебаггером подразумеваете ?
Пляски были, не отрецаем,- но плясали вокруг GDB сервера и(или) SWD, кажется , а если работать напрямую и не по СВД ,то там все как часы.

Дебаггер - МТ-Линк smile.gif
Кейл с ним работает через RDI.
Хотя, если пробовать через родную JFlashARM.exe - то запись во флеш тоже через раз. Не знаю, JFlash работает через RDI или напрямую?

Посмотрел по логам - сложилось впечатление, что дело такое:
1. Сначала в оперативу контроллера заливается код "прошивальщика".
2. Потом с ним ведётся многократный обмен данными путём перезаписи регистров и рестарта кода.
Вероятно, здесь идёт стирание нужных страниц флеш.
После окончания обработки данных код стопорит ядро и таким образом даёт знать ожидающему дебаггеру о возможности продолжения "диалога" smile.gif
3. Только теперь ему начинает передаваться код программы для флеш в виде кусков определённой длинны.
4. Считывание флеш и верификация записи.

Зависание происходит на втором этапе. То есть до передачи данных для записи дело не доходит.
Перестаёт отвечать "прошивальщик". Спрашивается - какого хрена?

Было-бы интересно посмотреть, что происходит "внутри" кода загрузчика? На чём он стопорится?
Но как это сделать? Есть где-нибудь его исходники?

По схемотехнике JTAG вроде у Олимекс STM32-P103 всё в порядке - все подтягивающие резисторы на месте.
sad.gif

Думаю, проблема не в МТ-Линк, так как со Stellaris всё работает "как часы" smile.gif
Проблема может быть или в плате Олимекса (что маловероятно, но допустимо), или в коде прошивальщика - неправильная инициализация камня или что-то в этом духе.
Или, что совсем маловероятно - глючный микроконтроллер.
05.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 6 2009, 19:20
Сообщение #101


Любитель
*****

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



В общем нашёл я причину нестабильной записи/стирания флеш памяти контроллера отладчиком МТ-Линк.

Это была строчка кода в моём стартапе, которая, после переключения ядра на PLL, отключала питание внутреннего RC генератора (HSI). Типа за ненадобностью. cool.gif

Выкинул это из кода - загрузка программы в камень попёрла без сучка и задоринки! biggrin.gif

Вот блин. Но ведь отладчик подключается к камню после сброса, когда HSI генератор работает по-умолчанию!? Видимо, на самом деле это не так.

ЗЫ:А пойду-ка я спрошу на форуме сеггера, что за фигня такая с их отладчиками... help.gif
Авось не сразу выгонят с моим клоном laughing.gif

ЗЗЫ: Flash access control register (FLASH_ACR) вообще нужно программировать? Это где задержки для доступа к флеш памяти находятся?
А то камень работает на 48 МГц, а я совсем про этот регистр забыл. Туда ведь в этом случае надо записать 1 (один цикл ожидания)?
Go to the top of the page
 
+Quote Post
cebotor
сообщение Jan 7 2009, 16:24
Сообщение #102


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

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



поздравляю что разобрались!
у меня была похожая проблема после включения WD в первых строках программы оный не позволял залить ни по жтагу ни по SWD ничего во флэш , хотя СВД должен уметь подцепляться !даже! с активным уровнем ресета. после определенного момента (с выходом очередных дров от Сеггера) фича пропала . так что "документированная ошибка - это не ошибка а особенность работы ПО"
Цитата(sonycman @ Jan 6 2009, 22:20) *
ЗЗЫ: Flash access control register (FLASH_ACR) вообще нужно программировать? Это где задержки для доступа к флеш памяти находятся?
А то камень работает на 48 МГц, а я совсем про этот регистр забыл. Туда ведь в этом случае надо записать 1 (один цикл ожидания)?

Надо , в примерах это делается в функции RCC_Configuration кажется - при настройке тактовых частот.
делается через функцию FLASH_SetLatency.
не вижу почему следует поступать по другому


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 7 2009, 16:54
Сообщение #103


Любитель
*****

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



Цитата(cebotor @ Jan 7 2009, 20:24) *
Надо , в примерах это делается в функции RCC_Configuration кажется - при настройке тактовых частот.
делается через функцию FLASH_SetLatency.
не вижу почему следует поступать по другому

Спасибо!
Оказывается, при записи или стирании флеш в STM32 надо, чтобы работал HSI. Об этом как-бы невзначай написано в STM32F10xxx Flash programming manual, но ни черта нет в разделе Reset and clock control (RCC) референсного мануала. Точно документацию у ST пишут какие-то индейцы lol.gif
Весьма невразумительная штука sad.gif

Я не пользуюсь функциями фирменной либы (наверняка они не менее невразумительные, чем их документация). Сам разбираюсь. smile.gif
Заюзал вчера Flash access control register (записал единичку), осциллограмма импульсов (приведённая выше) стала ровной - полупериоды теперь равны друг другу. Ну и частота импульсов упала немного, конечно.
Однако в комнатных условиях этот камень работает на 48 МГц и безо всяких задержек.
Тем не менее тоже не вижу причины насиловать железку smile.gif
Go to the top of the page
 
+Quote Post
cebotor
сообщение Jan 9 2009, 21:07
Сообщение #104


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

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



Цитата(sonycman @ Jan 7 2009, 19:54) *
Спасибо!
Оказывается, при записи или стирании флеш в STM32 надо, чтобы работал HSI. Об этом как-бы невзначай написано в STM32F10xxx Flash programming manual, но ни черта нет в разделе Reset and clock control (RCC) референсного мануала. Точно документацию у ST пишут какие-то индейцы lol.gif
Весьма невразумительная штука sad.gif

Одним глазком увидел Ваш вопрос на форуме СТ. и хотя Вам не ответили (пока) - раз вы разобрались может поясните?

Каким образом пауза в 800 ms между ресетом и выключением HSI не способствует корректной работе , тогда оставленный "на совсем" включенным HSI способствует?
Jlink позже коннектиться к ядру нежели 800 милисекунд после собственноручно выданного ресета ?
Если я что то не правильно понял поясните , если не трудно.
Цитата
Я не пользуюсь функциями фирменной либы (наверняка они не менее невразумительные, чем их документация). Сам разбираюсь. smile.gif

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


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 10 2009, 12:32
Сообщение #105


Любитель
*****

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



Цитата(cebotor @ Jan 10 2009, 01:07) *
Одним глазком увидел Ваш вопрос на форуме СТ. и хотя Вам не ответили (пока) - раз вы разобрались может поясните?

Каким образом пауза в 800 ms между ресетом и выключением HSI не способствует корректной работе , тогда оставленный "на совсем" включенным HSI способствует?
Jlink позже коннектиться к ядру нежели 800 милисекунд после собственноручно выданного ресета ?
Если я что то не правильно понял поясните , если не трудно.

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

Насчёт HSI генератора я и сам не понял, почему так происходит. Поэтому и спросил на других форумах. К сожалению, ответа нет до сих пор...
Дело такое (ещё раз): во время инициализации, после переключения на PLL, я полностью отключал внутренний HSI генератор.
В этом случае МТ-Линк v5.0 под управлением дров сеггера последней версии (и не только последней версии) при попытке записи во флеш выдавал ошибку - таймаут стирания/записи. Это происходит из-за того, что HSI в это время всё ещё выключен, и по каким-то причинам не был включен после коннекта эмулятора.

После ошибки эмулятор автоматически дисконнектится. Если повторить попытку записи - то всё пишется\сверяется без проблем.
НО ТОЛЬКО СО ВТОРОГО РАЗА. И введённая мной задержка в 800 миллисекунд (после сброса и до команды отключения HSI) никакого эффекта не дала.

Это мне тоже не понятно.
В настройках reset strategy установлено hardware, halt after reset (normal). Пробовал как с задержкой (30 ms), так и без.

Ещё что заметил - запускаю JFlashARM.exe. Выбираю из меню ->Connect:
Код
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: 200 kHz (Auto)
- Initializing CPU core (Init sequence) ...
    - Executing Reset (0, 0 ms)
    - Initialized successfully
- JTAG speed: 200 kHz (Auto)
- J-Link found 2 JTAG devices. Core ID: 0x3BA00477 (Cortex-M3)
- Connected successfully

Подключились, ядро остановлено. НО - был ли активен reset? У меня к микроконтроллеру подключен ЖКИ, который (если бы контроллер был сброшен и его пины перешли бы в начальное состояние) тоже бы сбросился и очистился. Однако этого не происходит ohmy.gif

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

Что касается библиотек и документации - почему-же, документация есть и в полном виде - как же reference manual?
Просто написан он не очень доходчиво, по сравнению с другими.
Поэтому вполне можно разобраться с работой периферии по описанию её регистров.
Мне пока что ни разу не пришлось лезть в код библиотеки. laughing.gif
Тем более после прочтения нелестных отзывов про неё на этом форуме...
Go to the top of the page
 
+Quote Post

20 страниц V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:46
Рейтинг@Mail.ru


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