Я правильно понимаю, что "окирпичивание" - это не просто он у вас завис, а JTAG отвалился и больше не шьётся?serg_vega писал(а): ↑28 янв 2022, 17:35 Я просто вставил код Лашкевича в свою функцию и.. . либо невозможно прописать NT_COMMON_REG->PLL_NF = 48; Данный код просто не изменяет содержимого регистра! Это если NT_COMMON_REG->SYS_CLK_bit.CURR_SRC == 4, а если до этого
NT_COMMON_REG->SYS_CLK_bit.CURR_SRC ==3, как у меня, то происходит окирпичивание!!!!
К1921ВК01Т (арм Cortex-M4F)
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т (арм Cortex-M4F)
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т (арм Cortex-M4F)
Ага.serg_vega писал(а): ↑28 янв 2022, 17:35 Я просто вставил код Лашкевича в свою функцию и.. . либо невозможно прописать NT_COMMON_REG->PLL_NF = 48; Данный код просто не изменяет содержимого регистра! Это если NT_COMMON_REG->SYS_CLK_bit.CURR_SRC == 4, а если до этого
NT_COMMON_REG->SYS_CLK_bit.CURR_SRC ==3, как у меня, то происходит окирпичивание!!!!
А попробуйте добавить перед вызовом Init_Clk_Pll_Div_Fvco200(); вот такой код:
Код: Выделить всё
//Переходим на тактирование от внутреннего кварца
do
{
NT_COMMON_REG->SYS_CLK = 0;
for(i = 0; i < 50; i++);
}
while (NT_COMMON_REG->SYS_CLK_bit.CURR_SRC != SYSCLK_REFCLK);
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
Re: К1921ВК01Т (арм Cortex-M4F)
Именно так. Потом переброс Н2.Disona писал(а): ↑28 янв 2022, 17:37Я правильно понимаю, что "окирпичивание" - это не просто он у вас завис, а JTAG отвалился и больше не шьётся?serg_vega писал(а): ↑28 янв 2022, 17:35 Я просто вставил код Лашкевича в свою функцию и.. . либо невозможно прописать NT_COMMON_REG->PLL_NF = 48; Данный код просто не изменяет содержимого регистра! Это если NT_COMMON_REG->SYS_CLK_bit.CURR_SRC == 4, а если до этого
NT_COMMON_REG->SYS_CLK_bit.CURR_SRC ==3, как у меня, то происходит окирпичивание!!!!
Re: К1921ВК01Т (арм Cortex-M4F)
Дальнейшие пробы в понедельник....
Re: К1921ВК01Т (арм Cortex-M4F)
Да. После принудительного обнуления
NT_COMMON_REG->SYS_CLK_bit.SEL_SRC = 0;
окирпичивание прошло.
WatchDog тоже вроде заработал.
"Вектору" спасибо.
NT_COMMON_REG->SYS_CLK_bit.SEL_SRC = 0;
окирпичивание прошло.
WatchDog тоже вроде заработал.
"Вектору" спасибо.
Re: К1921ВК01Т (арм Cortex-M4F)
Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т (арм Cortex-M4F)
Насколько я понял из документации, I2C тактируется от системной частоты.
Наша функция с кварцем 12 МГц выдаст 100 МГц системной частоты, если вы не меняли делители.
Быть может, раньше вы работали на другой системной частоте?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"
Re: К1921ВК01Т (арм Cortex-M4F)
Ну, я использовал для настройки I2C код от НИИЭТ))). Он работает только с их void SystemCoreClockUpdate(void); )))) С Вашим void Init_Clk_Pll_Div_Fvco200 (void): не очень хочет.))
- Disona
- Сообщения: 81
- Зарегистрирован: 06 дек 2016, 11:18
- Предприятие: НПФ Вектор
- Откуда: Москва
- Контактная информация:
Re: К1921ВК01Т (арм Cortex-M4F)
Скорее всего это связано с тем, что наша функция не обновляет значение переменной там какой-то, в которую записывается текущее значение частоты в герцах, типа "int SystenCoreClock".serg_vega писал(а): ↑31 янв 2022, 12:04Ну, я использовал для настройки I2C код от НИИЭТ))). Он работает только с их void SystemCoreClockUpdate(void); )))) С Вашим void Init_Clk_Pll_Div_Fvco200 (void): не очень хочет.))
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"
ООО "НПФ Вектор"