Реклама на сайте English version  DatasheetsDatasheets

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

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 16.12.2021, 20:52  
Kern
Частый гость
 
Аватар для Kern
 
Регистрация: 05.11.2004
Адрес: Одесса
Сообщений: 47
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 16 сообщении(ях)
Kern на пути к лучшему
Восклицание Семейство PIC10F: изменить OSCCAL

Приветствую всех на форуме.
Захотелось изменить калибровочную константу в PIC10F222 при помощи PICkit2, не, не получилось. Значение в поле меняется, но частота по факту остается неизменной. Опробовано на двух тушках.
Вопрос, есть кто с таким сталкивался, и как таки решить проблему.

п.с. Ответ искал везде, даже в нете)))
Реклама:
Kern вне форума  
Непрочитано 16.12.2021, 21:08  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,522
Сказал спасибо: 172
Сказали Спасибо 1,554 раз(а) в 805 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Что за значение? Там по факту находится инструкция movlw с этой самой константой.
Цитата:
In addition, a calibration instruction is programmed into
the last address of memory, which contains the calibra-
tion value for the internal oscillator. This location is
always uncode protected, regardless of the code-pro-
tect settings. This value is programmed as a MOVLW XX
instruction where XX is the calibration value and is
placed at the Reset vector. This will load the W register
with the calibration value upon Reset and the PC will
then roll over to the users program at address 0x000.
The user then has the option of writing the value to the
OSCCAL Register (05h) or ignoring it.
realid вне форума  
Сказали "Спасибо" realid
Kern (16.12.2021)
Непрочитано 16.12.2021, 21:32  
Kern
Частый гость
 
Аватар для Kern
 
Регистрация: 05.11.2004
Адрес: Одесса
Сообщений: 47
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 16 сообщении(ях)
Kern на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

"Захотелось изменить OSCCAL".
PICkit2 позволяет это проделать, и с PIC12F всё работало, частота тактового генератора менялась. Но с PIC10F не сработало.
Tools-›OSCCAL-›Set Manually-›OSCCAL value - меняем значение константы, жмем ОК.
Значение меняется на установленное, новое введенное значение.
Частота тактового генератора остается без изменений.
Kern вне форума  
Непрочитано 16.12.2021, 22:12  
Eddy71
Почётный гражданин KAZUS.RU
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,983
Сказал спасибо: 5,695
Сказали Спасибо 25,936 раз(а) в 5,814 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

В приведенной выше цитате из даташита английским по белому ж написано, что это значение хранится в защищённой от записи области. А у 629 оно в обычной памяти, не защищённой
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/

моя домашняя страничка: http://www.eddy.com.ua/

Последний раз редактировалось Eddy71; 16.12.2021 в 22:14.
Eddy71 вне форума  
Сказали "Спасибо" Eddy71
Kern (16.12.2021)
Непрочитано 16.12.2021, 22:35  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 755
Сказал спасибо: 366
Сказали Спасибо 833 раз(а) в 390 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Приветствую любителей ПИКов!

К моменту выполнения инструкции по адресу 0x000 в рабочем регистре w уже находится то, что называется калибровочной константой и это значение можно либо записать в OSCCAL либо проигнорировать.

Kern, Вы же пишете на Ассемблере? Первой же командой в программе попробуйте выполнить movwf OSCCAL.
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Kern (16.12.2021)
Непрочитано 16.12.2021, 22:53  
Kern
Частый гость
 
Аватар для Kern
 
