16+
Вторник
19 марта
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры PIC

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Nikolay_Po  (08.01.2019 20:31, файл(ы)) , в ответ на Ты полную ерунду залепил. Одновременно запустить FRC и XT невозможно - этой прагмой/конфигом ты всего лишь управляешь мультиплексором "один-из-N" (FOSC), а не задаешь произвольный битовый паттерн. автор: MBedder
Никаких нарушений, ни логики ни документации. Оно де-факто работает так, в железе, сегодня индус проверил. Контроллер dsPIC30F6016A ещё не получил two-speed startup, как более поздние коллеги dsPIC33, но уже получил clock switching. 
То есть, выбором источника тактового сигнала можно управлять из программы. Особенность в том, что из программы можно управлять лишь тремя битами FOS, точнее, OSCCON COSC. Но нельзя настройкой режима EXT/XT/HS/PLL, биты FPR. Эти биты настраиваются лишь прошивкой конфигурации, слово FOSC. К примеру, чтобы контроллер заработал от внешнего кристалла с 16х ФАПЧ, нужно прошить в конфигурации FPR[4:0]=0b00111. И это жёстко, по ходу выполнения программы не изменить. Так же, для работы XT_PLL16, нужно, чтобы биты COCS регистра OSCCON были установлены в 0b111. Это можно получить путём прошивки бит FOS слова FOSC значением 0b111. Всё это делается штатным интерфейсом MPLAB X, просто выбираешь XT_PLL16 и всё. FOS включают PLL, FPR настраивают генератор в режим XT и коэффициент умножения ФАПЧ. Пока всё по-вашему. Биты FOS выбирают источник тактовой частоты при включении или сбросе. Они задают значение для бит COSC регистра OSCCON. После запуска процессора, генератор можно переключить, изменив COSC спец. процедурой. Верно? Теперь финт ушами: руководство не запрещает прошить FOS в конфигурации значением 0b001, что при старте обеспечивает работу от FRC без PLL. Обратите внимание на картинку. При FOS=0b001, значение, прошитое в FPR, игнорируется. Что не запрещает настроить FPR для XT_PLL16, в то же время оставив FOS 0b001 (FRC). С учётом картинки, верно ведь? Теперь задача: контроллер на 7.3728МГц кварце с PLL16 стартует долго и жрёт много (по паспорту до 250мА, по факту больше 200mA), что является проблемой на этапе включения. Прошиваю FPR значением 0b00111 (XT_PLL16), но FOS значением 0b001 (FPR). Контроллер стартует на FRC без PLL, настройки FPR игнорирует. Стартует быстро, жрёт умеренно (почти в 16 раз меньше). Когда подходит время перехода на максимальную скорость, по процедуре переключения тактовой частоты, меняю биты COSC на 0b111 и, вуаля, контроллер работает на максимальной скорости! Биты FPR уже настроены подходящим для XT_PLL16 образом.
Прикреплённые файлы:
FRM_configuration_bits.gif:62 K

Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX