STM32F103 & Arduino IDE

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

Полно библиотек для дисплеев под стм32. Самая крутая mcufriend -только одна эта либа поддерживает дисплеев тридцать минимум

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

ua6em пишет:

я что за UTFT вцепился, там поддержка большого количества контроллеров, лёгкость перехода на экран иного размера

Для меня такая аргументация непонятна:  в каждом конкретном проекте мы используем (обычно) один конкретный контроллер и экран фиксированного размера.

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

andriano пишет:

ua6em пишет:

я что за UTFT вцепился, там поддержка большого количества контроллеров, лёгкость перехода на экран иного размера

Для меня такая аргументация непонятна:  в каждом конкретном проекте мы используем (обычно) один конкретный контроллер и экран фиксированного размера.

экраны будут от 0,96 до 3.2 в том то и дело, хотелось код адаптировать минимально

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

ua6em пишет:

экраны будут от 0,96 до 3.2 в том то и дело, хотелось код адаптировать минимально

ua6em, тут основная "адаптация" будет не к размеру экрана, а к глубине цвета.

При этом слово "адаптация" я не зря взял в кавычки - тут просто разные подходы к формированию изображения, а потому "адаптация" может быть реализована лишь путем чудовищного перерасхода ресурсов, которых у МК и так мало.

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

andriano пишет:

ua6em пишет:

экраны будут от 0,96 до 3.2 в том то и дело, хотелось код адаптировать минимально

ua6em, тут основная "адаптация" будет не к размеру экрана, а к глубине цвета.

При этом слово "адаптация" я не зря взял в кавычки - тут просто разные подходы к формированию изображения, а потому "адаптация" может быть реализована лишь путем чудовищного перерасхода ресурсов, которых у МК и так мало.

цвета там вообще некритичны, главное, чтобы они были как данность, классика, не более 3-х цветов на экране, контрастных

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

ua6em пишет:

цвета там вообще некритичны, главное, чтобы они были как данность, классика, не более 3-х цветов на экране, контрастных

Вы рассуждаете с точки зрения пользователя, а не программиста.

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

Добавил в "старое ядро от Кларка" конфиг для "старшего" блекпила F411CE (512к флеш, 128к RAM) -  для начала просто редактированием конфига от младшего F401CC. Вроде компилируется и работает. Во всяком случае мои любимые скетчики для светодиодных матриц отрабатывают без ошибок.

Единственное только - не смог запустить на частоте 100Мгц.  Причем похоже дело не в плате, а в аддоне. Нашел в коде туманное замечание, что частота ядра должна быть кратна 48, 24 или 12 МГц. Пришлось поставить 96 Мгц - на такой частоте работает без проблем.

Ссылка на репо https://github.com/board707/Arduino_STM32/tree/blackpill_F411

 

И да, как уже писал для F401 - надо править конфиг линкера, иначе динамическое выделение памяти завешивает контроллер. Похоже это баг в аддоне. Выше в своем форке этот момент тоже поправил.

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

b707 пишет:

Единственное только - не смог запустить на частоте 100Мгц.  Причем похоже дело не в плате, а в аддоне. Нашел в коде туманное замечание, что частота ядра должна быть кратна 48, 24 или 12 МГц. Пришлось поставить 96 Мгц - на такой частоте работает без проблем.

Отрыжка пресловутой универсальности... Это ряд частот для правильной работы USB... привязка по сути... даже если это и нафик не нужно...

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

продолжу про аддон Кларка, старый как г... мамонта...

Попробовал поиграться с платками F103C6 - урезанными версиями блюпила, они сейчас на Али стоят в 3 раза дешевле обычной Нано.

Изложу свои некоторые (впрочем вполне очевидные) соображения, если кто захочет использовать С6 с аддоном Кларка.

1. Стоит сразу отказаться от USB-бутлоадера, так как бутлоадер Кларка непомерно большой и отжирает от флеша 8к. А у С6 всего 32к... Прошивать через программатор - Стлинк, Jlink или BlackMagic.

2. При прошивке через Ст-линк автоматически активируется дебаг, что блокирует задействованные для него пины - PB3 PB4 PA15... Чтобы использовать эти пины в своем коде и не потерять возможность загрузки нового кода, необходимо поместить в setup() следующую строчку:

enableDebugPorts();

3. Даже после избавления от бутлоадера особо в памяти С6 не развернешся. Чтобы уменьшить размер кода, рекомендую обновить тулчейн arm-eabi на более новую версию(как это сделать, подробно описано в #477) и включить LTO-оптимизацию.  По умолчанию ЛТО для STM32f1 у Кларка заблокировано, так как его включение дает кучу ошибок, поэтому предлагаю попробовать мою патченную версию (эта версия включает также добавления для чипов F4, описанные в #557. Cтавить вместо оригинальной)