Страница 1 из 1
PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 13:42:00
Сем30
Помогите разобраться почему неполучается у меня записать информацию в память контроллера. Часть проги вырезал т.к. надо понять тока как записать 01h в 00h ячейку
Код: Выделить всё
LIST P=PIC12F629
__CONFIG 31C4h
ADCON0 EQU 1Fh
CMCON EQU 19h
GPIO EQU 05h
TRISIO EQU 85h
STATUS EQU 03h
EEADR EQU 1BH
EECON1 EQU 1CH
EECON2 EQU 1Dh
EEDATA EQU 1AH
INTCON EQU 0bh
Q1 EQU 20h
Q2 EQU 21h
ORG 0
start movlw b'00000000'
movwf ADCON0 ;АЦП
movlw b'00000111'
movwf CMCON ;Отключение компаратоа
clrf GPIO
bsf STATUS,5
movlw b'00000010
movwf TRISIO
clrf INTCON
bsf STATUS,5
movlw 00h
movwf EEADR
movlw 01h
movwf EEDATA
bsf EECON1,2
movlw 55h
movwf EECON2
movlw .170
movwf EECON2
bsf EECON1,1
bcf EECON1,4
bcf STATUS,5
nop
end
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 14:03:52
КРАМ
Отформатируйте текст кода в теги "код"
Читать совершенно невозможно.
По существу.
Из чего следует, что запись не порисходит?
По коду.
Любая программа в МК должна быть зациклена.
Директива ассемблера END не является остановом. Она лишь означает завершение листинга трансляции. Эта директива - указание для компилятора.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 14:11:50
Сем30
я в mplab открыл окно с ячейками памяти и наблюдаю что там происходит, после выполнения кода в шаовом режиме информация в ячейках неменяется. Форум убирает пробелы поэтому прикрепил файлик с кодом. Невырезал в начале текста отключение АЦП т.к. его тут нет. Просто игнорируйте эти несколько строчек
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 15:03:09
otest
EEADR, EEDATA находятся в банке 0 . Читаем ДШ.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 15:08:31
Аlex
Форум убирает пробелы
Ничего он не убирает. Вам же сказали - используйте тег
CODE.
По сабжу. В даташит загляните, там есть пример записи в EEPROM.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вс мар 22, 2015 19:39:46
КРАМ
Сем30 писал(а):я в mplab открыл окно с ячейками памяти и наблюдаю что там происходит, после выполнения кода в шаовом режиме информация в ячейках неменяется.
В пошаговом режиме?
Стало быть Вы используете СИМУЛЯТОР, поскольку дебаггера на кристалле у этого МК нет, а хедер с отладчиком у Вас скорее всего отсутствует.
Однако MPLAB SIM не поддерживает симуляцию EEPROM данных.
Даже при наличии отладчика результат записи в EEPROM можно проконтролировать, только ПРИНУДИТЕЛЬНО прочитав ее соответствующей кнопкой на панели управления дебагом в МПЛАБе.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 00:05:31
Albert_V
КРАМ писал(а):Однако MPLAB SIM не поддерживает симуляцию EEPROM данных....
Вы не правы. Поддерживает (по крайней мере, MPLAB v8.92). Только надо помнить о том, что данные изменятся в окне EEPROM (как и сказано в pdf) через 2ms.
Сколько "шагов" в программе для этого необходимо сделать при заданной частоте "Processor Frequency" в окне "Simulator Setting" - посчитать не сложно.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 06:33:52
Smen
Albert_V писал(а):через 2ms
Т.е. время записи в ячейку EEPROM, во время которого надо запрещать всяческое с ней общение, а по окончании, это общение разрешать.
Т.е. в программе надо либо организовывать циклическое чтение флага прерывания EEPROM, либо разрешать это самое прерывание, и уже "разблокировку" производить в нём.
Следовательно, если программа организована правильно, всегда можно найти точку, где данные в EEPROM обновятся.

Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 15:19:09
Сем30
Вот подредактировал програмку её цель записать в ячейку EEPROM 01h информацию 55h и потом скопировать информацию из ячейки EEPROM 01h в ОЗУ в ячейку 21h все наглядно сделал. Процедуру записи взял из даташита, все равно не работает запись!!!
Если даже если предположить что PLAB SIM неотображает содержимое EEPROM то на этот случай сделал копирование ячейки в озу.
Прикрепил даташит от PIC12F629
Конфигурация:
Калибровка сброса по снижению питания & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF_&_BODEN_OFF
Код: Выделить всё
LIST P=PIC12F629
__CONFIG 191h
ADCON0 EQU 1Fh
CMCON EQU 19h
GPIO EQU 05h
TRISIO EQU 85h
STATUS EQU 03h
EEADR EQU 9Bh
EECON1 EQU 9Ch
EECON2 EQU 9Dh
EEDATA EQU 9Ah
INTCON EQU 0Bh
Q1 EQU 20h
Q2 EQU 21h
ORG 0
;Подготовка контроллера
start movlw b'00000111'
movwf CMCON ;Отключение компаратоа
clrf GPIO
bsf STATUS,5
movlw b'00000010
movwf TRISIO
;Процедура записи в EPROM
bsf STATUS,5;Переход в банк 1
movlw 01h
movwf EEADR ;Запись в регистр адреса ячейки EPROM 01h
movlw 55h
movwf EEDATA ;Запись в регистр информации ячейки EPROM
bsf EECON1,2
bcf INTCON,7
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,1
bcf STATUS,5
;запись в Q1 и Q2 данных из EEPROM
movlw 0h
movwf EEADR
bsf EECON1,0
movf EEDATA,W
bcf STATUS,5
movwf Q1
bsf STATUS,5
movlw 01h
movwf EEADR
bsf EECON1,0
movf EEDATA,W
bcf STATUS,5
movwf Q2
b2 nop
goto b2
end
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 15:35:39
Albert_V
Для начала, вы можете написать "шапку" программы в таком виде или предлагаете расшифровывать __CONFIG 31C4h???
Код: Выделить всё
;PIC12F629
include <C:\Program Files (x86)\Microchip\MPASM Suite\P12F629.INC>
;
LIST P=PIC12F629
;
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF
/Это был пример/
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 15:40:25
Аlex
Прикрепил даташит от PIC12F629
Вы бы лучше его почитали.
А ещё почитали бы, что Вам написали выше, и вникли бы в посты.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 16:06:22
Albert_V
Сем30 писал(а):Прикрепил даташит от PIC12F629

Так это документация не с официального сайта Microchip
/Возможно, там нет ошибок, но проверять это - нет желания...../
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 16:09:31
Сем30
Программистов контроллеров тут много, напишите код на 12f629 который способен записать в память что ни буть и работал в MP LAB 8.92. Мне большего и не надо ничего.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 16:21:42
Albert_V
Почти в каждой ветке форума говорят что надо вначале читать документацию а потом спрашивать.
Нет, постоянно кто-то хочет доказать что напишет программу на ASM
не читая pdf...
Изучайте. Ваш текст программы. Запись числа 55h в EEPROM по адресу 01h.

Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Пн мар 23, 2015 16:54:59
Аlex
напишите код на 12f629 который способен записать в память что ни буть и работал
Вы его уже написали и выложили сюда. Только вот люди, несколькими постами выше Вашего, видимо напрасно распинались, объясняя почему Вы не видите записи данных.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вт мар 24, 2015 08:36:58
BOB51
Маахоонький вопросец...
А каким образом было определено, что запись не выполнена?

Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вт мар 24, 2015 10:12:21
КРАМ
BOB51 писал(а):Маахоонький вопросец...
Автор желает увидеть изменение в Data EEPROM MPLAB SIM.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Вт мар 24, 2015 15:10:03
Сем30
Всем спасибо! Разобрался. Все оказалось все же во времени записи, ждал недостаточно долго и все изза того что в SIM стояла частота контроллера 20Мгц, а мне надо 4 Мгц. Как только изменил этот парамерт программа заработала.
Re: PIC12f629 запись данных в EPROM контроллера
Добавлено: Чт мар 26, 2015 06:51:02
Smen
Сем30 писал(а):Разобрался
Cудя по последнему посту, не похоже.