STM32 новичку в ARM что к чему
- atmicandr
- Друг Кота
- Сообщения: 6166
- Зарегистрирован: Вт мар 09, 2010 09:29:27
- Откуда: Свердловская область, г. Ирбит
Re: STM32 новичку в ARM что к чему
Мурик, а какая для STlink управляющая программа? Я не разработчик и мне надо просто время от времени прошивать эти камни...
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- atmicandr
- Друг Кота
- Сообщения: 6166
- Зарегистрирован: Вт мар 09, 2010 09:29:27
- Откуда: Свердловская область, г. Ирбит
Re: STM32 новичку в ARM что к чему
Понятно. А у J-Link утилита таже?
Добавлено after 14 minutes 31 second:
В общем отменил покупку и решил взять ST Link, чтоб проблем поменьше было...
Добавлено after 14 minutes 31 second:
В общем отменил покупку и решил взять ST Link, чтоб проблем поменьше было...
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
Re: STM32 новичку в ARM что к чему
Нет. ST-Link и J-Link производят разные компании, STMicroelectronics и SEGGER соответственно.atmicandr писал(а):А у J-Link утилита таже?
Утилиты для J-Link https://www.segger.com/downloads/jlink/ среди которых можно найти ST-Link Reflash Utility позволяющую перепрошить ST-Link в J-Link.
- atmicandr
- Друг Кота
- Сообщения: 6166
- Зарегистрирован: Вт мар 09, 2010 09:29:27
- Откуда: Свердловская область, г. Ирбит
Re: STM32 новичку в ARM что к чему
Мурик, спасибо! Скажите, а для чего вообще делают перепрошивку в J-Link? Для увеличения функционала чтоб шить не только ST?
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
Re: STM32 новичку в ARM что к чему
Например если собираетесь использовать IDE Segger Embedded Studio или отладчик Ozone, кторые кроме как с J-Link ни с чем другим работать не могут. Оно и понятно - Segger продвигает свою разработку - J-Link.atmicandr писал(а):а для чего вообще делают перепрошивку в J-Link?
В остальных случаях, для STM8 и STM32 лучше ST-Link - отладчик от производителя этих МК.
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[uquote="Мурик",url="/forum/viewtopic.php?p=3130338#p3130338"]Утилиты для J-Link https://www.segger.com/downloads/jlink/ среди которых можно найти ST-Link Reflash Utility позволяющую перепрошить ST-Link в J-Link.[/uquote]
Китайские за 2.50 тоже можно или только оригиналы?
Обратная процедура возможна?
Китайские за 2.50 тоже можно или только оригиналы?
Обратная процедура возможна?
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: STM32 новичку в ARM что к чему
Китайские тоже можно https://adelectronics.ru/2016/11/20/про ... -в-j-link/
Обратно J-Link перепрошивается в ST-Link той же утилитой.
Обратно J-Link перепрошивается в ST-Link той же утилитой.
- КРАМ
- Друг Кота
- Сообщения: 25177
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="Мурик",url="/forum/viewtopic.php?p=3130406#p3130406"]Segger продвигает свою разработку - J-Link.[/uquote]
Segger продвигает свой СОФТ. А J-Link является КЛЮЧОМ к этому софту.
Поэтому он стоит как самолет, при себестоимости в две копейки.
Оплата оригинального J-Link по сути есть покупка лицензии на среду, скоп и прочие полезные шняги Сеггера.
Segger продвигает свой СОФТ. А J-Link является КЛЮЧОМ к этому софту.
Поэтому он стоит как самолет, при себестоимости в две копейки.
Оплата оригинального J-Link по сути есть покупка лицензии на среду, скоп и прочие полезные шняги Сеггера.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: STM32 новичку в ARM что к чему
Здравствуйте! Пытаюсь обойтись без библиотеки HAL, переписал функцию инициализации SPI на STM32F103C8T6, среда Keil V5. Переписал на CMSIS Не работает. Не пойму, что не так?
Код: Выделить всё
/* Функция инициализации SPI1 */
void MX_SPI1_Init(void)
{
//SPI1->CR2 = 0x0000; // Очистить второй управляющий регистр
//SPI1->CR1 = 0x0000; // Очистить первый управляющий регистр
hspi1.Instance = SPI1; //выбор модуля SPI (SPI1, SPI2)
hspi1.Init.NSS = SPI_NSS_SOFT; //SPI1->CR1 |= SPI_CR1_SSM; //Программный режим NSS
hspi1.Init.Mode = SPI_MODE_MASTER; //SPI1->CR1 |= (SPI_CR1_MSTR | SPI_CR1_SSI); //Режим Master
hspi1.Init.Direction = SPI_DIRECTION_2LINES; //SPI1->CR1 &= ~SPI_CR1_BIDIMODE; //2-х проводной режим
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; //SPI1->CR1 &= ~SPI_CR1_DFF; //8 бит данных
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; //SPI1->CR1 &= ~SPI_CR1_CPOL; //Полярность тактового сигнала CPOL = 0;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; //SPI1->CR1 &= ~SPI_CR1_CPHA; //Фаза тактового сигнала CPHA = 0;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; //SPI1->CR1 &= ~SPI_CR1_BR; //Baud rate = Fpclk/2
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; //SPI1->CR1 &= ~SPI_CR1_LSBFIRST; //MSB передается первым
hspi1.Init.TIMode = SPI_TIMODE_DISABLED;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED; //SPI1->CR1 &= ~SPI_CR1_CRCEN; //расчёт контрольной суммы выключен
hspi1.Init.CRCPolynomial = 10; //SPI1->CRCPR = 10; // Полином для вычисления CRC
HAL_SPI_Init(&hspi1);
}Код: Выделить всё
void MX_SPI1_Init(void)
{
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; //включить тактирование альтернативных функций
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //включить тактирование порта А
RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //подать тактирование
// PA5 ------> SPI1_SCK
// PA7 ------> SPI1_MOSI
GPIOA->CRL |= GPIO_CRL_MODE5 | GPIO_CRL_MODE7; //Выход 50МГц
GPIOA->CRL &= ~(GPIO_CRL_CNF5 | GPIO_CRL_CNF7); //Очищаем разряды CNF
GPIOA->CRL |= GPIO_CRL_CNF5_1 | GPIO_CRL_CNF7_1; //Двухтактный выход с альтернативной функцией
SPI1->CR1 &= ~SPI_CR1_SPE;
SPI1->CR1 = 0x0000; // Очистить первый управляющий регистр
SPI1->CR2 = 0x0000; // Очистить второй управляющий регистр
SPI1->CR1 |= SPI_CR1_MSTR; //Режим Master
SPI1->CR1 &= ~SPI_CR1_BIDIMODE; //2-х проводной режим
SPI1->CR1 &= ~SPI_CR1_DFF; //8 бит данных
SPI1->CR1 &= ~SPI_CR1_CPOL; //Полярность тактового сигнала CPOL = 0;
SPI1->CR1 &= ~SPI_CR1_CPHA; //Фаза тактового сигнала CPHA = 0;
SPI1->CR1 |= SPI_CR1_SSI;
SPI1->CR1 |= SPI_CR1_SSM; //Программный режим NSS
SPI2->CR1 &= ~(SPI_CR1_BR_1 | SPI_CR1_BR_0 | SPI_CR1_BR_2); //настройка делителя
//SPI1->CR1 &= ~SPI_CR1_BR; //Baud rate = Fpclk/2
SPI1->CR1 &= ~SPI_CR1_LSBFIRST; //MSB передается первым
SPI1->CR1 &= ~SPI_CR1_CRCEN; //расчёт контрольной суммы выключен
SPI1->CRCPR = 10; // Полином для вычисления CRC
//SPI1->CR2 |= SPI_CR2_SSOE; //Вывод NSS - выход управления slave select
SPI1->I2SCFGR &= ~SPI_I2SCFGR_I2SMOD; // Clear I2SMOD bit - SPI mode
SPI1->CR1 |= SPI_CR1_SPE; //разрешить работу модуля SPI
}- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Я думал, что с портами мне все ясно, а оказалось, что с подтяжками на входе засада.
В RM написано, что в случае конфигурации порта как Input with pull-up/pull-down подтяжки up и down выбираются соответственно записью 1 или 0 в некий регистр PxODR. Смешно, но регистр этот я не нашел.
Экспериментальным методом автодополнения вышел на GPIOA->ODR |= GPIO_ODR_ODR6, output data register. Но ведь его используют для "словесного" доступа к порту выхода и его двоякой функции ничего не написано.
Это он или облом-с?
В RM написано, что в случае конфигурации порта как Input with pull-up/pull-down подтяжки up и down выбираются соответственно записью 1 или 0 в некий регистр PxODR. Смешно, но регистр этот я не нашел.
Экспериментальным методом автодополнения вышел на GPIOA->ODR |= GPIO_ODR_ODR6, output data register. Но ведь его используют для "словесного" доступа к порту выхода и его двоякой функции ничего не написано.
Это он или облом-с?
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: STM32 новичку в ARM что к чему
Это и есть ODR.Zhuk72 писал(а):некий регистр PxODR
Re: STM32 новичку в ARM что к чему
Скажите, как правильно отключить SWD у STM32F030 чтобы использовать ногу SWCLK для мигания диодом?
Для этого достаточно в MODER записать 01 вместо 10? Или надо еще что-то делать?
Для этого достаточно в MODER записать 01 вместо 10? Или надо еще что-то делать?
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
ну подтяжку можно еще отключить
After reset, these pins are configured as SWDIO and SWCLK alternate functions, and the internal pull-up on SWDIO pin
and internal pull-down on SWCLK pin are activated.
Re: STM32 новичку в ARM что к чему
И это всё?
Т. е. просто настроить этот вывод на равне с остальными?
Я думал, надо еще сам модуль SW-DP отключать или еще что-то делать в определенном порядке. В примерах на SPL какие-то SWD_Disable фигурируют. Но я пишу чисто на регистрах по даташиту.
Да, и достаточно ли будет вывести RESET, подтянутый к плюсу, на разъем SWD для того, чтобы при необходимости можно было воспользоваться ST-Link'ом для отладки прямо в изделии? Его не перегрузит цепочка из резистора и светодиода на землю на ноге SW CLK?
ST-Link такой:

