Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 10:39:53

Мурик, а какая для STlink управляющая программа? Я не разработчик и мне надо просто время от времени прошивать эти камни...

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 10:44:58

STM32 ST-LINK Utility

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 11:01:09

Понятно. А у J-Link утилита таже?

Добавлено after 14 minutes 31 second:
В общем отменил покупку и решил взять ST Link, чтоб проблем поменьше было...

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 11:18:57

atmicandr писал(а):А у J-Link утилита таже?
Нет. ST-Link и J-Link производят разные компании, STMicroelectronics и SEGGER соответственно.
Утилиты для J-Link https://www.segger.com/downloads/jlink/ среди которых можно найти ST-Link Reflash Utility позволяющую перепрошить ST-Link в J-Link.

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 11:30:14

Мурик, спасибо! Скажите, а для чего вообще делают перепрошивку в J-Link? Для увеличения функционала чтоб шить не только ST?

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 13:17:45

atmicandr писал(а):а для чего вообще делают перепрошивку в J-Link?
Например если собираетесь использовать IDE Segger Embedded Studio или отладчик Ozone, кторые кроме как с J-Link ни с чем другим работать не могут. Оно и понятно - Segger продвигает свою разработку - J-Link.
В остальных случаях, для STM8 и STM32 лучше ST-Link - отладчик от производителя этих МК.

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 14:01:32

Утилиты для J-Link https://www.segger.com/downloads/jlink/ среди которых можно найти ST-Link Reflash Utility позволяющую перепрошить ST-Link в J-Link.

Китайские за 2.50 тоже можно или только оригиналы?
Обратная процедура возможна?

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 14:56:51

Китайские тоже можно https://adelectronics.ru/2016/11/20/про ... -в-j-link/
Обратно J-Link перепрошивается в ST-Link той же утилитой.

Re: STM32 новичку в ARM что к чему

Ср июн 21, 2017 15:43:02

Segger продвигает свою разработку - J-Link.

Segger продвигает свой СОФТ. А J-Link является КЛЮЧОМ к этому софту.
Поэтому он стоит как самолет, при себестоимости в две копейки.
Оплата оригинального J-Link по сути есть покупка лицензии на среду, скоп и прочие полезные шняги Сеггера.

Re: STM32 новичку в ARM что к чему

Пт июн 23, 2017 18:09:36

Здравствуйте! Пытаюсь обойтись без библиотеки HAL, переписал функцию инициализации SPI на STM32F103C8T6, среда Keil V5.
Код:
/* Функция инициализации 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);

}
Переписал на CMSIS
Код:
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
}
Не работает. Не пойму, что не так?

Re: STM32 новичку в ARM что к чему

Пн июн 26, 2017 16:44:59

Я думал, что с портами мне все ясно, а оказалось, что с подтяжками на входе засада.
В RM написано, что в случае конфигурации порта как Input with pull-up/pull-down подтяжки up и down выбираются соответственно записью 1 или 0 в некий регистр PxODR. Смешно, но регистр этот я не нашел.
Экспериментальным методом автодополнения вышел на GPIOA->ODR |= GPIO_ODR_ODR6, output data register. Но ведь его используют для "словесного" доступа к порту выхода и его двоякой функции ничего не написано.
Это он или облом-с?

Re: STM32 новичку в ARM что к чему

Пн июн 26, 2017 17:59:33

Zhuk72 писал(а):некий регистр PxODR
Это и есть ODR.

Re: STM32 новичку в ARM что к чему

Сб июл 01, 2017 20:57:52

Скажите, как правильно отключить SWD у STM32F030 чтобы использовать ногу SWCLK для мигания диодом?
Для этого достаточно в MODER записать 01 вместо 10? Или надо еще что-то делать?

Re: STM32 новичку в ARM что к чему

Сб июл 01, 2017 21:54:17

ну подтяжку можно еще отключить
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 что к чему

Вс июл 02, 2017 14:48:21

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

Re: STM32 новичку в ARM что к чему

Вс июл 02, 2017 15:11:52

aam писал(а):ST-Link такой
У него нет выхода Reset.

Re: STM32 новичку в ARM что к чему

Пн июл 03, 2017 09:49:20

Уверены?
На корпусе написано - 1-я нога - RST.

Re: STM32 новичку в ARM что к чему

Пн июл 03, 2017 11:38:08

aam писал(а):На корпусе написано - 1-я нога - RST.
Попробуйте его использовать для сброса STM32. Расскажите что получится.

ST-Link шьет не только STM32, но и STM8...

Re: STM32 новичку в ARM что к чему

Пн июл 03, 2017 13:17:47

По идее, в самом крайнем случае можно стереть прошивку бутлоадером (UART у меня задействован в устройстве). А после зашивать и отлаживать очищенный таким образом МК Debug-версией прошивки уже по SWD.
Спрашиваю на всякий случай прежде чем пробовать, т. к. нехочется потом поиметь геморой на ровном месте или сломать проц.

Кстати, в ИАРе вроде галочку надо какую-то ставить, чтобы МК ресетился от программатора...

Re: STM32 новичку в ARM что к чему

Пн июл 03, 2017 18:09:47

можно продолжать и по SWD, только надо ресет организовать - приклеить кнопочку, пинцет тоже подойдет :). Да в ST-Link Utility в настройках Mode -> Connect Under Reset
Ответить