- Вопрос - Как ALL задает версию firmware, дату и другие изменяемые
текстовые данные в исходном тексте программы для индификации по
"шапке" кода? - Make_Pic(12.05.2025 13:36, MCU, полностью)
- Просто в начале main вставляю номер версии и дескриптор, которые
видны в утилитах. Остальное никому и нах не надо:) Посему ниже в
исходнике и пишем подробные комментарии для себя-родимого - с
номером версии и что изменилось/добавилось... Гyдвин(655 знак., 13.05.2025 17:35, картинка)
- Я написал утилиту, которая при сборке генерит файл version.h
следующего содержания: FDA(351 знак., 13.05.2025 15:45)
- у меня в самом начале текстов сейчас стоит - const uint8_t
NUMVERS[8] = "6.901 "; Меняю цифирьки, если осмысленная смена
произошла. - Лaгyнoв(12.05.2025 17:43)
- так IBAH(138 знак., 12.05.2025 14:49)
- Как-то вот так - il-2(1 знак., 12.05.2025 14:00, ссылка)
- У меня make генерит файлик version.inc, который при необходимости
можно включить куда надо. Eddy_Em(172 знак., 12.05.2025 13:57, ссылка, ссылка)
- В исходном тексте нет никаких "изменяемых данных", он не для этого. - SciFi(12.05.2025 13:40)
- Как объяснить контроллеру CH32V103 чтобы он отдал ножки от I2C
после использования? А то у меня периферия периодически подвешивает
SDA в ноль, хочу проверять этот кейс и подергать SCL, но после
инициализации I2C оно ноги обратно не отдает :-( Yft(28 знак., 13.05.2025 18:02, MCU, полностью)
- AT32 и им подобные - если я во флеш пишу, то прерывания в этот
момент не будут работать? - POV(11.05.2025 11:41, MCU, полностью)
- AT32.. говно или стечение обстоятельств? .. а то хвалю их тут... POV(250 знак., 09.05.2025 22:16, MCU, полностью)
- Хехе - я только с одним имел дело. Плата с at32f437. Периодически,
не то что часто, но бывает. Даёт дубу импульсный преобраз 5в в 3.3.
При прошивке посадка и запах. Я выпаиваю, а замест ams1117
напаиваю. И все успешно дальше работает. Говорят мол прошивка моя
хуевая - губит плату. Прошивают атлинком. - vesago(10.05.2025 21:34)
- бусины есть? а то звоношпильки имени газонокосильщика через многие
линейники проползать умеют, особенно через 1117. от 3.3 В до
максимального напряжении (3.7 В?) не так уж далеко... Vit(140 знак., 10.05.2025 08:55)
- Недавно студенты принесли контроллер со сгоревшим STM32. Говорят
"само сгорело" при подключении питания. В STM32 дырка и рядом
сгоревший супервизор на 3,3В. Я им конечно не поверил что оно "само
сгорело" потому, что самолично наблюдал, как студент тыкает кабель
дебаггера в гнездо на плате при включенном питании контроллера ;-) - reZident(09.05.2025 22:36)
- Вот уже два года применяем АТ32F435 от Artery, серийно выпущено
примерно 2500 изделий с этими процессорами. Случаев, описанных
вами, мы не наблюдали. Пару раз выходили из строя процессоры при
отладке, но исключительно по нашей вине. Michael75(114 знак., 09.05.2025 22:36)
- На озоне за сутки выкупили все отечественные RISC-V
микроконтроллеры Driver_gv(1 знак., 15.03.2025 20:38, MCU, ссылка, полностью)
- Вчера обновили ERRATA на оф репозитории, кому интересно Driver_gv(1 знак., 06.05.2025 19:53, ссылка)
- Кто уже купил или думает что с этим делать - выложил быстрый старт,
ссылки , гербер на отладку и прошивку с проектом. - тут Driver_gv(1 знак., 04.04.2025 21:00, ссылка)
- Речь про К1921ВГ015? Хм, ядро 50МГц - на уровне Cortex-M0. Хотя ОЗУ
и Flash вполне достаточно. 5 UART, 1 CAN, 1 I2C, 2 SPI, 1 QSPI,
USB-device. Два типа АЦП: 12-разр SAR и 16-разр. ΣΔ нафейхуа? Два
аналоговых компаратора, отдельный домен RTC, но всего 4 таймера. Ну
... для некоторых периферийных модулей вполне подойдет. Но в 100
выводном корпусе при отсутствии USB Host и Ethernet не так чтобы
очень уж интересный чип. reZident(1 знак., 15.03.2025 21:04, ссылка)
- И сколько их там было? - SciFi(15.03.2025 20:41)
- Подскажите непрограммисту, есть ли (если есть, то какие) подводные
камни у такого вот обработчика прерывания? reZident(972 знак., 25.04.2025 21:23, MCU, полностью)
- Вопрос по организаии .h в проекте. Как то обсуждалось, что у
каждого модуля должен быть свой .h файл в котором только то, что
нужно для прочих модулей. Скажем для adc.c есть adc.h в котором
различные #define и объявленные extern функции из adc.c А теперь в
проекте появляется главный Myproj.h со всякими главными #define.
Стоит ли в него включать все .h проекта? Кто как делает,
поделитесь? - Mty1(28.04.2025 13:08, MCU, полностью)
- все зависит от задачи. У меня вот включаются. Есть файл так
называемого содержимого, который генерит макросы для всего проекта.
В каждом h файле модулей есть дефайны и тайпдефы которые
используются в этой таблице. abivan(371 знак., 28.04.2025 18:12, картинка, картинка)
- Не стоит. Более того, если вам это понадобилось, то это нехороший
звоночек. Cкpипaч(243 знак., 28.04.2025 14:20)
- Зачем туда все подряд включать? Эдак, дойдет до какого-нибудь
"супер-пупер.h", сгенеренный вот так: Eddy_Em(89 знак., 28.04.2025 14:13)
- Там? Toчкa oпopы(1 знак., 28.04.2025 13:34, ссылка)
- Я конечно не программист, но по-моему хидеры нужно включать
непосредственно в .с-файл (причем только те .h, которые необходимы
в данном конкретном .c-файле). Зачем плодить какие-то "главные"
заголовочные файлы с другими заголовками? - reZident(28.04.2025 13:28)
- Например, сделан удачный модуль. Tyмблep(450 знак., 28.04.2025 17:30)
- У меня, например, почти все модули имеют свои прерывания. Нужно
задать приоритет. Причём, приоритеты задаются группе модулей,
например, последовательный интерфейс + таймер - это канал связи
плюс начальная обработка данных. У группы общий приоритет, но
несколько файлов исходников, несколько заголовочных файлов. Поэтому
все приоритеты прописаны в одном, главном файле. Nikolay_Po(437 знак., 28.04.2025 13:35)
- У меня в главном лежит глобальная раскладка приоритетов прерываний
- в виде определений препроцессора. Так же лежат какие-то общие для
всей системы параметры, которые могут быть нужны модулям. Так же,
там могут быть объявления глобальных переменных, типа текущего
состояния, которые так же нужны модулям. Поэтому да, я включаю свой
main.h в исходники практически всех модулей. - Nikolay_Po(28.04.2025 13:21)
- Что за "главный"? У меня нет такого. Что у вас там? - SciFi(28.04.2025 13:13)
- Перешел с IAR ARM 8.3 на 9.5 перекомпилировал проект. Все float
константы определились к double (и не только) соответственно
вылезли предупреждения, например, при сравнении float TmpF c 1.23 .
Не нашел где это можно поменять в настройках, чтобы по умолчанию
использовалось float? - pav256(28.04.2025 10:32, MCU, полностью)
- Смешное и бесполезное... POV(1591 знак., 24.04.2025 22:24, MCU, картинка, картинка, полностью)
- Коллеги, поделитесь мнением про configASSERT(). Распостранено
мнение, что в рабочей версии девайса его стоит отключить. Но у меня
есть критичные задачи, без которых девайс не заработает. и я ставлю
configASSERT( HAL_DMA_Init(&hdma_tim1_up ) == HAL_OK ); .
Потом, в самой функции обработки ошибки - останавливаю все и раз в
секунду, простым выводом в UART выдаю строку ошибки в порт. Вроде
такой подход оправдан, как думаете? - Mty1(22.04.2025 16:08, MCU, полностью)
- Немного про некрофилию. В общем, внезапно понадобилось мне четыре
COM-порта. Залез в загашник, откопал две платки под FT2232D,
запаял, воткнул в комп одну - работает, воткнул вторую - работает.
Воткнул обе - хрен. Обе же одинаковые, винда в них теряется, ху из
ху. Лааадно думаю. Надо ЕЕПРОМку паять, благо она тоже была
разведена. Пошукал во всяком и нашел две микрухи: от атмела и
микрочипа, хе-хе... Запаял, втыкаю в комп - борода, не определяется
ничего. Ну думаю, Звepoящep(535 знак., 15.04.2025 13:59 - 14:40, MCU, полностью)
- Про FLASH в CH32V203. Вкратце: похоже, что при частичной записи
страницы, автоматически стирается и перезаписывается вся страница
256 байт. Подробности ниже. Nikolay_Po(2328 знак., 02.04.2025 06:26, MCU, полностью)
- В чем собственно смысл? Память программ любого микроконтроллера не
предназначена для хранения часто меняющихся данных. Для этого есть
EEPROM. Не стоит натягивать сову на глобус. Любая эмуляция - это
для данных которые очень редко меняются. Ставьте EEPROM или FRAM
как требуется в задаче. Поскольку вы пытаетесь эксплуатировать , то
чего нет в даташите, то завтра результат непредсказуем. Если по
умолчанию много записей, сам бог велел внешнюю память - Driver_gv(04.04.2025 19:44)
- Для истории, из канала RISC-V Телегам Nikolay_Po(2862 знак., 04.04.2025 10:39, ссылка)
- сделайте кольцевой буфер, - дописывайте без стирания страницу, пока
она не заполнится (не приблизится к концу), смещение адреса, ессно
тоже надо сохранять, или писать в конец вектора данных сигнатуру
маркера окончания (ну или просто определять по признаку "FF-до
конца"). стирать страницу можно заранее, когда понятно, что
следующий вектор не поместится, когда проц ещё на полноценном
питании. - Adept(02.04.2025 13:28)
- Мне кажется что вы решаете несуществующую проблему. Для WCH не
пришлось размазывать данные вообще. Что за желание экономить ресурс
таким образом? - General(02.04.2025 08:19)
- Зависит от задачи. Бывает, нужно часто писать и максимально долго.
Большой объём, допустим, с половину набортной флеши. Задача
логгера, например. Nikolay_Po(338 знак., 02.04.2025 09:32)
- Если иметь буфер ОЗУ 256 байт и скидывать его в флеш в случае
шухера, все эти схемы могут работать. Но проще поставить SPI флешку
и делать всё это привычным образом. - SciFi(02.04.2025 10:48)
- Вот читаю я эти ваши страдания и не понимаю одного: щас ЕЕПРОМ с
конским объёмом стоит копейки. Ресурс её, на конские порядки,
превышает ресурс флэши ЦПУ. Её физически нельзя испортить по сбою,
если сделано правильно. Не нужны всякие половые извращения с
прерываниями при записи. Нахуя, а главное, зачем, использовать
потанцэвальный источник геморроя в товарной продукцыи? - mse homjak(02.04.2025 10:46)
- у многих CH32 флэш устроена специфически - есть область из которой
программа при старте копируется в теневое ОЗУ и оттуда выполняется,
но теневое ОЗУ не перекрывает весь флэш, остается большой кусок.
Это прямо провоцирует придумать для этого куска флэш какое-то
применение. - AlexG(02.04.2025 14:50)
- Время доступа к данным из EEPROM на порядки превосходит время
доступа к данным из флэша. С точки зрения ЭМС отдельная м/с,
работающая на высокой частоте, источник геморроя. Общие размеры
могут быть ограничены. - AlexBi(02.04.2025 11:19)
- Когда надо "доступать", то грузят оптом в память. Это ещо быстрее
получается. С точки зрения ЭМС, это всё хня какая-то. Ну, разве
что, поставить ЕЕПРОМку в полуметре от проца и постоянно хреначить
на 10-20МГц. Что касаемо размеров, то найти место под ТССОП или
СОТ-23, не проблема. - mse homjak(02.04.2025 12:52)
- К ЭМС у меня, слава Богу, обычные требования и нет внешних, не
развязанных линий, но габариты ограничены весьма. Nikolay_Po(14 знак., 02.04.2025 11:24, картинка)
- Кварец, зараза, всё испортил :-) - SciFi(02.04.2025 11:26)
- И ЭМС, и габариты. Но родная плата похуже будет с т.з. ЭМС. Так что
работать будет. Главное, чтобы от -20 до +60 была стабильной
частота UART'а. - Nikolay_Po(02.04.2025 11:33)
- да на эту плату в три раза больше можно, чем стоит :)) как
правильно сказали - выкиньте HC49S, поставьте KX7, поставить
FRAM/MRAM soic8, на четырёхслойке, вангую, можно разместить все
компоненты "жопа к жопе", а при подобной плотности, и на двуслойке
всё получится :) Про вторую сторону скромно умолчим, подозреваю,
что там также всё нерационально. - Adept(02.04.2025 11:54)
- Там дорожек много. Не без труда в два слоя уместил. А если мельчить
и частить, придётся на более строгие технормы производства
переходить, что дороже. - Nikolay_Po(02.04.2025 14:10)
- Полно кварцэв размером 3,2Х2,5. И генераторов, что ещо экономит
место. И ЕНки в СОТ23 - mse homjak(02.04.2025 13:16)
- Я по цене оптимизировал. - Nikolay_Po(02.04.2025 14:05)
- вот нагуглился SMD кварц совсем недорого: SciFi(1 знак., 02.04.2025 14:10, ссылка)
- И вообще, вы не следили за ходом моей мысли. Корпус кварца
аутентичен кварцам, применяемым в других узлах системы. Поэтому
брал в таком корпусе и с частотой, кратной УАРТу. Потом, для
односторонности, взял его же, но не выводной, а поверхностный.
Только лишь потому. Nikolay_Po(161 знак., 02.04.2025 18:06)
- Частота не кратная стандартному RS-232. И вообще, собранная плата у
меня сегодня уже появилась в руках. Так что начинаю работать уже с
предсерийным образцом. Nikolay_Po(1 знак., 02.04.2025 17:50, картинка)
- И TPL730-3.3... - mse homjak(02.04.2025 17:46)
- Не позволяют габариты. Хочу односторонний монтаж. При тщательной
проработке, геморрой будет обнаружен и вылечен превентивно. - Nikolay_Po(02.04.2025 10:52)
- Эмуляция EEPROM - вполне себе обычная задача. Wear leveling - один
из важных аспектов этой задачи. - SciFi(02.04.2025 08:37)
- Дык это прямо написано в доках, не? - SciFi(02.04.2025 07:55)
- Я бы не надеялся на "дозапись" уже записанной области флешь без
стирания. Выпустят новую ревизию чипа - там будет все по другому.
Кстати, даже STM32F1 не поддерживала "дозапись". Если попробуешь на
записанное место (где нет 0xFFFF) записать что-то другое, в
рассчете что стертые "1" превратятся в "0", то результат на самом
деле будет непредсказуемым. Я пытался на нем делать оптимизацию
записи - если новое значение при записи изменяет биты только с "1"
на "0", но не il-2(124 знак., 02.04.2025 07:40, ссылка)
- Аналогичная перезапись в режиме совместимости, по два байта, без
стирания, даёт ровно записываемые байты, без искажения как в
примере с "быстрой" записью страницы. - Nikolay_Po(02.04.2025 06:50)
- Вот вывод тестовой программы (перезапись в "быстром" режиме, сразу
256-ю байтами, все 0xFF): Nikolay_Po(9698 знак., 02.04.2025 06:45)
- Вопрос про FreeRTOS. Надо с CPU в схему подавать сигнал Alive. Что
проц годен, не завис и жив. Частота 500Гц или выше. Казалось бы
беру задачу, и делаю переключение пина. Квант времени в ОС 1мс,
если все другие задачи отдадут свободное время в ОС, то задача
будет запускаться с частотой 1кгц, и все норм. А если несколько
задач туго займуться счетом, то задача Alive не получит время раз в
1мс, верно? - Mty1(06.04.2025 23:49, MCU, полностью)
- Представлен TI MSPM0C1104 — самый маленький в мире микроконтроллер
за 20 центов DH(1127 знак., 16.03.2025 21:46, MCU, ссылка, полностью)
- Китайцы переплюнули Zikon(1 знак., 06.04.2025 17:11, картинка)
- Несколько ядер, вероятно в будущем, будут правилом. Слухи ходят, в
следующем будет wifi. jlm(1 знак., 18.03.2025 13:33, ссылка)
- MSPM0C1104 MSPM0C1104(1 знак., 15.03.2025 08:51,
, ссылка)reZident
- Запустил Coremark на CH32V307. Получилось 3.06 Coremark/MHz (150
MHz). Запустил его же в высоких адресах (0x60000+, то есть из
медленного флеша) - получилось в 14.36 раз медленнее. Мануал что-то
рассказывает про "enhanced read mode", но включение этой штуки
улучшило последнюю цифру всего на 2%. Update: ошибочка вышла, не
2%, а 10%. - SciFi(29.03.2025 09:13 - 03.04.2025 22:00, MCU, полностью)