Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Чт мар 22, 2012 07:48:46
Опытный кот
Карма: 3
Рейтинг сообщений: 43
Зарегистрирован: Вт апр 12, 2011 18:38:19 Сообщений: 838 Откуда: с Земли
Рейтинг сообщения:0
STM32 - это всего лишь первая ступенька для Вас. Рано или поздно "все выростают из штанишек" и нужно покупать новые, по-больше Если Вы собираетесь разрабатывать что-либо на ARM сейчас или в будущем, то лучше обзавестись J-Link, потому что STM32 может скоро не хватить, и тогда Вы посмотрите в сторону TI или Freescale, а там ST-Link уже не поможет. В любом случае решать Вам, но STM32 DISCOVERY - это тупик.
_________________ Все будет только лучше, в крайнем случае - хуже.
Не согласен категорически. Если бы она стоила хотя бы тех денег, что в ней комплектухи - еще можно было бы рассуждать, но их продают почти даром! Имеем программатор - отладчик (пусть пока для STMок), и камень с необходимым обвязом. На первое время, для обучения, более чем достаточно.
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Чт мар 22, 2012 11:04:55
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Но, опять же - дебагер купишь, демоплатку надо еще раздобыть. Любой другой известный мне пример стоит дороже, не несет в себе халявного дебагера и кучки ПРОВЕРЕННЫХ примеров. То, что дают в комплекте большинство неродных производителей отладочных плат (ну кроме какого нибудь крутого и дорогущего эмбедед артистс и подобного) иначе как полный ПЭ обычно назвать нельзя
Если все же решили дискавери, и все же на космодроме, то не за 200 грн. Смотрите. У них цены разнятся на одни и те же позиции: зависит от способа заказа, наличия на складе и т.д. Сейчас эти платы у космодромов доступны на складе за 165 грн. Именно такую и заказывайте, а не с доставкой по воздуху и двухнедельным ожиданием - за 200. ЗЫ. Ай забыл - заказ до 200 грн. - Вы оплачиваете еще 15 грн за услуги курьера по Харькову. =)
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Всем привет. Вчера приобрёл дискавери, посидел в кейле, попробовал разобраться. Прочёл статью Уважаемого Aheir'a (http://radiokot.ru/articles/43/), очень помогло. В процессе копания получилось прошить контроллер прямиком из кейла, по нажатию на Download. Не знаю, может это и не новость уже, но напишу, может кому-то полезно будет. В последней версии, 4.50, для того, чтоб можно было прошить контроллер из среды, в настройках делаем следующее.
1). Открываем меню "Project" - "Options for target ... ", и переходим на вкладку "Debug". В правой части окна отмечаем "Use:", из списка выбираем ST-Link Debugger. Жмём Settings.
2). В открывшемся меню на вкладке Debug выбираем Port = SW, а также справа внизу ставим галочки "Download to Flash" и "Verify Code Download". Жмём ОК и возвращаемся в предыдущее меню.
3). Переходим на вкладку "Utilities", выбираем "Use target driver...", из списка вновь выбираем ST-Link Debugger, и снова жмём Settings.
4). В открывшемся окне проверяем наличие галок "Program" и "Verify". Можно поставить ещё и "Reset and Run", чтоб программа запустилась сразу после прошивки контроллера. В область ниже необходимо добавить прошивочный алгоритм, чтобы кейл не ругался при прошивке. Жмём кнопку "Add", и в появившемся списке выбираем подходящий МК (для STM32F10x есть варианты с разным объёмом памяти, у дискавери её вроде как 128k). Закрываем окно выбора МК, сохраняем настройки.
После этих манипуляций у меня получилось прошить контроллер прямо из среды, описанных в статье проблем не возникло. Помните, что на сайте ST есть дрова для ST-Link (http://www.st.com/internet/evalboard/product/219866.jsp), без них тоже возможны проблемы, но не проверял, т.к. установил их до прошивки.
Ну и напоследок вопрос к тем, кто уже давно работает с дискавери+кейл. Существует ли простой способ инвертирования бита в порте? А то уж больно конструкции в среде мудрёные?
Последний раз редактировалось TripleKill Ср апр 04, 2012 23:29:55, всего редактировалось 2 раз(а).
Не понял вопроса. Я пишу код в кейле, хочу инвертировать бит порта. В инетовских примерах есть вот такой пример установки бита: GPIOC->BSRR=GPIO_BSRR_BS4. Чтобы бит обнулить, надо писать уже GPIOC->BSRR=GPIO_BSRR_BR4. Т.е. я не могу написать нечто вроде GPIOC->BSRR=!GPIO_BSRR_BS4 или как раньше делал в mikroC, !PORTC.F4, чтоб при каждом вызове такой команды состояние бита менялось на противоположное? Другими словами, какой самый простой вариант записи команды инвертирования бита?
Пусть даже будут не кейл и не stm. Пусть будет код, который нормально скомпилируется в кейле. Можете посоветовать какие-нибудь книжки, или сетевые источники, где можно почитать о работе с портами, ну и вообще со стандартными библиотеками?
// Set pin - установка битов порта по маске. Например: spin_m (PORTC,(1<<4)|((1<<5)); // Установить PC4, PC5. #define spin_m(port,mask) (*(port+4)=(mask))
А не проще ли использовать стандартный stm32F10x_gpio.h ?
По аналогии с приведённым Вами "GPIO_SetBits", "GPIO_ToggleBits" не прокатывает. Повторюсь, меня интересует не включение и выключение, а переключение. Включать-выключать ещё вчера научился)
Заголовок сообщения: Re: STM32 новичку в ARM что к чему
Добавлено: Пт мар 30, 2012 05:42:05
Родился
Зарегистрирован: Пн мар 19, 2012 05:52:42 Сообщений: 15
Рейтинг сообщения:0
mvm писал(а):
Активно пользуюсь PIC'ами, хочу разобраться с STM32 естественно с минимальными затратами. Читал разного. Но хочется услышать совета людей, которые прошли через это. Самый простой программатор (может что-то типа пиковского клона существует) или варианты... Не нашел STM32 в протеусе. Мне действительно важны Ваши рекомендации. Заранее спасибо.
В для протеуса и диптрейса недавно выложили на Казус.ру в разделе по стм. (во вложении лежит). Работает с последними версиями этих прог. А программатором-отладчиком вот таким обзавелся http://shop.easyelectronics.ru/index.php?productID=150. В работе не пробовал еще. А насчет того, что протеус игрушки - фигня. Не раз выручал в процессе отладке программ. Нагляднее оно как-то.
TripleKill, насколько я знаю, такой специальной возможности у контроллера GPIO нет. Поэтому менять бит либо через BSRR/BRR, либо через bit-band, либо путем "чтение-модификация-запись"(т.е. чтение IDR, инверсия битов, запись в ODR). В последнем случае надо предпринять все меры предосторожности чтобы не нарушить атомарность этой операции, иначе вы рискуете получить "странные" эффекты если в прерывании тоже производится запись в порт.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения