К1921ВК01Т (арм Cortex-M4F)

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

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

Аватара пользователя
Disona
Сообщения: 77
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Disona » 28 янв 2022, 17:37

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, как у меня, то происходит окирпичивание!!!!
Я правильно понимаю, что "окирпичивание" - это не просто он у вас завис, а JTAG отвалился и больше не шьётся?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

Аватара пользователя
Disona
Сообщения: 77
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Disona » 28 янв 2022, 17:39

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);
Подозрительно, что перед настройкой у вас NT_COMMON_REG->SYS_CLK_bit.CURR_SRC не равен 0.
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 28 янв 2022, 17:45

Disona писал(а):
28 янв 2022, 17:37
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, как у меня, то происходит окирпичивание!!!!
Я правильно понимаю, что "окирпичивание" - это не просто он у вас завис, а JTAG отвалился и больше не шьётся?
Именно так. Потом переброс Н2.

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 28 янв 2022, 17:45

Дальнейшие пробы в понедельник....

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 31 янв 2022, 10:28

Да. После принудительного обнуления
NT_COMMON_REG->SYS_CLK_bit.SEL_SRC = 0;
окирпичивание прошло.
WatchDog тоже вроде заработал.
"Вектору" спасибо.

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 31 янв 2022, 11:40

Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!

Аватара пользователя
Disona
Сообщения: 77
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Disona » 31 янв 2022, 11:56

serg_vega писал(а):
31 янв 2022, 11:40
Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!
Насколько я понял из документации, I2C тактируется от системной частоты.
Наша функция с кварцем 12 МГц выдаст 100 МГц системной частоты, если вы не меняли делители.
Быть может, раньше вы работали на другой системной частоте?
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 31 янв 2022, 12:01

serg_vega писал(а):
31 янв 2022, 11:40
Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!
I2C восстановил. Вопрос снимается. Осталось разобраться со второй платой.

serg_vega
Сообщения: 91
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение serg_vega » 31 янв 2022, 12:04

Disona писал(а):
31 янв 2022, 11:56
serg_vega писал(а):
31 янв 2022, 11:40
Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!
Насколько я понял из документации, I2C тактируется от системной частоты.
Наша функция с кварцем 12 МГц выдаст 100 МГц системной частоты, если вы не меняли делители.
Быть может, раньше вы работали на другой системной частоте?
Ну, я использовал для настройки I2C код от НИИЭТ))). Он работает только с их void SystemCoreClockUpdate(void); )))) С Вашим void Init_Clk_Pll_Div_Fvco200 (void): не очень хочет.))

Аватара пользователя
Disona
Сообщения: 77
Зарегистрирован: 06 дек 2016, 11:18
Предприятие: НПФ Вектор
Откуда: Москва
Contact:

Re: К1921ВК01Т (арм Cortex-M4F)

Сообщение Disona » 31 янв 2022, 12:06

serg_vega писал(а):
31 янв 2022, 12:04
Disona писал(а):
31 янв 2022, 11:56
serg_vega писал(а):
31 янв 2022, 11:40
Но это оказывается, еще не конец гемора! Какого-то хрена изменилась тактовая частота I2c и оно благополучно отвалилось! А вторая плата без отладчика не стартует!
Насколько я понял из документации, I2C тактируется от системной частоты.
Наша функция с кварцем 12 МГц выдаст 100 МГц системной частоты, если вы не меняли делители.
Быть может, раньше вы работали на другой системной частоте?
Ну, я использовал для настройки I2C код от НИИЭТ))). Он работает только с их void SystemCoreClockUpdate(void); )))) С Вашим void Init_Clk_Pll_Div_Fvco200 (void): не очень хочет.))
Скорее всего это связано с тем, что наша функция не обновляет значение переменной там какой-то, в которую записывается текущее значение частоты в герцах, типа "int SystenCoreClock".
С уважением, Дмитрий Шпак
ООО "НПФ Вектор"

Ответить

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

Пользователи онлайн

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость