Страница 1 из 3

Можно ли не перекомпилируя прошивку изменить конфигурацию?

Добавлено: Сб сен 20, 2014 08:25:27
Bear2011
Уважаемые коты, специалисты по PIC
Можно ли не перекомпилируя прошивку изменить конфигурацию?

Предыстория вопроса такова. В нашем городе намечается праздник и по закону подлости случился перепад напряжения от которого погорели ВСЕ автоматы световых эффектов на полщади. :kill: Микросхема кЕтайского автомата без названия но судя по подключению это PIC16F628 (A). Времени разбираться практически нет - в понедельник все должно работать!!!
Я нашел в интернете схему которую можно использовать
Изображение

По ногам все совпадает, прошивай и вставляй. Вот только в моем контроллере используется генератор на внешнем резисторе (ER) - переменник на RA7 (16 нога) а в том что нашел внутренний генератор без возможности менять скорость переключения эффектов. А скорость менять очень желательно :dont_know:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Сб сен 20, 2014 09:10:33
otest
Можно ли не перекомпилируя прошивку изменить конфигурацию?
Можно

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Сб сен 20, 2014 09:11:42
pyzhman
Блочок от китайской гирлянды прикрутить.
По вопросу - да, биты конфигурации и программа независимы друг от друга в плане заливки.

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Сб сен 20, 2014 09:19:52
Bear2011
pyzhman

Думал над этим только где же сейчас найдешь несколько одинаковых гирлянд? :dont_know: До Нового Года далековато однако :) А нужно чтобы все моргало более-менее синхронно. Для этого и желателен регулятор скорости :)

Ладно буду пробовать в "железе". В Proteuse эмулировал - вроде бы работает

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Сб сен 20, 2014 15:32:23
BOB51
Есть готовое зло на тиньке, токмо сам эфект рисовать надо...
http://radiokot.ru/cherdak/03/
весьма стабильно работает и тиражируется...
:roll:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Сб сен 20, 2014 15:38:43
Bear2011
BOB51

Дык и по ногам не совпадает (печатку делать новую, а времени нет и эффекты самому писать) :dont_know:

Я про это и говорю подправить даже не прошивку, а конфигурацию. Так-то вот есть схема и прошивка заливай да вставляй. Моргать будут

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Вс сен 21, 2014 08:36:55
BOB51
По исходнику - конфигурация отдельной строчкой в верхней части заголовка идет.
В программаторе - страничка с фузами.
Только вот программы, как я понимаю, совсем разные - проще припаять внешний резистор...
В системе с фиксированной частотой (только фузы типа генератора) будет установлена тактовая 4мГц при одной команде в 0,000001 секунду. А вот подойдет такое для Вашего с внешним резюком...
Поробуйте - мож и получится "в лоб" проблемку решить - у icprog/winpic800 соответствующая вкладка...
Но ... а ежли ТЕРМОРЕЗИСТОР или чего подобного впихнуть... :roll:
Одначе ... для пробы... ежли это icprog - после считывания исходного файла с компа поставь в окошке "осциллятор" вместо RC GP4 (такое у Вашего варианта должно быть) intOSC GP4.
ежли winpic800 - флажки на вкладке settings (с аналогичными подписями).
И не забывать, что у каждого МК своя калибровочная константа, дабы ее случайно не затереть...
плюс маахонькая добавка в исходнике...
("...
9.2.5 Внутренний RC генератор 4МГц
Внутренний тактовый генератор формирует тактовый сигнал с частотой 4МГц (номинальное значение). Графики
зависимости частоты внутреннего RC генератора от температуры и напряжения питания смотрите в разделе 12.

9.2.5.1 Калибровка внутреннего RC генератора
В последней ячейки памяти программ сохраняется калибровочная константа для внутреннего RC генератора.
Калибровочная константа сохраняется в виде команды RETLW XX, где XX - калибровочное значение. Калибровочная
константа записывается в регистр OSCCAL. В примере 9-1 показано выполнение калибровки внутреннего RC
генератора.

Примечание. Стирание памяти микроконтроллера также сотрет предварительно запрограммированную
калибровочную информацию. Для сохранения калибровочной информации ее рекомендуется прочитать перед
стиранием памяти микроконтроллера. Калибровочная информация должна быть восстановлена перед
программированием микроконтроллера.

Пример 9-1. Калибровка внутреннего RC генератора

BSF STATUS, RP0 ; Банк 1
CALL 3FFh ; Загрузить калибровочную константу
MOVWF OSCCAL
BCF STATUS, R P0 ; Банк0
...
")
а вот типовая строчка конфигурации в исходнике:
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
Вот как-то так... :dont_know:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Вс сен 21, 2014 09:27:44
Bear2011
BOB51

Спасибо за развернутое пояснение

Я в принципе переделал строку конфигурации

__CONFIG _CP_OFF & _DATA_CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _WDT_OFF

Перекомпилировал. В Proteuse вроде работает. Озадачил шефа еще вчера жду PIC'и

У меня еще вопрос между минусом выского напряжения (выпрямленное 220) и минусом питания контроллера стоит конденсатор 22пф. Его просто разорвало. Нафига он нужен?

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Вс сен 21, 2014 15:23:31
BOB51
22пика... мож какая помеходавилка? или варистор новомодный? - глянуть бы на полную схему...
:dont_know:
А про _INTRC_OSC_NOCLKOUT забыли ? -это как раз и есть внутренний калиброванный RC генератор (я строку с готового проэкта выложил).
Там еще обязательно в самом начале инициализации надо вставить:
"
BSF STATUS, RP0 ; Банк 1
CALL 3FFh ; Загрузить калибровочную константу
MOVWF OSCCAL
BCF STATUS, R P0 ; Банк0
"
чтоб частота точно держалась.
Про опцион "_LVP_OFF" для 629го... в моем мплабе (8.92) такого добра не прописано...
Новая папка.zip
(4.76 КБ) 247 скачиваний
это стандартные заголовчные файлы и файл описания по умолчанию...
Мож там какая-нить "смесь" образовалась... Ассемблер, по карйней мере, такое даже компилировать откажется... :dont_know:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Вс сен 21, 2014 15:28:50
Bear2011
А про _INTRC_OSC_NOCLKOUT забыли ? -это как раз и есть внутренний калиброванный RC генератор (я строку с готового проэкта выложил)
Да нет не забыл. Как раз не могу найти как написать чтобы был внешний R (ER)
Ассемблер, по карйней мере, такое даже компилировать откажется
MPLAB IDE схавал и даже ни одного предупреждения :dont_know: Я же его hex в Proteus подставлял

Вот прикладываю проект полностью. Проект не мой

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Вс сен 21, 2014 18:28:12
otest
В Proteus нет RC генератора.

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 04:54:21
Bear2011
В смысле нет?
Я просто переменник ставил

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 07:41:47
otest
Можеш ставить что угодно. Вход МК в протеусе не задействован.

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 08:16:49
Bear2011
Вход МК в протеусе не задействован
Ясно. Жду МК чтобы пробовать в железе

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 10:06:30
BOB51
В P12F629.ini прописаны все варианты конфигурационных фузов:
"
; Configuration Bits
;
;======

_CPD_ON EQU H'3EFF'
_CPD_OFF EQU H'3FFF'
_CP_ON EQU H'3F7F'
_CP_OFF EQU H'3FFF'
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_MCLRE_ON EQU H'3FFF'
_MCLRE_OFF EQU H'3FDF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FEF'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FF7'
_LP_OSC EQU H'3FF8'
_XT_OSC EQU H'3FF9'
_HS_OSC EQU H'3FFA'
_EC_OSC EQU H'3FFB'
_INTRC_OSC_NOCLKOUT EQU H'3FFC'
_INTRC_OSC_CLKOUT EQU H'3FFD'
_EXTRC_OSC_NOCLKOUT EQU H'3FFE'
_EXTRC_OSC_CLKOUT EQU H'3FFF'
"
Выбираем подходящее - для внешнего RC это будет _EXTRC_OSC_NOCLKOUT или _EXTRC_OSC_CLKOUT .
:beer:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 10:12:46
Bear2011
BOB51

Спасибо!!! :beer:

А я не догадался ini файл посмотреть :oops: :facepalm:

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 10:23:45
otest
В P12F629.ini прописаны все варианты
Почему в 629 ? Это прописано для всех МК.
А я не догадался ini файл посмотреть
Не ini , а наверное inc.

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 12:50:49
BOB51
:oops:
Опять очепятка... Старею... :?
Так про те файлы, как и про заголовочные (и где их искать) мало кто из начинающих/редко пользующихся IDE ведает.
Особо где их искать надобно. Там еще *.lkr имеется... Быррр....
8)

!!!! ОЙ-ОЙ !!! :shock:
тот проект, что в архивчике ( light72_Garland_Source ) - он же не для PIC12F628, а для PIC16F628 писан!!! на 629-м работать не должен!!! :facepalm:
а я-то файлики по отношению к 629-му положил... :o
чей-то дообряче "перемкнуло"...
:(

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 13:14:58
Bear2011
он же не для PIC12F628, а для PIC16F628 писан!!! на 629-м работать не должен!!!
Дык мне вообще-то как раз ддя 628 и нужен был. А вот то что Proteus не работает с ER не знал. попробовал вроде частота меняется- похоже видел то что хотел

P.S А наш глав.инж так и не привез контроллеры. Но мне по... Я бумагу отписал что нужны так что есть чем задницу прикрыть. Орал "в понедельник все должно работать!!!". А ты мне привез??? Блин я б за это время че-нить тупое на логике сварганил

Re: Можно ли не перекомпилируя прошивку изменить конфигураци

Добавлено: Пн сен 22, 2014 13:31:02
BOB51
Мне чей-то примерещилось, что 629-й... млин... :oops:
628 может и не привезут - сейчас PIC16F628A - практически для простейшей программки то же самое.
Для них две равноценные опции что _RC_OSC_NOCLKOUT что _ER_OSC_NOCLKOUT , а внутренний калиброванный будет или _INTOSC_OSC_NOCLKOUT или _INTRC_OSC_NOCLKOUT (видимо для совместимости с просто 628 так сделано).
То же может и в шпроте - может моделька относится к примитиву... хоша таким не пользуюсь - обычно симулятора для мплаба и встроенной там опции осциллоскопа по дрыголапкам достаточно (или мкаетку - в рекламных видеоприложениях без реального макета абсолютно никак - многое зависит в субьективности восприятия от конструктива самого экрана и источников света).
:beer: