Ограничен частотой fCPU / 12, т.е. 2,7 МГц максимум при тактировании МК от встроенного генератора с частотой 32,5 МГц (максимальное значение согласно ТУ) - ограничение ядра Syntacore SCR1.отладочный интерфейс MIK32 ограничен частотой 4 МГц
Ограничен частотой fCPU / 12, т.е. 2,7 МГц максимум при тактировании МК от встроенного генератора с частотой 32,5 МГц (максимальное значение согласно ТУ) - ограничение ядра Syntacore SCR1.отладочный интерфейс MIK32 ограничен частотой 4 МГц
и...эта версия мне пишет в консоль, мол "Error loading Python DLL 'R:\Temp\_MEI34162\python312.dll'." R: это кстати мой RAM-диск...на компе с Windows 7. Да, я знаю, что разрабы Петюни вроде как забили на поддержку семёрки, но есть неофициальные сборки. Я конечно поставил последнюю, 3.12.4, и вроде бы со всем прочим софтом она работает нормально. Пробовал я кстати и сделать папку, про которую оно пишет, и скинуть туда dll, но при этом ничего не меняется. Наверно под десяткой таких проблем нет?И да, не забудьте обновить «mik32-uploader», который сбрасывает режим QPI командой «0xFF» для дальнейшей прошивки флешки в стандартном режиме SPI. Иначе перед прошивкой придётся не давать вашему загрузчику запускаться. Об этом я уже писал ранее.
Действительно, станцевал всё это - появился новый exe-шник. И вот он работает нормально, в т.ч. когда залит загрузчик с QPI-режимом! Попутно заметил, что на время его работы в моём Temp-е появляется та самая папка _MEI40762, потом самоудаляется.Соберите исполняемый EXE-файл из программ на Python у себя. Для этого после установки Python установите библиотеку PyInstaller. Пакетный файл «mik32_upload_build.bat» с командой «pyinstaller mik32_upload.spec» я сделал себе для удобства. Среда разработки VSCode с расширением PlatformIO запускает Python-скрипты напрямую. Исполняемый файл требуется для Mikron IDE на базе Eclipse.
Кстати, стащил полученный EXE-шник на другой пека, но тоже под Win7. И там он заработал нормально.Соберите исполняемый EXE-файл из программ на Python у себя.
Нет, 64 разумеется. Раз уж есть возможность не ютиться в 3 гигах ОЗУ, которое даёт 32-битная архитектура, то не вижу причин продолжать это делать. Да, насколько я понимаю, и маломальски актуальный софт под 32 бита тоже давно не работает.Win7 32-х битная?
objcopy.exe input.elf -O binary output.bin
srec_cat.exe output.bin -bin -fill 0xFF 0x0 0x8000 -o output_full.bin -Binary
Маленькая не обязательная правка к коду. Тактирование шины в загрузчике лучше сделать от внутреннего генератора 32Мгц. А то я уже купился на внешнем кварце 32Мгц с третьей гармоникой - где в итоге получается частота поделенная на 3. И по незнанию этого момента - долгий поиск почему все работает в 3 раза медленнее. Всякое бывает, все кварцы не проверишь. А осадочек у пользователя останется, особенно если на плате не будет установлен разъем JTAG.Полистал немного описание ZModem, взгрустнул... Даже если это каким-то чудом реализовать, в 8кБ оно ой как вряд-ли влезет. Интересно, а какие ещё есть альтернативы, чтобы не изобретать велосипедов для пекашной стороны, но при этом код загрузчика не разрастался бы до уровня какого-нибудь U-Boot?
Можно, конечно. В этом случае достаточно просто не активировать кварцевый. Только следует понимать, что на RC-тактировании уже не факт, что у вас сохранится стабильная связь на 115200 б/с. Придётся настраивать что-нибудь вроде 9600, и тогда прошивка будет литься долго и печально. Так что, считаю, лучше сразу разобраться с тактированием, а потом уже всё остальное.Тактирование шины в загрузчике лучше сделать от внутреннего генератора 32Мгц.
Тут уж скорее RISC-V код сам по себе получается довольно длинным, поскольку это же Ъ-RISC! Т.е. минимально необходимый для работы набор команд.или резать всякие проверки в исходном коде библиотеке HAL. Она оказалась очень прожорливой.
После старта МК тактируется от кварцевого генератора, если этот генератор запустился. Поэтому в загрузчике нужно сразу переключиться на тактирование от HSI32M (AHB_Mux = 1). После этого кварцевый генератор можно выключить (CLOCKS_SYS = 0x201).В этом случае достаточно просто не активировать кварцевый.
Встроенный генератор HSI32M обладает достаточно высокой температурной стабильностью, выходная частота практически не зависит от изменения питающего напряжения. Т.о., необходимо компенсировать первоначальный разброс. Для этого достаточно единожды подобрать и сохранить в энергонезависимой памяти значение делителя частоты для USART. Это значение будет индивидуальным для каждого образца МК.на RC-тактировании уже не факт, что у вас сохранится стабильная связь на 115200 б/с.
Повторюсь. Выходная частота генератора практически не зависит ни от температуры, ни от напряжения питания. В документации подробно рассмотрено, за счет каких схемотехнических решений это достигнуто (п. 4.2, стр. 265, 266 ТО версии 2.1.5). Все, что требуется, - это один раз измерить частоту при нормальных условиях и зафиксировать делитель для модулей USART. Делать это с помощью часового кварцевого резонатора, - не лучшее решение, поскольку наличие этого резонатора в схеме не является обязательным. Проще при первом запуске подать с другого устройтва последовательность известных байтов (например, 0x55) и измерить длительность битов с помощью таймера Timer16_0, или определить границы устойчивого приема перебором значений делителя, а затем зафиксировать центральное.в зависимости от индекса температуры
Интересно, что это должна быть за поделка такая хитрая, чтобы без кварцевого резонатора, но при этом нужно было подстраивать RC-генератор? Да и набор периферийных устройств у МК К1948ВК018 к изыскам не особо располагает. Сделать ровно-ровно 16 МГц на SPI? Или ровно-ровно 1 МГц на I2C?Видимо не лохи сделали коррекцию частоты внутренних генераторов, потому что не все разбработчики в своих поделках из всех периферийных устройств используют лишь один только USART.
А ещё раньше они запихали в чип MEMS-резонатор. Хотя можно было бы вспомнить и более ранний дорогущий DS3232.Ждём внедрения кварцевого генератора внутрь корпуса микроконтроллера, как это уже сделали западные буржуины ещё в 2019 году.
Разве там ещё можно что-то выжать большее, чем QPI на максимальной для Амура частоте?За прошедшую ночь разобрался как уменьшить задержки чтения из микросхемы внешней флеш-памяти через SPIFI до предела.
Так-то, конечно, всякие "потоковые" режимы в этих чипах есть. Но, так понимаю, это разве что может ускорить прошивку/верификацию. Если это имеет смысл, поскольку, например, выше скорости UART-а всё равно не прыгнешь. Или всё же...можно как-то обучить SPIFI даже в рабочем режиме читать данные пачками (а рандомное чтение кода ядром при этом компенсирует кэш)?У всех этих используемых микросхем есть режим XIP, который позволяет при последующей операции не отправлять повторно ту же самую команду.