РАДИОСХЕМЫ



СТАРЫЙ ФОРУМ

ФОРУМ НА ЭЛВО

РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ
  • БЛОГИ
  • НОВОЕ
  • СХЕМЫ
  • РАЗНОЕ
  • ТЕОРИЯ
  • ТЕЛЕВИДЕО
  • СВЕТОДИОД
  • МЕДТЕХНИКА
  • БЫТТЕХНИКА
  • ИЗМЕРИТЕЛИ
  • СПРАВОЧНИК
  • ТЕХНОЛОГИИ
  • РЕМОНТ СХЕМ
  • МОБИЛЬНИКИ
  • КОМПЬЮТЕРЫ
  • НАЧИНАЮЩИМ
  • ЗАРЯДКИ И АКБ
  • СИГНАЛИЗАЦИИ
  • АУДИОТЕХНИКА
  • АВТОВЕЛОМОТО
  • БЛОКИ ПИТАНИЯ
  • РАДИОПРИЁМНИКИ
  • МЕТАЛЛОИСКАТЕЛИ
  • МИКРОКОНТРОЛЛЕР
  • РАДИОПЕРЕДАТЧИКИ

  • Курс по ускорению работы Мозга на 100%


    • Страница 1 из 1
    • 1
    Архив - только для чтения
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Восстановление калибровочной константы PIC12f629/675
    Восстановление калибровочной константы PIC12f629/675
    Вт, 10.06.2014, 12:59 | Сообщение # 1        
    SssaHeKkk
    аватар
      Постов: 2291   Друзья 
    Микроконтроллеры PIC12F629 и PIC12F675 имеют внутренний генератор 4 МГц, что позволяет работать им без внешнего кварцевого резонатора или RC-цепи. Это освобождает один или два контакта для использования их в качестве ввода/вывода и позволяет устройству иметь в конструкции минимальное количество компонентов.

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

    Проблемы возникают если случайно значение по адресу 0x3FF стирается при программировании микроконтроллера. После калибровки значение является уникальным для каждого отдельного микроконтроллера, нет никакого способа узнать какое оно было, но можно восстановить его путем сравнивая с известной частотой.

    Для этого создана эта программа и схема. Загрузите в микроконтроллер код, который находится в архиве и поместите его в устройство описанное ниже, и в течение нескольких секунд Вы получите новое значение калибровки для работы внутреннего генератора частотой 4 МГц и точностью 1%.

    Как это работает

    Для калибровки внутреннего генератора требуется опорная частота. К счастью, нам не нужны генераторы сигналов или другое измерительное оборудование. На самом деле точный сигнал можно получить из электрической сети переменного тока. В большинстве частей мира поставки электроэнергии производится на частоте 50 или 60 Гц (многие цифровые часы пользуются этим, чтобы сохранить точность хода). Используя практически любой трансформатор с выходным напряжением от 6 до 12 вольт переменного тока можно получить точный источник для калибровки генератора микроконтроллера.

    Частота внутреннего генератора микроконтроллера зависит от изменения температуры и напряжения питания. При увеличении напряжение питания частота немного уменьшается. Когда выключатель S1 разомкнут напряжение 5 Вольт подается через два диода, в итоге около 3,4 Вольт поступает на контроллер. Если S1 замкнут, то контроллер работает от 5 Вольт. Microchip калибрует партии при 3,5 Вольт и температуре 25°C. В этой схеме есть возможность калибровки при напряжении 3,4 Вольт и 5 Вольт, но желательно откалибровать контроллер с разомкнутым S1 (3,4 Вольт).

    S1 разомкнут - калибровка происходит при 3,4 Вольт

    S1 замкнут - калибровка происходит при 5 Вольт

    S1 не является выключателем питания

    Два 1N4148 диода обеспечивают падение напряжения, резистор 150R обеспечивает стабильное напряжение на диодах. 100nF фильтрующий конденсатор должен быть размещен как можно ближе к выводам контроллера(1 и 8).

    Сигнал опорной частоты подается в контроллер с использованием транзистора BC548, резистора 10K, диода 1N4148 и трансформатора. Можно использовать любой NPN транзистор, характеристики его не являются критическими. Трансформатор также можно использовать любой, но с выходным напряжением в пределах от 6 до 12 Вольт переменного тока.

    Важно, подавать на вход транзистора только сигнал переменного тока. Не использовать постоянный ток, даже без фильтрующего конденсатора.

    ПРИ РАБОТЕ С ВЫСОКИМ НАПРЯЖЕНИЕМ СОБЛЮДАЙТЕ ТЕХНИКУ БЕЗОПАСНОСТИ!

    Код для калибровки

    Далее необходимо запрограммировать микроконтроллер кодом, который находится в архиве под именем "recal1.hex". Код будет работать и с PIC12F629 и 12F675. Загрузите этот код перед началом операции калибровки.

    После того как Вы успешно выполнили калибровку микроконтроллера и считали новое значение калибровки можно перепрограммировать контроллер используя свой код. Это программное обеспечение необходимо только для расчета нового значения калибровки, и не должно оставаться в памяти микроконтроллера потом. (Кто-то спросит поверьте!)

    Запуск калибровки

    1. Установить перемычку J1, если частота электросети в вашем районе равна 60 Гц и снять прермычку если частота 50 Гц. Убедитесь в правильности установки перемычки J1, т.к. это влияет на правильность калибровки.

    J1 снята - частота питания сети 50Гц
    J1 установлена - частота питания сети 60Гц

    2. Сигнал переменного тока должен присутствовать перед включением питания микроконтроллера при калибровке, необходимо обеспечить стабильный сигнал должного уровня.

    3. Вставьте микроконтроллер в панельку, разомкнуть переключатель S1 и тем самым подать напряжение 3.4 Вольт.

    4. Когда микроконтроллер запустится светодиоды мигнут один раз.

    5. Если сигнал опорной частоты не будет обнаружен на GP2 (вывод 5) загорится красный светодиод "Ошибка" и будет мигать зеленый светодиод "Завершено". (Если это произойдет, выключите питание схемы и убедитесь в правильности подключения)

    6. Во время процесса калибровки оба светодиода выключены. Калибровка займет менее 5 секунд.

    7. Если калибровка завершилась неудачно загорится красный светодиод "Ошибка", и выполнение программы будет остановлено.

    8. Если калибровка завершилась успешно загорится зеленый светодиод "Завершено" и на GPIO1 появится тестовый сигнал частотой 5 кHz. Если у вас есть частотомер, то можно проверить правильность калибровки.

    9. После завершения калибровки, Вы можете включать/выключать переключатель S1 и следить за тестовым сигналом, чтобы увидеть изменения частоты сигнала по сравнению с напряжением питания.

    10. Выключите питание схемы, удалите микроконтроллер из панельки и подключите его к программатору. Далее прочитайте данные микроконтроллера и проверьте содержимое памяти EEPROM

    Когда Вы считаете EEPROM там должны быть одно из трех пар значений по адресам 0x00 и 0x01: Назначение индикаторов

    Если в EEPROM по адресам 0x00 и 0x01 содержит 0xFF, то программа отработала неправильно.

    Если в EEPROM по адресам 0x00 и 0x01 содержит 0x00, то программа не смогла установить калибровочное слово правильно (горел красный светодиод "Ошибка"). Убедитесь, что сигнал опорной частоты имеет правильное значение, J1 установлена правильно и повторите попытку.

    Если в EEPROM адрес 0x00 содержит значение 0x34 и адрес 0x01 содержит 0xNN, где NN является новым значением калибровки, то программа завершилась успешно (горел зеленый светодиод "Завершено") и OSCCAL был правильно откалиброван. Используйте значение 0xNN по адресу 0x01 для калибровки памяти.

    Измененная версия прошивки

    Некоторые программаторы или программное обеспечение повышают сигнал VDD перед включеним VPP. Это позволяет начать работу программе до того когда микроконтроллер войдет в режим программирования предварительно считав EEPROM. Если зеленый светодиод указывает на успешное завершение калибровки, а прочитав EEPROM Вы найдете в нем 0xFF по адресам 0x00 и 0x01, то Ваш программатор работает в таком режиме.

    Если у Вас возникла эта проблема, Вы можете скачать модифицированную версию оригинальной программы, которая находится в архиве под именем "recal2.hex". Эта версия не производит инициализацию EEPROM при запуске, так что данные калибровки не очищаютя, когда программатор считывает данные из микроконтроллера. Используйте эту прошивку только тогда когда возникает такая проблема.

    Использование нового значения калибровки

    ВАЖНО: Эта схема/программа только рассчитывает правильное значение калибровки и не может сохранить его обратно в память контроллера - Вы должны сделать это вручную с помощью программатора.

    Если Вы хотите проверить калибровочную константу микроконтроллера, зная заводское значение, востановленное этой схемой значение калибровки может незначительно отличаться от заводского. Это нормально, так как есть различия в напряжении питания и температуре. Вы можете проверить значение тестового сигнала на GP1 с помощью частотомера после завершения калибровки, эта частота должна быть в пределах 1% от 5 кГц.

    Если калибровка прошла успешно, удалите микроконтроллер и подключите его к программатору. Считайте данные из памяти EEPROM контроллера (это не память программ), где только что вычисленное значение было сохранено.
    Файлы: 1999583.gif (10.4 Kb) · 8420785.gif (18.8 Kb) · 386.rar (25.9 Kb)
    Вт, 10.06.2014, 22:28 | Сообщение # 2        
    ur5rnp
    аватар
      Постов: 1455   Друзья 
    SssaHeKkk, делал???
    Вт, 10.06.2014, 22:31 | Сообщение # 3        
    SssaHeKkk
    аватар
      Постов: 2291   Друзья 
    ur5rnp, да делал...PICkit programmer ругался постоянно на эту константу...потом восстановил...и все его начало устраивать...в железе не проверял
    Ср, 11.06.2014, 23:18 | Сообщение # 4        
    Rambo0002
    аватар
      Постов: 35   ОК 
    Цитата SssaHeKkk ()
    ur5rnp, да делал...PICkit programmer ругался постоянно на эту константу...потом восстановил...и все его начало устраивать...в железе не проверял


    У меня скорее всего то же, но в моем случае, там скорее всего я убил что-то внутри самого PIC12F675 в одной из конструкций (замкнул что-то случайно), не могу восстановить константу c помощью PICkit2 programmer (менял константу, которую предлагал PICkit2 programmer без толку), он шьется, потом через какое-то время ругается на эту константу в железе после прошивки не работает, так как вн тактовый генератор контроллера не запускается, потому решил собрать этот программатор для восстановления этой константы.

    Печатная плата:
    Файлы: osscal_dlja_12f.zip (4.2 Kb)
    Чт, 12.06.2014, 02:03 | Сообщение # 5        
    SssaHeKkk
    аватар
      Постов: 2291   Друзья 
    Rambo0002, у меня тоже PICkit2 programmer не смог восстановить...писал что все збс а по факту константа оставалась прежней (я после затирки от балды ввел значение)...пришлось собрать эту приблуду
    Чт, 12.06.2014, 02:31 | Сообщение # 6        
    Rambo0002
    аватар
      Постов: 35   ОК 
    Цитата SssaHeKkk ()
    Rambo0002, у меня тоже PICkit2 programmer не смог восстановить...писал что все збс а по факту константа оставалась прежней (я после затирки от балды ввел значение)...пришлось собрать эту приблуду


    Спасибо за опыт, а в железе после у тебя заработал пик исправленный это самое главное?
    Пт, 13.06.2014, 13:39 | Сообщение # 7        
    SssaHeKkk
    аватар
      Постов: 2291   Друзья 
    попробую вечером его куда нить засунуть и скажу

    Добавлено (13.06.2014, 14:39)
    ---------------------------------------------
    Rambo0002, да все отлично работает smile

    Пт, 13.06.2014, 13:41 | Сообщение # 8        
    Rambo0002
    аватар
      Постов: 35   ОК 
    Цитата SssaHeKkk ()
    ambo0002, да все отлично работает


    Я рад за тебя хорошо.
    Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Восстановление калибровочной константы PIC12f629/675
    • Страница 1 из 1
    • 1
    Поиск:

    Внимание! Форум переехал на Tehnodium.ru



    © 2010-2022 "Форум Радиосхемы". All Rights Reserved  Почта  PDA