STM32 F103C8T6

Юрий48
Offline
Зарегистрирован: 19.06.2018

Юрий48 пишет:

Виртуальный COM порт установить удалось. С помощью STM32 ST-LINK Utility загрузил в плату, как вы говорите, загрузчик IDE (generic_boot20_pc13.bin) предварительно поставив Boot 0 в 1. Вернул Boot 0 в 0 и подключил к ПК по USB кабелю. В диспетчере устройств появился maple-dfu. Это не удивило, поскольку рнее драйвер для него мне удалось установить (см. пост 606). Запустил Ардуино, в Uploader metod установил STM32duino bootloader и попробовал залить рабочий скетчь. На этапе загрузки IDE сказала что то про сериал порт и предложила установить драйвер. Средствами Windows в ручную указал папку maple-serial, инсталлер подхватил и произвёл установку и дозалил скетч. Программа заработала адекватно. В диспетчере устройств появился виртуальный COM порт maple-serial. Ранее, без запуска ардуино, на все установочные файлы Windows ругался. Я так понимаю, что что то им без ардуино не хватало. В общем я рад за себя и спасибо всем кто направлял.

Танцы не окончились. Отладил на столе устройство и поставил на объект. По реальным результатам надо изменить программу. Стал подготавливат ноутбук (XP) и опять проблема с драйверами. Делал всё, что и раньше на настольном ПК, но драйвера не встают (видимо совсем дряхлые и давно мясом не кормили). Единственное, что появилось в диспетчере устройств, так это в разделе "Другие устройство" устройство Maple  с жёлтым восклицательным знаком. Чувство отвратное , поскольку понимаю, что подсказать здесь не просто. И всё же, утеште меня чем ни будь, а то совсем мерзко на душе.

b707
Offline
Зарегистрирован: 26.05.2017

раз у вас есть STM32 ST-LINK Utility - то может и фиг с ней, с загрузкой через USB? Грузите через Ст-линк и не мучайтесь.

Юрий48
Offline
Зарегистрирован: 19.06.2018

b707 пишет:

раз у вас есть STM32 ST-LINK Utility - то может и фиг с ней, с загрузкой через USB? Грузите через Ст-линк и не мучайтесь.

Дело в том, что, как раз на случай программной доработки, в устройстве предусмотрел выход USB. А теперь, что бы сделать выход для ST-LINK, так это надо на уши встать. Хотя, когда делал железо, хотел и этот выход предусмотреть, но никак не думал, что будут проблемы с установкой драйверов. А потом, если память совсем не отшибло, там надо и джампером играть. А пока свербит мысль, что же там в наборе совта не хватает, что бы этот самый "wdi-simple.exe" мог нормально раскрутиться. А то "install_drivers.bat" запускается, появляется досовское окно, а затем сообщение, что "wdi-simple.exe" не является приложением win32. Заколдун какой то. Может, я скачиваю необходимое ПО не от туда откуда все скачивают.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Свой пост #610 nосмотрите

Юрий48
Offline
Зарегистрирован: 19.06.2018

ua6em пишет:

Свой пост #610 nосмотрите

С него и начал. См. пост №651

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

и драйвер как в посте #606 не ставится?
 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Попробуйте поставить драйвер без бат файла, а ручками. Будут понятны ошибки.

Юрий48
Offline
Зарегистрирован: 19.06.2018

ua6em пишет:

и драйвер как в посте #606 не ставится?
 

Не ставился. Но в какой то момент с радостью увидел, что появился чистый, без жёлтых вопросов Maple DFU. Зафиксировать момент и действия, вызвавшие нормальную установку  Maple DFU к сожалению не могу, какое то колдовство, а действий всяких было сделано много. Увидел и обрадовался - ну уж сейчас всё пойдёт по маслу - уже проходили. Вставляю USB в ноутбук, в разделе "Другие устройства" появляется устройство  Maple c жёлтым вопросительным знаком. Через некоторое время появляется Мастер нового оборудования, отсылаю его к файлу usb_device.inf, начинается радующая глаз загрузка драйвера. Но через некоторое время это прерывается с сообщением, что "Произошла ошибка при установке устройства" и "Не правильная секция установки службы в этом INF файле". Устройство Maple с жёлтым вопросом появляется в разделе Порты, а в разделе Другие устройства оно пропадает. Но на настольном ПК эта часть прошла же без запинки. Вобщем мыслей ни каких, а это удручает.

Юрий48
Offline
Зарегистрирован: 19.06.2018

Вобщем сдался я, драйвер так и не установил. Обидно всё это. Буду переделывать железо в плане возможности подключения ST-Link. Заодно выведу  контакты Boot, Reset, может быть и светодиод.  В связи с этим вопрос. Что нужно сделать с платой что бы ввести её в режим для программировать через ST-Link?

b707
Offline
Зарегистрирован: 26.05.2017

Юрий48 пишет:

Вобщем сдался я, драйвер так и не установил. Обидно всё это.

я не помню - у вас резистор между PФ12 и 3.3в стоит?

Юрий48
Offline
Зарегистрирован: 19.06.2018

b707 пишет:

я не помню - у вас резистор между PФ12 и 3.3в стоит?

Одной из мер при этих плясках была именно эта.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Юрий48 пишет:

Вобщем сдался я, драйвер так и не установил. Обидно всё это. Буду переделывать железо в плане возможности подключения ST-Link. Заодно выведу  контакты Boot, Reset, может быть и светодиод.  В связи с этим вопрос. Что нужно сделать с платой что бы ввести её в режим для программировать через ST-Link?

Ничего, просто подключть, вы жеж бут заливали )))

Юрий48
Offline
Зарегистрирован: 19.06.2018

Всё сделал как запланировал и программу залил через ардуино IDE. А вот как подглядывать за переменными в этой связке: ардуино IDE, ST-Link. Подскажите, пожалуйста, если это возможно.

ua6em пишет:

Ничего, просто подключть, вы жеж бут заливали )))

Просто подключить у меня не получилось. Получилось когда стёр всю память. Очень даже вероятно, что по не знанию делал что то лишнее.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Юрий48 пишет:

А вот как подглядывать за переменными в этой связке: ардуино IDE, ST-Link. Подскажите, пожалуйста, если это возможно.

В этой связке никак. Т.к. в Arduino IDE не реализован отладчик (debugger). Но такая возможность есть во "взрослых" IDE типа Keil uVision, IAR Embedded Workbench и т.д. Там реализованы точки останова (breakpoints), просмотр содержимого регистров, переменных и т.д.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

После того как в теме "Video на stm32duino"  затронули вопрос работы с обычными GPIO через DMA у меня возник интерес на предмет прикрутить генерацию DDS через dma, нашёл готовый примерчик на форуме stm32duino, немного модифицировал, что-б гнать табличный синус на младшие 8 бит порта "A" через R2R ЦАП.
Скетч:

#include <dma_private.h>
uint8_t wave[256]; //массив синусоиды
void setup() {
RCC_BASE->APB2ENR|= (1<<2);//включить тактирование porta
GPIOA_BASE->CRL = 0x33333333;// pa0-pa7  выход
for(uint16_t n=0; n<256; n++){wave[n]=255*(sin(TWO_PI*float(n)/256)+1)/2 ;}// заполнение таблички синусом
dma_init(DMA1);
dma_setup_transfer(DMA1, DMA_CH1, (uint8_t*)wave, DMA_SIZE_8BITS, (uint8_t*)&GPIOA->regs->ODR, DMA_SIZE_8BITS, DMA_PINC_MODE |  DMA_MEM_2_MEM);

 while(1){
   while (DMA1_BASE->CNDTR1); //ожидать обнуления счётчика декремента
  dma_disable(DMA1, DMA_CH1);//отключить dma для настройки
 dma_set_num_transfers(DMA1, DMA_CH1, 255);
dma_enable(DMA1, DMA_CH1);
  }//end while(1)

}//end setup()

void loop() {}

К великому сожалению в режиме dma  "memory to memory" нельзя зациклить чтение буффера в кольцо, и для того, чтобы бесконечно "проигрывать" буффер  в данном скетче отслеживаю обнуление регистра CNDTR, который делает декремент с пересылкой каждого байта из массива, и как только он обнулится - отключаю dma, записываю заново CNDTR , и включаю dma обратно (без отключения dma этот регистр r/o) . Из-за этой процедуры возникает  микросекундная задержка в генерации, которая заметна на осцилограмме получаемого синуса, соответссно для wave-генераторов эта фича наврядли пригодится, а для других нужд вполне.
В остальном по скетчу я думаю всё понятно, канал можно выбирать любой.

a5021
Offline
Зарегистрирован: 07.07.2013

На али STM32F103RCT6 (голый чип в партии из 5шт) стоит чуть дороже ста рублей. У него на борту 2 ЦАПа. И DMA в них выводит бесшовно всякие кривули из кольцевого буфера.

ssss
Offline
Зарегистрирован: 01.07.2016

Может... не может... Да вы уж разберитесь... что к чему...

andykingsman
Offline
Зарегистрирован: 10.10.2018

Вот здесь все, что нужно (программы, драйвера, инструкции) для начала работы STM32F103C8T6 Arduino IDE:  https://yadi.sk/d/-tVdmQ95Kvjj6w

b707
Offline
Зарегистрирован: 26.05.2017

andykingsman пишет:

Вот здесь все, что нужно (программы, драйвера, инструкции) для начала работы STM32F103C8T6 Arduino IDE:  https://yadi.sk/d/-tVdmQ95Kvjj6w

спасибо, конечно, но вообще-то все необходимое нет никаках проблем найти в официальных источниках, без необходимости лазить по сомнительным ссылкам.

Не знаю, как вы - но я ссылкам Яндекс-диска не доверяю и стараюсь их не открывать.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Ссылки от человека, который первый день на форуме открывать вообще дурной тон :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

dimax пишет:

Ссылки от человека, который первый день на форуме открывать вообще дурной тон :)

"...бойтесь Данайцев дары приносящих..."

Юрий48
Offline
Зарегистрирован: 19.06.2018

dimax пишет:

Ссылки от человека, который первый день на форуме открывать вообще дурной тон :)

Что-то уж больно сурово. Мне, например, как начинающему, очень даже полезно - всё в одном флаконе. Ни кто же на форуме не озадачился собрать всё необходимое в одно место да ещё бы со ссылками на первоисточники. А, вот, слабо знающим вместо поверхностной критики проанализировать предложенную подборку на предмет актуальности. (Обидеть ни кого не хотел).

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Юрий48, ох,   ардуино ide и так всё упрощает, а самостоятельная установка  аддонов и библиотек хоть немножко заставляет людей вникнуть в то, что же он будет потом использовать.  

Densl
Offline
Зарегистрирован: 28.11.2018

Как узнать сколько там реально flash памяти 64k или 128k?

b707
Offline
Зарегистрирован: 26.05.2017

Densl пишет:

Как узнать сколько там реально flash памяти 64k или 128k?

программа FlashLoader, когда прошивает загрузчик для Ардуино - пишет обьем флеша

d5109
Offline
Зарегистрирован: 21.04.2018

Здравствуйте. Имеется плата с st32f103c8t6 (128k). Вопрос такой. Что занимает 10% памяти чипа, если скомпилировать пустой проект? И каким образом можно это исправить? До этого писал на bascom для меги 8, 16, 32, 328. Так там пустой проект занимает 0% для 328 и 1% для 8.

в platformio с поддержкой arduino пустой проект занимает 6,3%

DATA:    [          ]   4.2% (used 852 bytes from 20480 bytes)
PROGRAM: [=         ]   6.3% (used 8252 bytes from 131072 bytes)

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

С\СPP Runtime library

Kost286
Offline
Зарегистрирован: 20.09.2016

Там хранится таблица векторов прерываний. Есть примеры как обойтись без неё, тогда будет весить мало, но функционала не будет, только светодиодиком поморгать в майне

 

Kost286
Offline
Зарегистрирован: 20.09.2016
include "stm32f10x.h"

#define StackTop  ((uint32_t)(0x20000000 + 20*1024))

static void Reset_Handler(void);