Я думал, надо еще сам модуль SW-DP отключать или еще что-то делать в определенном порядке. В примерах на SPL какие-то SWD_Disable фигурируют. Но я пишу чисто на регистрах по даташиту.
Да, и достаточно ли будет вывести RESET, подтянутый к плюсу, на разъем SWD для того, чтобы при необходимости можно было воспользоваться ST-Link'ом для отладки прямо в изделии? Его не перегрузит цепочка из резистора и светодиода на землю на ноге SW CLK?
ST-Link такой:

Re: STM32 новичку в ARM что к чему
У него нет выхода Reset.aam писал(а):ST-Link такой
Re: STM32 новичку в ARM что к чему
Уверены?
На корпусе написано - 1-я нога - RST.
На корпусе написано - 1-я нога - RST.
Re: STM32 новичку в ARM что к чему
Попробуйте его использовать для сброса STM32. Расскажите что получится.aam писал(а):На корпусе написано - 1-я нога - RST.
ST-Link шьет не только STM32, но и STM8...
Re: STM32 новичку в ARM что к чему
По идее, в самом крайнем случае можно стереть прошивку бутлоадером (UART у меня задействован в устройстве). А после зашивать и отлаживать очищенный таким образом МК Debug-версией прошивки уже по SWD.
Спрашиваю на всякий случай прежде чем пробовать, т. к. нехочется потом поиметь геморой на ровном месте или сломать проц.
Кстати, в ИАРе вроде галочку надо какую-то ставить, чтобы МК ресетился от программатора...
Спрашиваю на всякий случай прежде чем пробовать, т. к. нехочется потом поиметь геморой на ровном месте или сломать проц.
Кстати, в ИАРе вроде галочку надо какую-то ставить, чтобы МК ресетился от программатора...
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: STM32 новичку в ARM что к чему
можно продолжать и по SWD, только надо ресет организовать - приклеить кнопочку, пинцет тоже подойдет
. Да в ST-Link Utility в настройках Mode -> Connect Under Reset
