big_iluxa
Oct 25 2011, 11:00
Доброго дня!
При стыковке Атмеловской 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
Oct 25 2011, 11:36
Во-первых, что это у вас там за пичок треугольный на осцилограмме?
Во вторых - посмотрите осцилограмму фронта сигнала, у вас может там звенеть очень сильно при токе в 24мА. Не надо ставить такой ток на медленные линии.
big_iluxa
Oct 25 2011, 11:59
Цитата(DmitryR @ Oct 25 2011, 15:36)

Во-первых, что это у вас там за пичок треугольный на осцилограмме?
Этот от пичок от предыдущей операции чтения. Пичок дает подтяжка, в момент между 8м битом и синхроимпульсом, по которому выдается АСК, в этот момент линия никем не занята.
Ноль с переносом
Oct 25 2011, 12:41
Дико извеняюсь что лезу в тему. С плисинами не знаком, да и доки по 24C512 последний раз читал лет 5 назад. Но помоему там предельная частота SCK 100 килогерц, в лучщем случае 400, а если особо повезёт, то мегагерц. Но никак не десять o_O
big_iluxa
Oct 26 2011, 12:50
Цитата(Ноль с переносом @ Oct 25 2011, 16:41)

Дико извеняюсь что лезу в тему. С плисинами не знаком, да и доки по 24C512 последний раз читал лет 5 назад. Но помоему там предельная частота SCK 100 килогерц, в лучщем случае 400, а если особо повезёт, то мегагерц. Но никак не десять o_O
Так на осциллограмме период SCL около 4-5мкС, так что частоты до 300кГц. 100нС длительность периода синхросигнала тактирующего ядро, на котором реализован контроллер EEPROM-ки =)
big_iluxa
Nov 7 2011, 06:48
В итоге сейчас пишу по одному байту, пишет без ошибок. Правда скорость раз в 10 ниже, но для моей задачи не критично.