PIC12f629 запись данных в EPROM контроллера

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем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
Вложения
1111.txt
(730 байт) 249 скачиваний
Последний раз редактировалось Аlex Вс мар 22, 2015 15:07:12, всего редактировалось 2 раза.
Причина: CODE
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Отформатируйте текст кода в теги "код"

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

Этот текст написан как код
Читать совершенно невозможно.
По существу.
Из чего следует, что запись не порисходит?
По коду.
Любая программа в МК должна быть зациклена.
Директива ассемблера END не является остановом. Она лишь означает завершение листинга трансляции. Эта директива - указание для компилятора.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

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

Сообщение otest »

EEADR, EEDATA находятся в банке 0 . Читаем ДШ.
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

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

Форум убирает пробелы
Ничего он не убирает. Вам же сказали - используйте тег CODE.

По сабжу. В даташит загляните, там есть пример записи в EEPROM.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Сем30 писал(а):я в mplab открыл окно с ячейками памяти и наблюдаю что там происходит, после выполнения кода в шаовом режиме информация в ячейках неменяется.
В пошаговом режиме?
Стало быть Вы используете СИМУЛЯТОР, поскольку дебаггера на кристалле у этого МК нет, а хедер с отладчиком у Вас скорее всего отсутствует.
Однако MPLAB SIM не поддерживает симуляцию EEPROM данных.
Даже при наличии отладчика результат записи в EEPROM можно проконтролировать, только ПРИНУДИТЕЛЬНО прочитав ее соответствующей кнопкой на панели управления дебагом в МПЛАБе.
Последний раз редактировалось КРАМ Пн мар 23, 2015 07:29:22, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

КРАМ писал(а):Однако MPLAB SIM не поддерживает симуляцию EEPROM данных....
Вы не правы. Поддерживает (по крайней мере, MPLAB v8.92). Только надо помнить о том, что данные изменятся в окне EEPROM (как и сказано в pdf) через 2ms.
Сколько "шагов" в программе для этого необходимо сделать при заданной частоте "Processor Frequency" в окне "Simulator Setting" - посчитать не сложно.
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Сообщение Smen »

Albert_V писал(а):через 2ms
Т.е. время записи в ячейку EEPROM, во время которого надо запрещать всяческое с ней общение, а по окончании, это общение разрешать.
Т.е. в программе надо либо организовывать циклическое чтение флага прерывания EEPROM, либо разрешать это самое прерывание, и уже "разблокировку" производить в нём.
Следовательно, если программа организована правильно, всегда можно найти точку, где данные в EEPROM обновятся. :)
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем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
Вложения
PIC12F629_675.pdf
(1.87 МБ) 274 скачивания
Последний раз редактировалось Сем30 Пн мар 23, 2015 15:53:04, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение 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
/Это был пример/
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

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

Прикрепил даташит от PIC12F629
Вы бы лучше его почитали.
А ещё почитали бы, что Вам написали выше, и вникли бы в посты.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Сем30 писал(а):Прикрепил даташит от PIC12F629
:facepalm: :facepalm: Так это документация не с официального сайта Microchip :facepalm: :facepalm:
/Возможно, там нет ошибок, но проверять это - нет желания...../
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Программистов контроллеров тут много, напишите код на 12f629 который способен записать в память что ни буть и работал в MP LAB 8.92. Мне большего и не надо ничего.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Почти в каждой ветке форума говорят что надо вначале читать документацию а потом спрашивать.
Нет, постоянно кто-то хочет доказать что напишет программу на ASM не читая pdf...
Изучайте. Ваш текст программы. Запись числа 55h в EEPROM по адресу 01h.
Изображение
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

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

напишите код на 12f629 который способен записать в память что ни буть и работал
Вы его уже написали и выложили сюда. Только вот люди, несколькими постами выше Вашего, видимо напрасно распинались, объясняя почему Вы не видите записи данных.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15602
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Маахоонький вопросец...
А каким образом было определено, что запись не выполнена?
8)
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

BOB51 писал(а):Маахоонький вопросец...
Автор желает увидеть изменение в Data EEPROM MPLAB SIM.
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Сообщение Сем30 »

Всем спасибо! Разобрался. Все оказалось все же во времени записи, ждал недостаточно долго и все изза того что в SIM стояла частота контроллера 20Мгц, а мне надо 4 Мгц. Как только изменил этот парамерт программа заработала.
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Сообщение Smen »

Сем30 писал(а):Разобрался
Cудя по последнему посту, не похоже.
Ответить

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