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

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 19:31:49
Albert_V
Разделы 3.3 и 3.4 документации.
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 20:48:55
kotbaris1
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
Albert_V
Что бы что-то прочитать - надо нечто передать (что бы было тактирование от Master-а по SCK).
Не стесняйтесь читать документацию не только на EEPROM, но и на
PIC18F242.
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 21:43:18
kotbaris1
Albert_V писал(а):Что бы что-то прочитать - надо нечто передать (что бы было тактирование от Master-а по SCK).
Не стесняйтесь читать документацию не только на EEPROM, но и на
PIC18F242.
Вот не поверите, читал. Второй месяц читаю, а не получается. Может быть я идиот клинический) И примера там явного с кодом нет =(
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:06:43
Albert_V
Тогда ответьте на вопрос: Какие данные вы считываете из SSPBUF, если у вас нет тактирования для чтения данных из EEPROM?
Может, надо вначале понять что такое Shift Register и посмотреть FIGURE 15-2: SPI MASTER/SLAVE CONNECTION?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:17:19
kotbaris1
Albert_V писал(а):Тогда ответьте на вопрос: Какие данные вы считываете из SSPBUF, если у вас нет тактирования для чтения данных из EEPROM?
Никакие значит.
Можете объяснить, как мне читать тогда их?
movf 0xXX,W
movwf SSPBUF
это я что-то передаю, а дальше чтоли?
movff sspbuf,0xXX
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:21:02
Albert_V
Ага.
После заказа чтения, передаёте что угодно (я, обычно, "швыряю" 00h) и по окончании передачи читаете SSPBUF.
----
P.S.
На мой взгляд, удобнее работать по прерыванию от MSSP.
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:37:37
kotbaris1
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
Albert_V
Я специально подчеркнул условие для чтения SSPBUF.
Вы же, пытаетесь считать данные до их получения....
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:42:53
kotbaris1
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
Albert_V
Если будете работать по прерыванию от MSSP - всё получится.
Неужели сложно разобраться в FIGURE 15-3?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:54:53
kotbaris1
Albert_V писал(а):Если будете работать по прерыванию от MSSP - всё получится.
Неужели сложно разобраться в FIGURE 15-3?
Она никакой информации по тому, как принять данные не дает. Только как они отправляются. Так а чего не работает подобный метод, а нужно через прерывания?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 22:58:28
Albert_V
kotbaris1 писал(а): чего не работает подобный метод, а нужно через прерывания?
Что-то ещё является признаком окончания передачи байта кроме SSPIF?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:02:47
Аlex
На этот камень есть даже Русский перевод даташита, в котором всё расписано/разжёвано вдоль и поперёк.
Какие могут тут появляться вопросы....
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:03:57
kotbaris1
Albert_V писал(а):kotbaris1 писал(а): чего не работает подобный метод, а нужно через прерывания?
Что-то ещё является признаком окончания передачи байта кроме SSPIF?
По даташиту он отвечает только за то, что выполнено условие прерывания если в 1.
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:07:43
Albert_V
По даташиту, на FIGURE 15-3, указано когда поднимается SSPIF и когда происходит запись SSPSR to SSPBUF.
Что ещё нужно?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:37:08
kotbaris1
Albert_V писал(а):По даташиту, на FIGURE 15-3, указано когда поднимается SSPIF и когда происходит запись SSPSR to SSPBUF.
Что ещё нужно?
Ничего, но это не мешает тому, что у меня второй месяц это не пашет.
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:38:50
Albert_V
kotbaris1 писал(а):это не мешает тому, что у меня второй месяц это не пашет.
А у меня работает (по SSPIF).
У кого из нас ошибка?
Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM
Добавлено: Чт апр 20, 2017 23:48:29
kotbaris1
Albert_V писал(а):kotbaris1 писал(а):это не мешает тому, что у меня второй месяц это не пашет.
А у меня работает (по SSPIF).
У кого из нас ошибка?
Так ясно что у меня))
Можете пример кода показать?