К1921ВГ015 общее

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

Аватара пользователя
maxlab
Сообщения: 28
Зарегистрирован: 05 дек 2025, 10:29
Предприятие: Пенсионер фрилансер
Откуда: Краснодар,RU

Re: К1921ВГ015 общее

Сообщение maxlab »

RabidRabbit писал(а): 02 мар 2026, 18:38 на уровне оптимизации например -O2 брюки превращаются в
Посещайте https://godbolt.org/ оч полезно :)
Вы меня озадачили... :D
Проверю ка я эту фишку на C-SKY. Кругом одни грабли...
Девице - Device
Аватара пользователя
maxlab
Сообщения: 28
Зарегистрирован: 05 дек 2025, 10:29
Предприятие: Пенсионер фрилансер
Откуда: Краснодар,RU

Re: К1921ВГ015 общее

Сообщение maxlab »

maxlab писал(а): 02 мар 2026, 20:01
RabidRabbit писал(а): 02 мар 2026, 18:38 на уровне оптимизации например -O2 брюки превращаются в
Посещайте https://godbolt.org/ оч полезно :)
Вы меня озадачили... :D
Проверю ка я эту фишку на C-SKY. Кругом одни грабли...
Пока посмотрел в текущем окружении. Вижу фишку на которую Вы указывали.Но не все так однозначно...
Функция работает, результат на экране. Задержка отрабатывает
Я не очень хорошо понимаю что здесь происходит, но руководствоваться только https://godbolt.org думаю не стоит
Изображение
Девице - Device
vg015boy
Сообщения: 1
Зарегистрирован: 02 мар 2026, 21:43
Предприятие: vg015boy

Re: К1921ВГ015 общее

Сообщение vg015boy »

Но Вам же нужно посмотреть именно ClkInit() ? Можно в отладке остановиться на этом месте и посмотреть на вкладке Disassembly, что именно там происходит:

Изображение
RabidRabbit
Сообщения: 136
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

Что же, могу тогда только посоветовать руководствоваться собственной головой и листингом дизассемблера, ну ещё документацией ;) А компилятор абсолютно прав, выкидывая код, который ничего не делает.
Конечно, есть ещё и очень простое решение - используйте ключ компилятора -O0 и подобные проблемы никогда Вас больше не потревожат.
Аватара пользователя
maxlab
Сообщения: 28
Зарегистрирован: 05 дек 2025, 10:29
Предприятие: Пенсионер фрилансер
Откуда: Краснодар,RU

Re: К1921ВГ015 общее

Сообщение maxlab »

RabidRabbit писал(а): 03 мар 2026, 00:32 используйте ключ компилятора -O0 и подобные проблемы никогда Вас больше не потревожат.
Вообще то, у меня проблемы с PLL. ;)
Хорошо что этот блок синтезатора можно обойти и тактироваться от кварца напрямую.
Логичный вопрос возникает... А можно ли вместо пассивного кварца притулить активный мегагерц на 50
и сигнал смаршрутить сразу в ядро вместо PLL? Если что, у меня и на 120мГц имеется :)

Что скажет начальник транспортного цеха? НИИЭТ - Ау!
Девице - Device
RabidRabbit
Сообщения: 136
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

Вам было указано на как минимум одну проблему в Вашем коде.
Можно взять заведомо рабочий пример из https://gitflic.ru/project/rabidrabbit/ ... nch=master и опробовать его.
Аватара пользователя
maxlab
Сообщения: 28
Зарегистрирован: 05 дек 2025, 10:29
Предприятие: Пенсионер фрилансер
Откуда: Краснодар,RU

Re: К1921ВГ015 общее

Сообщение maxlab »

RabidRabbit писал(а): 03 мар 2026, 14:58 Вам было указано на как минимум одну проблему в Вашем коде.
Я это поправил и испробовал сразу же. Безрезультатно. Проблема не в коде имхо
До определенного момента PLL работал со штатной процедурой инициализации. Я проверял на 7 ноге порта С с опцией CKO_PLL0,
как только спаял макетку. А потом что то случилось.
Девице - Device
Аватара пользователя
maxlab
Сообщения: 28
Зарегистрирован: 05 дек 2025, 10:29
Предприятие: Пенсионер фрилансер
Откуда: Краснодар,RU

Re: К1921ВГ015 общее

Сообщение maxlab »

maxlab писал(а): 03 мар 2026, 13:38 Логичный вопрос возникает... А можно ли вместо пассивного кварца притулить активный мегагерц на 50
Оказывается можно. До 30 мГц (табл 2.5 РП). Но я попробую 50 для начала...вдруг повезет :)
Девице - Device
RabidRabbit
Сообщения: 136
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 общее

Сообщение RabidRabbit »

В общем, для лучшей устойчивости работы блока PLL стоит соблюдать рекомендации из РП касательно коэффициентов A и B:
Примечание – Настоятельно рекомендуется максимизировать значение PD0A в паре делителей PD0A, PD0B. Аналогично и для пары делителей PD1A, PD1B.
В run-time коде из НИИЭТовского SDK это не соблюдается (см. https://gitflic.ru/project/niiet/niiet_ ... 921vg015.c) и может приводить к неустойчивой работе блока PLL.
Для расчёта параметров блока PLL предлагается использовать калькулятор (см. приложенный файл, там исходник на Си). На входе задаём исходную частоту (например, HSE) и две выходные частоты. На выходе все коэффициенты для настройки блока PLL с расчитанными частотами.

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

$ ./test_AB.exe 18432000 50000000 32000000
fVCO = 800000000
AB = 16, A = 8, B = 2, A * B = 16, fVCO / (A*B) = 50000000
fVCO = 800000000
REFDIV = 1, FBDIV = 43, FRAC = 6757489, fVCO = 799999999, PLL = 50000000, A = 8, B = 2
[2] AB = 25, A = 5, B = 5, A * B = 25, fVCO / (A*B) = 32000000
В данном примере получился ненулевой дробный коэффициент, так что здесь надо не забыть выставить бит DSMEN;
Ну и не забыть вычесть 1 из значений коэффициентов A и B при занесении в PLLxxxCFG0, т.е. в данном случае:
PD0A = 7, PD0B = 1
PD1A = 4, PD1B = 4
Вложения
test_AB.c
сборка gcc test_AB.c -O2 -s -o test_AB.exe
(6.13 КБ) 26 скачиваний
Ratnikoff
Сообщения: 2
Зарегистрирован: 18 апр 2025, 08:52
Предприятие: АО "Моринсис "Агат-КИП"

Re: К1921ВГ015 общее

Сообщение Ratnikoff »

Здравствуйте. Подскажите, есть ли какой-то способ упрощенной первой заливки прошивки в данный МК без установки и настройки среды Syntacore IDE, без самого проекта, чисто заливка бинарника.
Ответить

Вернуться в «32-разрядные микроконтроллеры»