Регистрация: 05.11.2004
Адрес: Одесса
Сообщений: 47
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 16 сообщении(ях)
Kern на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Получается Eddy71 прав на счет английского на белом. Проверил еще пару тушек, возможности корректировать частоту RC нет. А жаль.
Выходит, предупреждения PICkit2 о потере калибровочной константы - для лохов! Зачем же её помещать в ...
Kern вне форума  
Непрочитано 16.12.2021, 23:27  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,522
Сказал спасибо: 172
Сказали Спасибо 1,554 раз(а) в 805 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Да, не. Там написано, что эта область всегда открыта, независимо от конфига. Ну то есть ее можно всегда считать, даже если остальная память закрыта от чтения. Ну а как еще сохранить заводское значение?
Цитата:
Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator. The calibration value must be read prior to erasing the part so it can be reprogrammed correctly later.
realid вне форума  
Непрочитано 17.12.2021, 02:35  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 755
Сказал спасибо: 366
Сказали Спасибо 833 раз(а) в 390 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Сообщение от Kern Посмотреть сообщение
Tools-›OSCCAL-›Set Manually-›OSCCAL value - меняем значение константы, жмем ОК.
Значение меняется на установленное, новое введенное значение.
Частота тактового генератора остается без изменений.
Kern, изменить программатором - это лишь пол-дела. Нужно еще в начале программы загрузить это значение в OSCCAL (автоматически данный ПИК этого не делает). Со значением "калибровочной константы" есть оччень неплохой такой нюанс.
Инструкция "movlw XX", предполагаемая в последнем слове флеша, приводит к тому, что к моменту выполнения инструкции по адресу 0x000 в рабочем регистре w уже ТОЧНО находится это самое XX (перефразирую: при старте начальный адрес программного счетчика равен адресу последнего программного слова в памяти программ, затем программный счетчик переполняется и начинает счет с нуля ). А вот что делать с этим XX - смотрим на регистр OSCCAL и анализируем. За калибровку частоты отвечают биты OSCCAL‹7:1›, а бит OSCCAL‹0› отвечает за вывод сигнала Fosc/4 на пин МК ( правда, чтобы этот сигнал появился на пине, нужно еще сбросить бит OPTION‹5›).

Что же касается изменения OSCCAL во время выполнения программы - частота внутреннего тактового генератора прекрасно изменяется. Для иллюстрации: задаем одно за другим ( программно ) три значения OSСCAL и получаем вот такую картину на выводе Fosc/4:

Нажмите на изображение для увеличения
Название: osccal.jpg
Просмотров: 0
Размер:	58.2 Кб
ID:	168509

( В иллюстрации для формирования пауз в сигнале на небольшое время сбрасываем бит OSCCAL‹0› - этот бит отвечает за наличие сигнала на пине Fosc/4 МК)
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Kern (17.12.2021)
Непрочитано 17.12.2021, 07:06  
Kern
Частый гость
 
Аватар для Kern
 
Регистрация: 05.11.2004
Адрес: Одесса
Сообщений: 47
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 16 сообщении(ях)
Kern на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Спасибо j-Roger, Вы помогли мне разобраться "как это работает".
Оказывается константа, которую считывает PICkit2 перед загрузкой прошивки в МК, пишется в регистр OSCCAL. И это происходит в первых строках прошивки(программы). Но, если мы потом в программе тронули OSCCAL , то считай потёрли всю калибровочную константу. Записали в него байт 0000001, всё...
По сути с регистром OSCCAL можно работать только с нулевым битом, если не хотим затереть константу. А если таки затерли, то смотрим раздел "4.6 OSCCAL Register" и подбором ее восстанавливаем.

Вот и разобрались, почему изменение константы не давало результата, когда при инициализации МК я очищал регистр OSCCAL. Хто-ж его пёса знал, что в нём сидит та константа)))
Kern вне форума  
Непрочитано 17.12.2021, 10:37  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,522
Сказал спасибо: 172
Сказали Спасибо 1,554 раз(а) в 805 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: PIC10F изменить OSCCAL

Сообщение от Kern Посмотреть сообщение
Хто-ж его пёса знал, что в нём сидит та константа)))
В даташите же написано об этом)
realid вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HI TECH - OSCCAL = нерабочие прошивки - ? zxded Песочница (вопросы новичков) 15 29.12.2016 20:15
Ошибка osccal в pic12f629 VASSILIJ PIC 20 04.11.2014 13:04
АОН-Caller ID OPUS, изменить режим работы vib3 Автоматика и аппаратура связи 0 26.11.2010 02:09


Часовой пояс GMT +4, время: 07:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot