Программирование PIC12F675 для чайников (вопросы)

Поклонники продукции Microchip Technology Inc тусуются тут.
Serjone
Родился
Сообщения: 4
Зарегистрирован: Ср май 05, 2010 15:44:59

Программирование PIC12F675 для чайников (вопросы)

Сообщение Serjone »

Здравствуйте!
Недавно решил освоить для себя новую область - микроконтроллеры. Раньше остерегался этой темы, но всё-таки захотелось изучить.
Поискал варианты программаторов, наткнулся на простейшую конструкцию на котроллере - светодиодная моргалка. Сложность пайки светодиода к контроллеру практически никакая, и я взялся повторить схему.
Контроллер PIC12F675 купил в магазине, детали для программатора брать не стал - предположил, что найти в моих разборках не проблема. Пока искал детали, нашел программатор для SIM с возможностью программирования пиков. Схема программатора примерно такая

Для прошивки использовал IC-PROG 1.05D - на виндовс 7 запустилась с ошибкой privileged instruction. Поменял в настройках работу с ком портом на виндовс апи.
На форумах прочитал о том, что нужно сохранить калибровочную константу, и собственно, подсоединив пик к программатору попытался его считать. Получил все нули.
Как ни пытался, считать с него не удалось. С WinPic аналогичная ситуация - не считывает.

Делать нечего, взял хекс файл с сайта, открыл винпиком, нажал прошить, программатор заморгал, программа руганулась на проблему считывания калибровочной константы и всё.
Нажал опять "прочитать прошивку", программатор почитал что-то и всёравно вернул нули, т.е. ситуация после попытки прошить не изменилась.

На всякий случай припаял светодиод по схеме, подключил питание, и (чудо!?) он заморгал.
Значит на запись всё-таки программатор сработал, на чтение нет.
С чтением не стал больше разбираться, взялся за програмную часть - усовершенствовать программу так, чтобы светодиот моргал с другой частотой.
На этом пункте и встал. Почитал немного про пиковский ассемблер, запустил MPLAB 8.50 и обнаружил там ничего понятного. Кроме текстового редактора, никакими функциями воспользоваться не удалось.
Читал, что им можно дизассемблировать уже готовую прошивку (что и собирался сделать), как её там открыть так и не понял. Как запускать и тестировать уже написанные программы тоже не нашел.

Далее. PIC SIMULATOR IDE.
Открыл в нём хекс файл, запустил на выполнение. Нога, на которую подключен светодиот получает высокий уровень и остаётся так не моргая. Сильно разбираться в дизассеблированной программе не стал, ибо мало что еще понимаю в ней.

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

На дворе глубокая ночь, чтение интернета и мануалов результатов не приносит после дневного перегруза пиками. Посему, оставляю возникшие вопросы профессионалам, в надежде утром на свежую голову прочитать что-нибудь, избавляющее от танцев с бубном вокруг компиляторов.

1 Почему не читается новый микроконтроллер (PIC12675)?
2 Как открыть hex файл в MPLAB для изменения кода (дизассемблировать и потом обратно собрать хекс)?
3 В чём может быть проблема с протеусом (из вариантов пока только русификатор и седьмая винда)?
4 Чем всё-таки можно просто откомпилировать программу для заливки в контроллер?
5 Поидее, если контроллер не читается, но пишется, можно просто залить новую прошивку поверх старой, верно?
6 Можете ли немного прокоментировать код для мигалки (немного запутался в банках и регистрах, читая пример для одного контроллера и интерптритируя к своему):

Код: Выделить всё

    processor 12F675
    #include <P12F675.INC>
    __config 0x3F84
;   _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF
;   & _INTRC_OSC_NOCLKOUT

; RAM-Variable
LRAM_0x20 equ 0x20
LRAM_0x21 equ 0x21
LRAM_0x22 equ 0x22
LRAM_0x23 equ 0x23

; Program

    Org 0x0000

;   Reset-Vector
    GOTO LADR_0x0028
LADR_0x0001
    CLRF LRAM_0x23
    MOVWF LRAM_0x22
LADR_0x0003
    MOVLW 0xFF           ;   b'11111111'  d'255'
;   Interrupt-Vector
    ADDWF LRAM_0x22,F
    BTFSS STATUS,C
    ADDWF LRAM_0x23,F
    BTFSS STATUS,C
    GOTO LADR_0x0023
    MOVLW 0x03           ;   b'00000011'  d'003'
    MOVWF LRAM_0x21
    MOVLW 0xDF           ;   b'11011111'  d'223'
    CALL LADR_0x000F
    GOTO LADR_0x0003
    CLRF LRAM_0x21
LADR_0x000F
    ADDLW 0xE8           ;   b'11101000'  d'232'
    MOVWF LRAM_0x20
    COMF LRAM_0x21,F
    MOVLW 0xFC           ;   b'11111100'  d'252'
    BTFSS STATUS,C
    GOTO LADR_0x0018
LADR_0x0015
    ADDWF LRAM_0x20,F
    BTFSC STATUS,C
    GOTO LADR_0x0015
LADR_0x0018
    ADDWF LRAM_0x20,F
    NOP
    INCFSZ LRAM_0x21,F
    GOTO LADR_0x0015
    BTFSC LRAM_0x20,0
    GOTO LADR_0x001E
LADR_0x001E
    BTFSS LRAM_0x20,1
    GOTO LADR_0x0022
    NOP
    GOTO LADR_0x0022
LADR_0x0022
    RETURN
LADR_0x0023
    BCF STATUS,IRP
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF STATUS,RP1       ; !!Bank Register-Bank(2/3)-Select
    NOP
    RETURN
LADR_0x0028
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    CLRF ADCON0          ; !!Bank!! ADCON0 - ANSEL
    MOVLW 0x07           ;   b'00000111'  d'007'
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVWF CMCON          ; !!Bank!! CMCON - VRCON
    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
LADR_0x002F
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF GPIO,2           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x7D           ;   b'01111101'  d'125'  "}"
    CALL LADR_0x0001
    BCF GPIO,2           ; !!Bank!! GPIO - TRISIO
    MOVLW 0x7D           ;   b'01111101'  d'125'  "}"
    CALL LADR_0x0001
    GOTO LADR_0x002F
LADR_0x0037
    SLEEP
    GOTO LADR_0x0037

    End


Заранее спасибо.

PS пока писал, нашел хороший дизассемблер в одной из соседних тем - PICDisasm.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7357
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение uldemir »

1 Почему не читается новый микроконтроллер (PIC12675)?

Неисправен программатор или включена защита кристалла. Пока похоже первое вероятнее. Я бы порекомендовал для начала всё же собрать и добиться работы программатора. Приведенная схема мне вызывает сомнение. для старта я бы советовал собрать ExtraPIC или JDM на худой конец.

2 Как открыть hex файл в MPLAB для изменения кода (дизассемблировать и потом обратно собрать хекс)?
Это делать не нужно. Сейчас много где публикуются исходные тексты. Воспользуйтесь таким источником, а не "деньговыжимательным" сайтом. Вот когда станете специалистом - тогда можно становиться хакером и заниматься дизассемблированием.

4 Чем всё-таки можно просто откомпилировать программу для заливки в контроллер?
MPASM. Наличиствует в составе MPLAB. Ходят слухи, что есть сайт http://www.microchip.ru где всё по-русски, если не хотите читать в оригинале на http://www.microchip.com
5 Поидее, если контроллер не читается, но пишется, можно просто залить новую прошивку поверх старой, верно?
По идее, лучше иметь острый нож, чем тупой. Исправный паяльник, чем сгоревший.
6 Можете ли немного прокоментировать код для мигалки (немного запутался в банках и регистрах, читая пример для одного контроллера и интерптритируя к своему):
см. п.2 и п.4
И кристалл прочитать надо. Производитель в этой микросхеме записывает не только константу OSCCAL, но и Bandgap calibration. И еще, изучение кристалла всегда начинается с чтения даташита на него.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Serjone
Родился
Сообщения: 4
Зарегистрирован: Ср май 05, 2010 15:44:59

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение Serjone »

uldemir писал(а):Неисправен программатор или включена защита кристалла.

Да, видимо что-то с программатором. Не разобрался еще.
uldemir писал(а):Я бы порекомендовал для начала всё же собрать и добиться работы программатора

Если доберусь до радиомагазина, куплю детали для простого JDM и попробую прочитать им.
uldemir писал(а):Приведенная схема мне вызывает сомнение. для старта я бы советовал собрать ExtraPIC или JDM на худой конец.

Более точная схема моего программатора находится здесь, покупался давным давно для чтения кодов с сим карт, года три-четыре не использовался. Но прошивает нормально.
uldemir писал(а):MPASM. Наличиствует в составе MPLAB.

Спасибо, разобрался-таки как скомпилировать проект, сделал более продвинутую мигалку из исходников :)))
uldemir писал(а):Производитель в этой микросхеме записывает не только константу OSCCAL, но и Bandgap calibration.

Это мой первый пик. Купил именно такой потомучто нашел схему с одним светодиодом для него. Не очень удобный - в магазине остались только для поверхностного монтажа. Для экспериментов хватит, дальше буду брать соответственно задачам.

Подумываю заказать себе PICKit2, или собрать что-нибудь своими руками. Хотя со вторым вариантом пока туго. Хоть электроникой интересуюсь с шестого класса, всегда боялся собирать что-то более двух транзисторов... Самое мощное в те времена собирал мультивибратор двухтранзисторный.
Пугает в основном отсутвие опыта, знаний по теме и необходимых материалов. Печатную плату травил раз или два в жизни, получилось очень страшно.
Потихоньку с нуля, медленными шагами, приду к чему-нибудь. Пока энтузиазм есть (заметил, что весной в апреле-мае оно особо просыпается уже который год) лучше им пользоваться.

Тем временем разобрался с протеусом. Видимо не идёт на windows 7 x64. На эмуляторе с XP и на другом компьютере с windows 7 x86 работает нормально.
MPLAB тоже работает частично. На сях не компилирует. Ассемблер пошел нормально.

Отдельное спасибо натуральной блондинке Насте, информация очень пригодилась.
MisterDi
Встал на лапы
Сообщения: 85
Зарегистрирован: Сб мар 13, 2010 13:52:10

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение MisterDi »

PicKit2 - очень стоящая вещь. Окупает себя на втором , если не на первом завершенном проекте. Если опыта общения с железом мало, то это оптимальный вариант. Чтобы компилировал на С нужно соответсвующим образом настроить конфигурацию МП-Лаба, в зависимости от используемого компилятора.
misterdi<@>i.ua
totosha
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Пт авг 27, 2010 14:37:23

Помогите с прошивкой контроллера

Сообщение totosha »

Здравствуйте вот, столкнулся с проблемкой: в результате моей деятельности потребовалось прошить pic12f675, не подскажите что то простенькое для его прошивки т.к. пока нету ни финансов, ни сил на воплошение в жизнь программаторов типа екстрапика. Помогите новичку в контроллерах, заранее спасибо.
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Помогите с прошивкой контроллера

Сообщение otest »

а мышка пальцы и GOOGLE есть?
totosha
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Пт авг 27, 2010 14:37:23

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение totosha »

Лазил, но прогеры там паливные кие то.
У половины людей они не работают как надо.(( А здесь может уже знают что и как.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение BOB51 »

для бюджета надо иметь компьютер с стандартным LPT иначе - только покупной модуль программатора поможет :)))
totosha
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Пт авг 27, 2010 14:37:23

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение totosha »

То есть вы хотите сказать что мне ради одного проэкта прийдется выкидывать кучу денег??? Что нет других способов??
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение radio-kot »

Конечно есть и много.

Самый простой, надежный и недорогой - заказать письмом микроконтроллер прошитый нужной вам прошивкой.
Будете проходить мимо- проходите!
totosha
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Пт авг 27, 2010 14:37:23

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение totosha »

Пояснить почему- сложно, но мне нужен именно прогер. Такой пойдет??
http://www.labkit.ru/html/programmators_shm?id=76
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение otest »

Самый простой, надежный и недорогой - заказать письмом микроконтроллер прошитый нужной вам прошивкой

В следующем сообщении он вам подскажет где купить.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение radio-kot »

totosha писал(а):Пояснить почему- сложно, но мне нужен именно прогер. Такой пойдет??
http://www.labkit.ru/html/programmators_shm?id=76


Сомнительное питание Vpp
Будете проходить мимо- проходите!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Помогите с прошивкой контроллера

Сообщение Soir »

totosha писал(а):Здравствуйте вот, столкнулся с проблемкой: в результате моей деятельности потребовалось прошить pic12f675, не подскажите что то простенькое для его прошивки т.к. пока нету ни финансов, ни сил на воплошение в жизнь программаторов типа екстрапика. Помогите новичку в контроллерах, заранее спасибо.

Вот простой программатор, которым уже давно пользуюсь: http://www.radiokot.ru/forum/viewtopic.php?p=509794#p509794
totosha
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Пт авг 27, 2010 14:37:23

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение totosha »

Вобше программатор для меня хорош, хотя начинаю задумыватся о более сложных прогерах и более универсальных так что давайте побольше схем, желательно с печатками.
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение otest »

totosha писал(а):так что давайте побольше схем, желательно с печатками.

Кончайте засорять форум .
totosha ты сам что без рук и не можеш найти схемы?
lumen_xp
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Сб июн 11, 2011 12:54:23

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение lumen_xp »

Ну собственно собрал ExtraPIC (полная версия). Сделал отладочную плату. Скомпилировал в MPLAB+CCS прошивку. WinPIC прошил все отлично и при изменении времени задержки и новой загрузке hex все было отлично. Но в один прекрасный момент программа перестала читать контроллер, т.е. не видит его прошивку. Очистить прошивку не получилось. Программатор+PIC не проходит аппаратный тест в WinPIC800. Отдельно программатор видится отлично.

Каким чудом я, использую прошивку из примера, умудрился закрыть контроллер? И как его теперь открыть?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение Аlex »

Этот вопрос уже сто миллионов раз поднимался на форуме(ах).
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2349
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение Dmitry Dubrovenko »

lumen_xp писал(а):собрал ExtraPIC (полная версия)
"Полная версия", это что подразумевается?
Вот ветка по Экстра-ПИКам всех версий.
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Программирование PIC12F675 для чайников (вопросы)

Сообщение radio-kot »

Лучше упрощенную версию PicKit2 собрать из недорогого набора.
Будете проходить мимо- проходите!
Закрыто

Вернуться в «PIC»