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

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

Добавлено: Ср май 05, 2010 19:04:18
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.

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

Добавлено: Ср май 05, 2010 23:28:55
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. И еще, изучение кристалла всегда начинается с чтения даташита на него.

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

Добавлено: Пт май 07, 2010 14:33:24
Serjone
uldemir писал(а):Неисправен программатор или включена защита кристалла.

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

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

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

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

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

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

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

Отдельное спасибо натуральной блондинке Насте, информация очень пригодилась.

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

Добавлено: Вт май 11, 2010 16:17:20
MisterDi
PicKit2 - очень стоящая вещь. Окупает себя на втором , если не на первом завершенном проекте. Если опыта общения с железом мало, то это оптимальный вариант. Чтобы компилировал на С нужно соответсвующим образом настроить конфигурацию МП-Лаба, в зависимости от используемого компилятора.

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

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

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

Добавлено: Пт янв 07, 2011 17:55:53
otest
а мышка пальцы и GOOGLE есть?

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

Добавлено: Пт янв 07, 2011 18:14:53
totosha
Лазил, но прогеры там паливные кие то.
У половины людей они не работают как надо.(( А здесь может уже знают что и как.

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

Добавлено: Пт янв 07, 2011 18:53:56
BOB51
для бюджета надо иметь компьютер с стандартным LPT иначе - только покупной модуль программатора поможет :)))

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

Добавлено: Пт янв 07, 2011 19:05:16
totosha
То есть вы хотите сказать что мне ради одного проэкта прийдется выкидывать кучу денег??? Что нет других способов??

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

Добавлено: Пт янв 07, 2011 19:21:19
radio-kot
Конечно есть и много.

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

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

Добавлено: Пт янв 07, 2011 19:29:44
totosha
Пояснить почему- сложно, но мне нужен именно прогер. Такой пойдет??
http://www.labkit.ru/html/programmators_shm?id=76

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

Добавлено: Пт янв 07, 2011 20:08:54
otest
Самый простой, надежный и недорогой - заказать письмом микроконтроллер прошитый нужной вам прошивкой

В следующем сообщении он вам подскажет где купить.

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

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


Сомнительное питание Vpp

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

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

Вот простой программатор, которым уже давно пользуюсь: http://www.radiokot.ru/forum/viewtopic.php?p=509794#p509794

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

Добавлено: Пт янв 07, 2011 23:21:20
totosha
Вобше программатор для меня хорош, хотя начинаю задумыватся о более сложных прогерах и более универсальных так что давайте побольше схем, желательно с печатками.

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

Добавлено: Сб янв 08, 2011 00:03:44
otest
totosha писал(а):так что давайте побольше схем, желательно с печатками.

Кончайте засорять форум .
totosha ты сам что без рук и не можеш найти схемы?

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

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

Каким чудом я, использую прошивку из примера, умудрился закрыть контроллер? И как его теперь открыть?

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

Добавлено: Пт июн 17, 2011 20:11:57
Аlex
Этот вопрос уже сто миллионов раз поднимался на форуме(ах).

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

Добавлено: Сб июн 18, 2011 11:51:00
Dmitry Dubrovenko
lumen_xp писал(а):собрал ExtraPIC (полная версия)
"Полная версия", это что подразумевается?
Вот ветка по Экстра-ПИКам всех версий.

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

Добавлено: Сб июн 18, 2011 17:11:30
radio-kot
Лучше упрощенную версию PicKit2 собрать из недорогого набора.