__attribute__((used,section(".isr_vector")))
void (*const g_pfnVectors[])(void) =
{
  (void*)StackTop, // Указатель на начало стека.
  Reset_Handler    // Функция выполняемая при сбросе МК.
};

static void Reset_Handler(void)
{
    RCC->APB2ENR = RCC_APB2ENR_IOPCEN; // Вкл. тактирование порта GPIOC.
    GPIOC->CRH = GPIO_CRH_MODE13;      // Настройка вывода PC13 как выхода.

    while(1)
    {
        GPIOC->ODR ^= (1<<13);         // Инвертирование состояния вывода PC13.
        for (uint32_t i=0; i<1000000; i++);
    }
}
Kost286
Offline
Зарегистрирован: 20.09.2016

Собственно это весь код, который выполняется в МК. В массиве g_pfnVectors находится начало таблицы векторов, без которых нельзя обойтись. Это адрес начала стека и адрес функции выполняемой при старте (сбросе) МК. Массив занимает 8 байт прошивки.

Функция Reset_Handler выполняется при старте (сбросе) МК и в ней включается тактирование порта GPIOC, а затем его 13 вывод настраивается на работу выходом. После, в цикле инвертируется выход PC13 к которому подключен светодиод и циклом for создается небольшая пауза чтобы было видно как мигает светодиод.

Этот код скомпилировался в прошивку размером 48 байт.

Код:
Program size (bytes):      48
Data size    (bytes):       0
BSS size     (bytes):       0

Total size   (bytes):      48   (R/W Memory: 0)

 

b707
Offline
Зарегистрирован: 26.05.2017

Kost286 пишет:

Там хранится таблица векторов прерываний.

Мне кажется. вы очень сильно ошибаетесь. Одна только таблица векторов не занимает 8К. Кроме таблицы там еще куча всего.

ssss
Offline
Зарегистрирован: 01.07.2016

Вспомнилось былое нытьё АСМистов... типа "Си отъедает ресурсы зря"... )))))))))))

Да создайте пустой проект в Кейле или ИАРе... и посмотрите... что и на что там отъедается... там лишнего ничего то и нет... по сути... А что там насовывает "platformio" или прочая шняга... это уже к великим "писателям"... этих шняг...

Kost286
Offline
Зарегистрирован: 20.09.2016

И почему 8 кБ . Минимальная пустая прошивка с оптимизацией весит около 1 кБ. Помимо конкретно таблицы может и ещё что-то идёт, но всё равно связанное с ней. Сути дела это не меняет, по примеру видно, что избавляясь от этого код весит очень мало и работает. 

Ivanii
Offline
Зарегистрирован: 11.10.2015
Имею 3 одинаковых платы Blue Pill на STM32F103C8T6, резисторы R10 на 2х поменял на 1,5 КОм, имею проблему - платы не шьются через USB, РАНЬШЕ(из старой среды и со старым загрузчиком) на 1 плату скетчи загружались через USB, в какой-то момент наверно случайно на нее прошил новый бутлоадер и она стала работать как остальные.
 
Что делаю и результат:
Перемычки 00, прошил через ST-LINK "STM32duino-bootloader-master\bootloader_only_binaries\generic_boot20_pc13.bin" - синий диод быстро замигал, по USB находится как "Maple DFU".
Пытаюсь прошить Ардуино скетч "blink" с PC13, плата "Generic STM32F103C series", методом "STM32duino-bootloader", остальное по дефолту - среда отвечает "Загрузка завершена" но светодиод как быстро мигал так и мигает, ничего не прошито, вывод среды:
Изменены опции сборки, пересобираем все
Скетч использует 14356 байт (21%) памяти устройства. Всего доступно 65536 байт.
Глобальные переменные используют 3088 байт (15%) динамической памяти, оставляя 17392 байт для локальных переменных. Максимум: 20480 байт.
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main" timeout waiting for COM3 serial

Пытаюсь прошить тоже самое, методом "STLink" - среда отвечает "Загрузка завершена" светодиод начинает мигать медленно как в скетче.

Бутлоадер явно меняется - плата теперь находится как "Maple Serial", но прошить методом "STM32duino-bootloader" так-же как ранее не получается.

Пробовал Ардуино 1.8.5 и 1.8.9 - работают одинаково.
 
Подскажите пожалуйста где взять правильный бутлоадер, среду и/или как правильно прошить?
 
b707
Offline
Зарегистрирован: 26.05.2017

в момент прошивки бутлоадера перемычки должны стоять 0-1, а после прошивки - 00

Ivanii
Offline
Зарегистрирован: 11.10.2015

Попробовал шить STLink-ом загрузчик с перемычками 10 и 01 - ничего не меняется, перемычки 10 наверно нужны для заливки через сериал А9 А10?

Иногда ломается нормальный бутлоадер - STLink подключается только первые 2 секунды после ресета, у меня вылечилось прошивкой скетча блинк средой Ардуино через STLink с нажатием ресета сразу после компиляции.

Вроде победил - была кривая Ява, снес все старые и поставил новую - заработало но только если бутлоадер "STM32duino-bootloader-master\bootloader_only_binaries\generic_boot20_pc13.bin" записать STLink-ом родной утилитой и потом писать скетчи по USB, если прошить STLink-ом из Ардуино то загрузка через USB перестает работать.

b707
Offline
Зарегистрирован: 26.05.2017

Ivanii пишет:

если прошить STLink-ом из Ардуино то загрузка через USB перестает работать.

естесственно! Писать через загрузчик можно только по USB. Как только вы что-то заливаете ST-link-ом - загрузчик затирается и его надо заново восстанавливать.

Ivanii
Offline
Зарегистрирован: 11.10.2015

Загрузчик не затирается, а заменяется Ардуино на другой содержащий только "Maple Serial", загрузчик "STM32duino-bootloader-master\bootloader_only_binaries\generic_boot20_pc13.bin" после старта на 2 секунды активирует "Maple DFU", если есть что грузить то грузит новую прошивку, если нет то активирует "Maple Serial" и запускает прошивку во флеше.

Kost286
Offline
Зарегистрирован: 20.09.2016

Вообще-то St-link-ом можно прошивать как угодно, хочешь затирай загрузчик ваш ардуиновский, хочешь не затирай. Нужно только знать его размер. Соответственно в настройках нужно указать с какого места стирать и с тогоже места будет записывать. По умолчания стоит 0x08000000. А будет к прмиеру 0x080002AF. Это так, как пример, нужно знать именно размер загрузчика.

BOOT0 и BOOT1 при  прошивки st-link - ом по нулям, ничего переключать не нужно

Kost286
Offline
Зарегистрирован: 20.09.2016

вот размеры. 2 варианта там

Jump locations for legacy bootloader (0x8005000) and new / smaller bootloder (0x8002000)

Ivanii
Offline
Зарегистрирован: 11.10.2015

Не естественно, одна среда Ардуино, программаторы USBasp и STLink разные но выполняемые в Ардуино функции одинаковые, при прошивке USBasp-ом плат на АТмегах загрузка через USB продолжает работать, при такой-же прошивке STLink-ом платы на STM32 загрузка через USB больше не работает...

Вообще конечно класно, у СТМ32 шустрая математика, большая и быстрая переферия, но реальных задач где СТМ32 лучше АТмег я не вижу...

 

b707
Offline
Зарегистрирован: 26.05.2017

Ivanii пишет:

при прошивке USBasp-ом плат на АТмегах загрузка через USB продолжает работать

вранье.  То есть, простите, я хотел сказать - Вы что-то путаете. Причем опять заявляете это с такой же уверенностью, как до того писали про СТМ. хотя теперь видно, что ошибались. Так вот и насчет АВР вы тоже не правы.  По умолчанию при прошивке программатором загрузчик на АТМегах стирается. То есть, конечно, вы можете настроить ИДЕ так, чтоб каждый раз вместе с кодом шить и загрузчик, но стандартно так, как я написал выше.

 

Ivanii пишет:

Вообще конечно класно, у СТМ32 шустрая математика, большая и быстрая переферия, но реальных задач где СТМ32 лучше АТмег я не вижу...

у блюпилл в 10 раз больше памяти, чем у Нано, больше портов и более мощная периферия. Так что при одинаковой цене я, наоборот, не вижу ни одного преимущества АТМег перед СТМ32.

Ivanii
Offline
Зарегистрирован: 11.10.2015
Я ничего не настраивал в среде, для новой 328Р, 128 или 2560 один раз пишем загрузчик средой через USBasp и дальше можем средой писать чарез USBasp или стандартно скетчи, загрузчик не слетает, без записи загрузчика скетчи никак не работают.
 
Я не о мощности а о применени на практике - на каждый аналоговый канал СТМ32 нужно по операционнику, при правильной планировке программы быстродействия АТмеги хватает с диким запасом и забьть кодом 32К тоже мало реально.
nik182
Offline
Зарегистрирован: 04.05.2015

Ну да.  Регулятор шестифазного тиристорного выпрямителя с ПИД стабилизацией выходного напряжения и меню управления, контролем исправности тирристоров, индикацией режимов и прочими плюшками как то у меня на avr не получилось. На блюпиле даже без операционников на аналоговых входах всё работает. Из обвеса только датчик пересечения нуля и привод тирристоров на оптосиммисторах. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ivanii пишет:
Я не о мощности а о применени на практике - на каждый аналоговый канал СТМ32 нужно по операционнику,

Это с каких пор?
Цитата:
при правильной планировке программы быстродействия АТмеги хватает с диким запасом
Ну да: 112 мкс на один акт оцифровки, конечено, с большим запасом, чтобы цифровать звук в 48к СТЕРЕО...
Цитата:
и забьть кодом 32К тоже мало реально.

Что Вы говорите!

Сэр, навереное, ничего сложнее блинка не видел?

 

PS. Мне кажется, если бы с самого начала Ардуина развивалась на STM32, сейчас проблем было бы намного меньше:

- не потребовалось бы согласования по уровням с периферией, которая почти вся работает на 3.3В,

- возможно было бы обойтись меньшим числом различных контроллеров,

- возможно было бы провести гораздо более глубокую унификацию софта,

- ну и ресурсы...

Ivanii
Offline
Зарегистрирован: 11.10.2015

nik182 пишет:
Регулятор шестифазного тиристорного выпрямителя с ПИД стабилизацией выходного напряжения и меню управления, контролем исправности тирристоров, индикацией режимов и прочими плюшками...На блюпиле даже без операционников на аналоговых входах всё работает
Гвозди микроскопом, а вместо микроскопа стеклышко...

У дешевых СТМ32 в основном АЦП с приличным постоянным(0,5 В на 100 КОм для STM32F103) и небольшим но вполне заметным ИМПУЛЬСНЫМ(внутри только 5 пФ но для сопротивления источника 100 КОм время заряда до точности 0,1% будет 3,5 мкс) током на аналоговых ВХОДАХ и не забываем к этому добавлять обычную(Typ Total unadjusted error = 3 LSB) ошибку самого АЦП.

В среде Ардуино на ATmega328P получается более 12 000 измерений в секунду, мне пока для хим/физ оборудования и света хватает с диким запасом, обрабатывать звук никто в здравом уме не станет ни на ATmega328P ни на STM32F103C.

32 КБ флеша это гдето 3000 - 8000 строк СВОЕГО кода, если не пихать мусор в скетч.

Для меня блинк на СТМ32 вообще стал откровением:

ATmega328P как UNO "Скетч использует 930 байт (2%) памяти устройства. Глобальные переменные используют 9 байт"

STM32F103C8T6 как STM32F103C "Скетч использует 14356 байт (21%) памяти устройства. Глобальные переменные используют 3088 байт (15%) динамической памяти" что!? 14 КБ флеша и 3 КБ оперативки!!!

Меня пока устраивают(работают без ошибок) согласователи из 1-2х резисторов, а вот в схемах на STM32 согласователи на микросхемах вижу постоянно.

Я не имею ничего против СТМ32, но только там, где его применение оправдано.

Думаю дальше спорить безсмысленно.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Ivanii пишет:

Я ничего не настраивал в среде, для новой 328Р, 128 или 2560 один раз пишем загрузчик средой через USBasp и дальше можем средой писать чарез USBasp или стандартно скетчи, загрузчик не слетает, без записи загрузчика скетчи никак не работают.
 
 
1) После прошивки скетча через программатор загрузчик точно стирается. Скетчи через USB после этого загружаться не будут.
 
2) Без записи загрузчика скетчи отлично работают, если предварительно прошить фьюзы. Просто вместе с загрузчиком IDE прошивает и фьюзы. Но это можно сделать самостоятельно, без прошивки загрузчика.
 
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ivanii пишет:

nik182 пишет:
Регулятор шестифазного тиристорного выпрямителя с ПИД стабилизацией выходного напряжения и меню управления, контролем исправности тирристоров, индикацией режимов и прочими плюшками...На блюпиле даже без операционников на аналоговых входах всё работает
Гвозди микроскопом, а вместо микроскопа стеклышко...

У дешевых СТМ32 в основном АЦП с приличным постоянным(0,5 В на 100 КОм для STM32F103) и небольшим но вполне заметным ИМПУЛЬСНЫМ(внутри только 5 пФ но для сопротивления источника 100 КОм время заряда до точности 0,1% будет 3,5 мкс) током на аналоговых ВХОДАХ и не забываем к этому добавлять обычную(Typ Total unadjusted error = 3 LSB) ошибку самого АЦП.

В среде Ардуино на ATmega328P получается более 12 000 измерений в секунду, мне пока для хим/физ оборудования и света хватает с диким запасом, обрабатывать звук никто в здравом уме не станет ни на ATmega328P ни на STM32F103C.

32 КБ флеша это гдето 3000 - 8000 строк СВОЕГО кода, если не пихать мусор в скетч.

Для меня блинк на СТМ32 вообще стал откровением:

ATmega328P как UNO "Скетч использует 930 байт (2%) памяти устройства. Глобальные переменные используют 9 байт"

STM32F103C8T6 как STM32F103C "Скетч использует 14356 байт (21%) памяти устройства. Глобальные переменные используют 3088 байт (15%) динамической памяти" что!? 14 КБ флеша и 3 КБ оперативки!!!

Меня пока устраивают(работают без ошибок) согласователи из 1-2х резисторов, а вот в схемах на STM32 согласователи на микросхемах вижу постоянно.

Я не имею ничего против СТМ32, но только там, где его применение оправдано.

Думаю дальше спорить безсмысленно.

 

А ты, вапще, в теме?  Или в паралельной лиарьности? 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ivanii пишет:

Я ничего не настраивал в среде, для новой 328Р, 128 или 2560
один раз пишем загрузчик средой
через USBasp и дальше можем средой писать чарез USBasp или стандартно скетчи,
загрузчик не слетает,
без записи загрузчика скетчи никак не работают.

О как! "А ты говоришь: "Зачем багор?". (с)

Тут же каждая фраза - перл! Я их даже строками выделил!

----------

И вот это чудо тоже "мнение имеет"... Не, я конечно за демократию и плюрализьмус,  но разве можно такое оставлять в ветках? И Их же дети (!!! ;) ) читать будут и сошлюстя потом, что "вот у некоего Ивании, после записи через ISCP загрузчик не затирается!" и будут пюлюваться в стиле "вывсёврётии!".

nik182
Offline
Зарегистрирован: 04.05.2015

Гвоздь, микроскоп... Вот скажи мне как на AVR обеспечить отсутствие джитера в управляющих сигналах? На STM я задал приоритеты прерываний и шестифазные управляющие сигналы генерятся без каких либо задержек. И при этом по MODBUS в режиме реального времени гонит в компьютер осцилограммы тока и напряжения, а так же каждый период сети считает RMS напряжения для ПИД. 400 точек, 3 фазы расчёт занимает 0.8 мс. На AVR даже памяти не хватит такие массивы держать. Молчу про время расчёта. 

АЦП имеет регулировку времени заряда конденсатора УВХ. Выбирай правильно и можешь под своё выходное сопротивление подстроить без всяких операционников. У AVR при выходном сопротивлении источника сигнала больше 10 кОм надо ставить операционник.