Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 19:22:14

Здарова.
Столкнулся с проблемой, при записи во внешнее EEPROM 25AA040 пишет следующее:
"Page was not written because it is write protected proteus".
Хотя защитный бит для записи притянут к питанию... 6-я стр даташита http://ww1.microchip.com/downloads/en/DeviceDoc/21204E.pdf данные по SPI нормально передаются, о чем свидетельствуют показания дебагера. В чем может быть дело? (Использую PIC18F242).
Изображение

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 19:31:49

Разделы 3.3 и 3.4 документации.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 20:48:55

Albert_V писал(а):Разделы 3.3 и 3.4 документации.

Спасибо, с записью разобрался. Но со чтением беда...
пытаюсь считать данные, которые записаны в еепром, отправляю инструкцию на чтение, отправляю адрес 0x01 на чтение, где у меня лежит 0x05, читаю sspbuf, но там оказывается 0... уже который месяц не могу разобраться с приемом данных по spi, а он и тут нужен. Что делаю не так?
Код:
bcf TRISA,SS   
         
;передача инструкции
movlw 0x03   
MOVWF  SSPBUF
instrycd
clrwdt
BTFSS  SSPSTAT, BF 
GOTO   instrycd

;передача адреса
movlw 0x01
MOVWF  SSPBUF
adrd
clrwdt
BTFSS  SSPSTAT, BF 
GOTO   adrd

   
;прием данных
movff  SSPBUF,0x40 
sdata40 
clrwdt
BTFSS  SSPSTAT, BF
GOTO   sdata40   
   
bsf TRISA,SS

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 20:58:59

Что бы что-то прочитать - надо нечто передать (что бы было тактирование от Master-а по SCK).
Не стесняйтесь читать документацию не только на EEPROM, но и на PIC18F242.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 21:43:18

Albert_V писал(а):Что бы что-то прочитать - надо нечто передать (что бы было тактирование от Master-а по SCK).
Не стесняйтесь читать документацию не только на EEPROM, но и на PIC18F242.

Вот не поверите, читал. Второй месяц читаю, а не получается. Может быть я идиот клинический) И примера там явного с кодом нет =(

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:06:43

Тогда ответьте на вопрос: Какие данные вы считываете из SSPBUF, если у вас нет тактирования для чтения данных из EEPROM?
Может, надо вначале понять что такое Shift Register и посмотреть FIGURE 15-2: SPI MASTER/SLAVE CONNECTION?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:17:19

Albert_V писал(а):Тогда ответьте на вопрос: Какие данные вы считываете из SSPBUF, если у вас нет тактирования для чтения данных из EEPROM?

Никакие значит.
Можете объяснить, как мне читать тогда их?
movf 0xXX,W
movwf SSPBUF
это я что-то передаю, а дальше чтоли?
movff sspbuf,0xXX

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:21:02

Ага.
После заказа чтения, передаёте что угодно (я, обычно, "швыряю" 00h) и по окончании передачи читаете SSPBUF.
----
P.S.
На мой взгляд, удобнее работать по прерыванию от MSSP.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:37:37

Albert_V писал(а):Ага.
После заказа чтения, передаёте что угодно (я, обычно, "швыряю" 00h) и по окончании передачи читаете SSPBUF.
----
P.S.
На мой взгляд, удобнее работать по прерыванию от MSSP.

не пашет(
Код:
bcf TRISA,SS            
;передача инструкции
movlw 0x03   
MOVWF  SSPBUF
instrycd
clrwdt
BTFSS  SSPSTAT, BF 
GOTO   instrycd
;передача адреса
movlw 0x01
MOVWF  SSPBUF
adrd
clrwdt
BTFSS  SSPSTAT, BF 
GOTO   adrd

   
;прием данных
movlw 00h
movwf  SSPBUF
movff  SSPBUF,0x40 
sdata40 
clrwdt
BTFSS  SSPSTAT, BF
GOTO   sdata40

   
bsf TRISA,SS   

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:39:45

Я специально подчеркнул условие для чтения SSPBUF.
Вы же, пытаетесь считать данные до их получения....

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:42:53

Albert_V писал(а):Я специально подчеркнул условие для чтения SSPBUF.
Вы же, пытаетесь считать данные до их получения....

так тоже не пашет(
Код:
;прием данных
movlw 00h
movwf  SSPBUF
sdata40 
clrwdt
BTFSS  SSPSTAT, BF
GOTO   sdata40
movff  SSPBUF,0x40

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:45:51

Если будете работать по прерыванию от MSSP - всё получится.
Неужели сложно разобраться в FIGURE 15-3?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:54:53

Albert_V писал(а):Если будете работать по прерыванию от MSSP - всё получится.
Неужели сложно разобраться в FIGURE 15-3?

Она никакой информации по тому, как принять данные не дает. Только как они отправляются. Так а чего не работает подобный метод, а нужно через прерывания?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 22:58:28

kotbaris1 писал(а): чего не работает подобный метод, а нужно через прерывания?

Что-то ещё является признаком окончания передачи байта кроме SSPIF?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:02:47

На этот камень есть даже Русский перевод даташита, в котором всё расписано/разжёвано вдоль и поперёк.
Какие могут тут появляться вопросы....

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:03:57

Albert_V писал(а):
kotbaris1 писал(а): чего не работает подобный метод, а нужно через прерывания?

Что-то ещё является признаком окончания передачи байта кроме SSPIF?

По даташиту он отвечает только за то, что выполнено условие прерывания если в 1.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:07:43

По даташиту, на FIGURE 15-3, указано когда поднимается SSPIF и когда происходит запись SSPSR to SSPBUF.
Что ещё нужно?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:37:08

Albert_V писал(а):По даташиту, на FIGURE 15-3, указано когда поднимается SSPIF и когда происходит запись SSPSR to SSPBUF.
Что ещё нужно?

Ничего, но это не мешает тому, что у меня второй месяц это не пашет.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:38:50

kotbaris1 писал(а):это не мешает тому, что у меня второй месяц это не пашет.

А у меня работает (по SSPIF).
У кого из нас ошибка?

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Чт апр 20, 2017 23:48:29

Albert_V писал(а):
kotbaris1 писал(а):это не мешает тому, что у меня второй месяц это не пашет.

А у меня работает (по SSPIF).
У кого из нас ошибка?

Так ясно что у меня))
Можете пример кода показать?
Ответить