big_iluxa 0 25 октября, 2011 Опубликовано 25 октября, 2011 · Жалоба Доброго дня! При стыковке Атмеловской EEPROM-ки AT24C512B с ПЛИС Xilinx семейства Virtex-5 перериодически после нескольких операциях записи (количество плавает) по прозвольному (не нулевому) адресу происходит сбой, при котором и перезатираются данные, хранящиеся по нулевому адресу+n адресу (с 00h по 1Fh находится область к которой нет обращений). Блоки данных небольшие, 20байт, адреса, по которым производится обращение далеки от максимальных. Линия SDA изначально подтягивалась внутри ПЛИС, потом были опробованы внешние подтягивающие резисторы номиналом от 2,2кОм до 6,8кОм, результат тот же. Сама EEPROM-ка расположена на одной плате с ПЛИС, длинна дорожек не более 40мм. В .UCF файле прописаны следующие настройки: NET "EEPROM_SCL" LOC = AG22; NET "EEPROM_SDA" LOC = AH22; NET "EEPROM_SCL" IOSTANDARD = LVCMOS33; NET "EEPROM_SDA" IOSTANDARD = LVCMOS33; NET "EEPROM_SDA" DRIVE = 24; NET "EEPROM_SDA" SLEW = SLOW; NET "EEPROM_SDA" PULLUP; Во вложениях картинки осциллограммы управляющего слова записи адреса, то же самое в ChipScop-е, и диаграмма выдачи условия стоп в ChipScop (длительность одного такта 0,1мкС). Так же был опробован, найденный в последней версии Data Sheet на Ep AT24C512B режим Software Reset, применение которого после включения, равно как и перед каждой операцией записи, результата не дало. Собственно вопрос: кто сталкивался с данной проблемой нестабильности адресации и как решал Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 25 октября, 2011 Опубликовано 25 октября, 2011 · Жалоба Во-первых, что это у вас там за пичок треугольный на осцилограмме? Во вторых - посмотрите осцилограмму фронта сигнала, у вас может там звенеть очень сильно при токе в 24мА. Не надо ставить такой ток на медленные линии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
big_iluxa 0 25 октября, 2011 Опубликовано 25 октября, 2011 · Жалоба Во-первых, что это у вас там за пичок треугольный на осцилограмме? Этот от пичок от предыдущей операции чтения. Пичок дает подтяжка, в момент между 8м битом и синхроимпульсом, по которому выдается АСК, в этот момент линия никем не занята. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PIC16F876A 0 25 октября, 2011 Опубликовано 25 октября, 2011 · Жалоба Дико извеняюсь что лезу в тему. С плисинами не знаком, да и доки по 24C512 последний раз читал лет 5 назад. Но помоему там предельная частота SCK 100 килогерц, в лучщем случае 400, а если особо повезёт, то мегагерц. Но никак не десять o_O Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
big_iluxa 0 26 октября, 2011 Опубликовано 26 октября, 2011 (изменено) · Жалоба Дико извеняюсь что лезу в тему. С плисинами не знаком, да и доки по 24C512 последний раз читал лет 5 назад. Но помоему там предельная частота SCK 100 килогерц, в лучщем случае 400, а если особо повезёт, то мегагерц. Но никак не десять o_O Так на осциллограмме период SCL около 4-5мкС, так что частоты до 300кГц. 100нС длительность периода синхросигнала тактирующего ядро, на котором реализован контроллер EEPROM-ки =) Изменено 26 октября, 2011 пользователем big_iluxa Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
big_iluxa 0 7 ноября, 2011 Опубликовано 7 ноября, 2011 · Жалоба В итоге сейчас пишу по одному байту, пишет без ошибок. Правда скорость раз в 10 ниже, но для моей задачи не критично. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться