Реклама на сайте | Помощь сайту   English version | Free likes 
KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Микроконтроллеры семейства PIC

Вопрос   Нужно запрограммировать контроллер 12С508 некой программой и при этом использовать внутренний генератор. Загвоздка в константе калибровки. Порывшись в интернете и найдя там примеры программ окончательно запутался. В одном месте сказано, что это выполняетс

Ответ  Ответ: Наверх [Вернуться в категорию "Микроконтроллеры семейства PIC"]

При использовании внутреннего RC генератора необходимо использовать калибровочную константу для получения более точного значения частоты. Поэтому константа для каждого кристалла разная и записана на заводе в последней ячейке памяти: для 12C508 в ячейке 0x1FF, для 12C509 в 0x3FF. Но записана там не сама константа, а команда, заносящая эту константу во временный регистр WREG - MOVLW XX (где ХХ - калибровочная константа). При конфигурации с внутренним RC генератором выполнение программы начинается не с 0-го адреса, а с последнего, тоесть с этой самой команды, а только потом переходит на 0-ой. И вот, чтобы занести эту константу в нужный регистр OSCCAL, сама программа должна начинаться (по адресу 000) с команды MOVWF OSCCAL, которая переносит содержимое регистра WREG (калибровочную константу) в регистр OSCCAL. Конечно не принципиально, чтобы первой командой была именно MOVWF OSCCAL, это может быть и команда перехода, но только не команда, модифицирующая регистр WREG. Но такая команда обязательно должна быть.

При программировании однократных кристаллов в последнюю ячейку не должно ничего записываться, чтобы не нарушить команду и константу. При использовании отладочных кристаллов (с ультрафиолетовым стиранием) обязательно надо прочитать содержимое памяти и записать где-нибудь (лучше на самом корпусе) калибровочную константу. Потому, что при стирании сотрется и сама константа тоже. И в программе для отладочного кристалла должна быть записана команда MOVLW XX в последней ячейке. Например, так:

ORG 0x1FF ; это для 508, для 509 будет 0x3FF

MOVLW XX ; где ХХ - и есть прочитанная константа

Потом, при подготовки программы для однократного (OTP) кристалла эти строчки надо будет убрать (закомментировать).

[Микроконтроллеры семейства PIC]

Новости
[06/02/2019] Конференция в МГТУ им. Баумана «Технологии разработки и отладки сложных технических систем» 2019
[09/05/2018] Грандиозная майская распродажа на Gearbest!
[16/05/2017] С 15 по 17 мая в магазине Gearbest проходит грандиозный флэшсейл
[10/05/2017] Так что же такое Спиннер?
[05/12/2016] Новый Год и Рождество с GearBest!
Читать все новости >>
Каталог схем
PDA - интерфейсы и схемы Автозвук Автомобиль Аудио Безопасность Бытовая электроника Видео Видеокамеры Высоковольтные Генераторы Игры, развлечения Измерения Интерфейсы Коммутация Компьютер Медицина Моделирование/ Роботы Музыка Передатчики Питание Получение и накопление данных Предусилители Радио Разное Ремонт Ретро Свет/Лазер/ Cветодиоды/IR Сети Солнечная энергия Сотовая связь ТВ-Мониторы Телефония Управление двигателями Фильтры Цифровые/ Микроконтроллеры Electronic circuits Datasheets Каталог схем Принципиальные схемы
Мicrocontrollers
Drivers for LED dispays Data Logger for iButton LCD-module with MCS-51 Thermometers Dallas Semiconductor Work with EEPROM 24LCxx MSP430 with Flash-memory ATmega169 and AVR-Baterfly CAN interface USB interface
Избранные схемы
Arduino Аудио В Вашу мастерскую Видео Для автомобиля Для дома и быта Для начинающих Зарядные устройства Измерительные приборы Источники питания Компьютер Медицина и здоровье Микроконтроллеры Музыкантам Опасные, но интересные конструкции Охранные устройства Программаторы Радио и связь Радиоуправление моделями Световые эффекты Связь по проводам и не только... Телевидение Телефония Узлы цифровой электроники Фототехника Шпионская техника
Пользователи
Создано аккаунтов:
Сегодня: 0
Вчера: 0
Всего: 146257

Статистика:

 © 2003—2024 «Электронный портал»Обр@тная связь