STM32F103C8T6 как прошить ?

Ответить
Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#1

Сообщение Kot » 30.04.2023{, 13:48}

по инструкции залил в неё прошивку по уарту через Flash Loader Demonstrator
втыкаю кабель в неё и даже ком порт не появляется

хотя в диспечере появляется устройство при подключении но толку то от него
2023-04-30_174730.png
2023-04-30_174730.png (3.2 КБ) 949 просмотров

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#2

Сообщение ecoins » 30.04.2023{, 14:00}

Kot писал(а):
30.04.2023{, 13:48}
по инструкции залил в неё прошивку по уарту через Flash Loader Demonstrator
втыкаю кабель в неё и даже ком порт не появляется

хотя в диспечере появляется устройство при подключении но толку то от него
Сожалею, но этот путь устарел. Он был больше ориентирован на ядро от Clark Rogers (STM32-master) - но он перестал его активно поддерживать после того, как пару лет назад фирма STMicroelectronics плотно занялась своим ядром STM32duino.
Мы долгое время поддерживали оба ядра, но в версии библиотеки, которую сейчас готовим, будет поддержка только ядра от STM.
Немного жаль, у STM32-master есть свои преимущества.
В FLProg штатный контроллер STM32F103C поддерживает STM32duino.
----------
Таким образом:
1.Все старые описания по прошивке STM32 в корзину...
2.Основной метод прошивки через программатор ST-Link. Привыкнуть надо, но в целом удобно.
3.На компьютере должна быть установлена программа STM32Programmer.
---------
С уважением, Энвер.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#3

Сообщение Kot » 30.04.2023{, 14:24}

тоесть нужно сделать бинфаил или что то там ?

Отправлено спустя 1 минуту 16 секунд:
а такая пойдёт STM32CubeProg ?

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#4

Сообщение ecoins » 30.04.2023{, 14:34}

Kot писал(а):
30.04.2023{, 14:25}
а такая пойдёт STM32CubeProg ?
Именно такая нужна - в тексте не точно написал.
Файл грузится из Arduino IDE как и из других контроллеров - нужно только выбрать Upload metod:
И если USB (Serial0) будет использоваться - немного с настройками надо поделать...

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#5

Сообщение Kot » 30.04.2023{, 14:44}

и как ей пользоваться ?
2023-04-30_184414.png
Отправлено спустя 6 минут 55 секунд:
в общем она не находит ст линк хотя диспечер показывает его
2023-04-30_185118.png
2023-04-30_185118.png (3.15 КБ) 922 просмотра

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#6

Сообщение ecoins » 30.04.2023{, 15:13}

Kot писал(а):
30.04.2023{, 14:51}
в общем она не находит ст линк хотя диспечер показывает его
Просит обновить софт программатора - справа по центре голубая кнопка Firware upgrade.
Попробуйте, если программатор не очень старый, то обновится.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#7

Сообщение Kot » 30.04.2023{, 15:37}

действительно помогло обновление
у меня получилось поморгать светодиодом

а как выкинуть данные в уарт ?
2023-04-30_193816.png

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#8

Сообщение ecoins » 30.04.2023{, 16:06}

Kot писал(а):
30.04.2023{, 15:37}
а как выкинуть данные в уарт ?
Есть некоторые особенности, если в USB.
В настройках Arduino IDE сделать так:
Снимок экрана 2023-04-30 160321.png
-----
В библиотеках ecoins есть блоки вывода на консоль, плоттер. В новой версии доработан блок вывода в любой UART - сегодня темой выше выложил.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#9

Сообщение Kot » 30.04.2023{, 16:13}

не всё нормально
я после блинка залез в настройки иде и сменил папку скечей на рабочий стол что бы не лазить за ними по темпам
и в общем так делать похоже нельзя пришлось обратно вернуть слово скечбук и всё стало нормально компилить

а в уарт выкинул через а9 а10

в итоге слишком заморочено получается компилиш настороне потом грузиш через програматор потом через другой конвертер считываеш уарт у меня тут паровозик из этих проводов

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#10

Сообщение ecoins » 30.04.2023{, 16:36}

Kot писал(а):
30.04.2023{, 16:13}
в итоге слишком заморочено получается компилиш настороне потом грузиш через програматор потом через другой конвертер считываеш уарт у меня тут паровозик из этих проводов
Как-то сложно Вы объяснили - у меня все просто получается. За пять минут с переделкой проекта в FLProg три раза в STM32F407 грузил тест UART(0-6);

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#11

Сообщение Kot » 30.04.2023{, 16:37}

а как через уарт загружать что бы сразу и считывать без всяких линкозагрузчиков ?
у меня ошибка выскакивает
2023-04-30_202602.png
Отправлено спустя 2 минуты 4 секунды:
сначала в иде делаю экспорт бинфайла
потом цепляю стлинк и гружу туда прошивку
потом подключаю усбконвертер и читаю уарт
вроде всё

на уно было проще нажал загрузить и немучиешся

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#12

Сообщение ecoins » 30.04.2023{, 16:49}

Kot писал(а):
30.04.2023{, 16:39}
сначала в иде делаю экспорт бинфайла
Этого делать не надо. Arduino IDE самостоятельно компилирует и грузит через ST-Link.
Kot писал(а):
30.04.2023{, 16:39}
на уно было проще нажал загрузить и немучиешся
Да, проще. Но это только UNO.... У STM другие возможности.
Ну и дело привычки, преодолимо.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#13

Сообщение Kot » 02.05.2023{, 11:37}

в описании написано что ацп 12 бит
а у меня почемуто на 10 бит
я кидаю аналог на 3,3в мне уарт выводит 1023 ацпшки это как ?

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#14

Сообщение ecoins » 02.05.2023{, 14:07}

Kot писал(а):
02.05.2023{, 11:37}
в описании написано что ацп 12 бит
а у меня почемуто на 10 бит
я кидаю аналог на 3,3в мне уарт выводит 1023 ацпшки это как ?
АЦП 12-разрядный, но настраиваемый. Нужна команда analogWriteResolution(12).
Если пользоваться библиотекой ecoins и блоком ecoins, то там настроено автоматом до системной разрядности, которая по умолчанию=16.
PWM в STM32 16-разрядный, тоже настраиваемый.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#15

Сообщение Kot » 02.05.2023{, 15:25}

видимо автор не в курсе таких манипуляций
я немогу найти у него в коде аналогврайтрезолюшин

Код: Выделить всё

#include "flprogUtilites.h"
bool out_92228919_1;
unsigned long timing_92228919_1;
bool en_220345184_1;
int in_220345184_1;
int out_220345184_1;
byte N_220345184_1;
byte M_220345184_1;
byte S1_220345184_1;
byte S2_220345184_1;
int array_220345184_1[20];
bool en_98796029_1;
int in_98796029_1;
int out_98796029_1;
int temp1_98796029_1;
int temp2_98796029_1;
int temp3_98796029_1;
int temp4_98796029_1;
int temp5_98796029_1;
int temp6_98796029_1;
int temp7_98796029_1;
int temp8_98796029_1;
bool _stou1 = 0;
void setup()
{
    _startUart1();
}
void loop()
{
    //Плата:1
    if (millis() - timing_92228919_1 >= 25) 
    {
        timing_92228919_1 = millis();
        out_92228919_1 = 1;
    }
    else out_92228919_1 = 0;
    en_220345184_1 = out_92228919_1;
    in_220345184_1 =  (analogRead (192));
    // Filtr_median_20
    if (en_220345184_1)
    {
        	array_220345184_1[19] = in_220345184_1;
        	for (N_220345184_1=0; N_220345184_1<20; N_220345184_1++)  // 0 до 19
        	
        {
            		out_220345184_1 = array_220345184_1[N_220345184_1];
            S1_220345184_1 = 0;
            S2_220345184_1 = 0;
            		for (M_220345184_1=0; M_220345184_1<20; M_220345184_1++)  // 0 до 19
            		
            {
                			if (out_220345184_1 < array_220345184_1[M_220345184_1])	
                {
                    S1_220345184_1++;
                    if(S1_220345184_1>10) 
                    {
                        break;
                    }
                }
                			if (out_220345184_1 > array_220345184_1[M_220345184_1])	
                {
                    S2_220345184_1++;
                    if(S2_220345184_1>10) 
                    {
                        break;
                    }
                }
                		
            }
            		if (M_220345184_1>=20) 
            {
                break;
            }
            	
        }
        	for (N_220345184_1=0; N_220345184_1<19; N_220345184_1++) 
        {
            array_220345184_1[N_220345184_1] = array_220345184_1[(N_220345184_1+1)];
        }
    }
    en_98796029_1 = out_92228919_1;
    in_98796029_1 = out_220345184_1;
    // Filtr_wind_int
    if (en_98796029_1)
    {
        	temp8_98796029_1 = temp7_98796029_1;
        	temp7_98796029_1 = temp6_98796029_1;
        	temp6_98796029_1 = temp5_98796029_1;
        	temp5_98796029_1 = temp4_98796029_1;
        	temp4_98796029_1 = temp3_98796029_1;
        	temp3_98796029_1 = temp2_98796029_1;
        	temp2_98796029_1 = temp1_98796029_1;
        	temp1_98796029_1 = in_98796029_1;
        	out_98796029_1 = int ((temp1_98796029_1+temp2_98796029_1+temp3_98796029_1+temp4_98796029_1+temp5_98796029_1+temp6_98796029_1+temp7_98796029_1+temp8_98796029_1) / 8);
    }
    if (out_92228919_1)
    {
        if (!_stou1)
        {
            Serial1.println((out_98796029_1)*(3.23));
            _stou1=1;
        }
    }
     else 
    {
        _stou1=0;
    }
}
void _startUart1()
{
    int code= 6;
    Serial1.begin(9600, (flprog::serialModeFromInt(code)));
}

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#16

Сообщение ecoins » 02.05.2023{, 15:52}

Kot писал(а):
02.05.2023{, 15:25}
видимо автор не в курсе таких манипуляций
я немогу найти у него в коде аналогврайтрезолюшин
Он в курсе, но сейчас идет очень большая работа по разработке системного ядра, которое будет решать вопросы совместимости и адаптации контроллеров различных архитектур.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

STM32F103C8T6 как прошить ?

#17

Сообщение Kot » 02.05.2023{, 16:19}

а сколько у вас каналов получилось одновременно запустить на 16 бит ?
и с какой скоростью опрашиваете канал в этом режиме

ecoins
Полковник
Сообщения: 2926
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

STM32F103C8T6 как прошить ?

#18

Сообщение ecoins » 02.05.2023{, 16:51}

Kot писал(а):
02.05.2023{, 16:19}
а сколько у вас каналов получилось одновременно запустить на 16 бит ?
и с какой скоростью опрашиваете канал в этом режиме
Измерения не проводил, но все PWM STM32 вроде привязаны к одному таймеру.

Отправлено спустя 1 минуту 25 секунд:
Kot писал(а):
02.05.2023{, 16:19}
и с какой скоростью опрашиваете канал в этом режиме
Наверное записываем. Думаю не более 50mcs( предположение).
С уважением, Энвер.

Ответить

Вернуться в «Помогите, а то я "нимагу"»