Здравствуйте!
У меня проблема с тактированием от внешнего источника.
На отладочной плате установлен ZQ1.
Есть возможность подключить внешний генератор, но я не подключила.
Переключатель К2 в положении RES.
Тестовый проект Example при программировании через DCSProg6 включает только один gpioa_4.
Вы объяснили, что надо установить бит 5 в регистре ANALOG_O_PLL, чтобы тактовая шла от ZQ1.
Доработала Example. Первой строкой до настроек порта
WriteReg(ANALOG_O_PLL, 0×20); // XTAL = ZQ1
Загрузила в ОЗУ через DCSProg6 - включается только одна gpioa_4.
Убрала доработку, сделала так
WriteReg(ANALOG_O_RC, 0×0); //Capacitance max frequency = 833.33 kHz
WriteReg(ANALOG_O_RC_R, 0×7); //Resistance
WriteReg(ANALOG_O_PLL, 0×40); // XTAL = RC
Загрузила в ОЗУ через DCSProg6 - включается только одна gpioa_4.
Тогда вот так
WriteReg(ANALOG_O_RC, 0×0); //Capacitance max frequency = 833.33 kHz
WriteReg(ANALOG_O_RC_R, 0×7); //Resistance
WriteReg(CMM_CTRL, 0×01); // тактовая от RC
while((ReadReg(CMM_ST)&0×2)==0×2); // ожидание переключения частоты
Только теперь, переключившись на тактирование от внутреннего RC, наблюдаю ожидаемое переключение светодиодов, естественно значительно медленнее.
Вопрос: - так и задумано?
- или я чего-то не настроила?
- или на демоплате сдох кварц?
Второй вопрос: а почему программа доходит до включения gpioa_4 и останавливается?
Кто ее тактирует до этого момента? Ведь по сбросу сначала выполняется STARTUP, потом еще
несколько команд main и только потом включается gpioa_4