phiss25 0 22 апреля, 2008 Опубликовано 22 апреля, 2008 (изменено) · Жалоба Здравствуйте всем. Я новичок в работе с внешней памятью.Осилил запись,все нормально.Непонятным остается только одно.Когда я отправляю на запись один байт,предположим 0x55 единожды,то при чтении получается,что заполняется область памяти вплоть до адреса 0xFF.А мне нужно записать только по одному адресу.Память AT25160A. Вот код на асме sbi PortB,_CS ldi temp,0x06 ;разрешение записи cbi PortB,_CS ; nop ; nop ; rcall write_mem ;вызов обмена по SPI nop ; nop ; sbi PortB,_CS ;выбор устройства ldi temp,0x02 ;инструкция записи cbi PortB,_CS ; nop nop rcall write_mem ; mov temp,adres_h ;старший адрес rcall write_mem ; mov temp,adres_l ; rcall write_mem ; mov temp,PrH ;младший адрес ldi temp,0x55 ;число для записи rcall write_mem ; nop nop sbi PortB,_CS Операция обмена по SPI взята из даташита на tiny 2313(это мой контроллер) Я читал,что можно осуществить страничную запись,но в 32 байта,а не как у меня Может кто-то сталкивался с такой проблемой? Подскажите,пожалуйста. P.S. Нужна именно побайтная запись Изменено 22 апреля, 2008 пользователем Сергей X Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 22 апреля, 2008 Опубликовано 22 апреля, 2008 · Жалоба После записи байта нужно дождаться готовности EEPROM (нулевой бит статусного регистра должен установиться в '0'). А с чтением-то все в порядке? Не может так быть, что всегда нулевой байт читается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться