Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

24LC32A - I2C-EEPROM-странен проблем
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=5841
Страница 1 от 1

Автор:  Wise [ Съб Юни 07, 2008 3:35 pm ]
Заглавие:  24LC32A - I2C-EEPROM-странен проблем

Привет!
Имал ли е някой такъв проблем?
Проц Tiny2313 + един чип на шината (около 2 см дълга) 24LC32A (Комет-Микрочип).
I2C софтуерно протоколче (асемблер). 100КHz
Няма прекъсвания да шляпат. Резистори 2 Кома. Четене по 32 байта.
Когато има записана 1 - никога не греши. При лог.0 - се случва на 2 килобайта 1 БИТ! грешен.
Т.е. понякога вместо 0 го чете като 1 (бита). Може да си е чиста нула (0х00) и да се прочете 0х10.
Случайно е - не се повтаря. От 100 грешки стоте са в първите 4 байта (от 32 прочетени) и винаги 1 бит
е станал от 0 в 1.
(На друго желязо имам LC256 от същата фирма, същия асм код и там няма такъв проблем)


Може ли да е от 2 К резисторите? Пробвах да вдигна честотата 2 пъти - няма ефект.


//Принудих се да чета повторно и да сравнявам, но нещо ме гложди.....

Автор:  Nikola Kirov [ Съб Юни 07, 2008 3:54 pm ]
Заглавие: 

Не честотата а увеличи времето след клока след което четеш нивото на Data пина. AVR-a вкарва доста смущения в захранването,да не би филтриращия кондензатор да не е запоен нещо и да шашка паметта. Добре е да имаш филтрираш кондензатор и на паметта. Малко изглежда да е хардуерен проблема.
Ако смъкнеш честотата вероятно ще ти изчезне и проблема, и това е вариант.

Иначе съм ползвал доста памети от тази серия досега не съм имал забележки.

Автор:  Wise [ Съб Юни 07, 2008 4:07 pm ]
Заглавие: 

Става дума за десетки устройства - не е случаен дефект.
CBI DD_I2C, SDA ;RELEASE SDA
RCALL DELAY2
CBI DD_I2C, SCL ;SCL- HIGH
RCALL DELAY2
CLC
SBIC PIN_I2C, SDA ;CHECK DATA PIN
SEC
ROL I2C_SHIFT


..............
delay2- 2 микросекунди


има доста време да се установи, според мен

Автор:  Nikola Kirov [ Съб Юни 07, 2008 4:18 pm ]
Заглавие: 

Пробвай с увеличаването на времената. Докато спре да прави проблема. И като изясниш кое време е критично ще го хванеш и проблема. Поне аз така процедирах като си правих софтуерното I2C и го оптимизирах за максимална скорост.

Автор:  Wise [ Съб Юни 07, 2008 4:31 pm ]
Заглавие: 

Nikola Kirov написа:
Пробвай с увеличаването на времената. Докато спре да прави проблема. И като изясниш кое време е критично ще го хванеш и проблема. Поне аз така процедирах като си правих софтуерното I2C и го оптимизирах за максимална скорост.


Благодаря,
а нещо за 2-та Кома резистори? Ти с 2 или с 10 си пробвал?
(все-пак 400килохерца им дават - по дейташиита де)
256-ците ми са 8 с 2 килоома (имам и вариант с 512 - 4 броя)
не е имало случай да грешат, а само 32-ката ми прави номерца.........
дали не е хардуерно - понеже е сам чип с 2 килоома?

Автор:  Nikola Kirov [ Съб Юни 07, 2008 4:56 pm ]
Заглавие: 

С 4.7K и с 10K съм пробвал само. 10K си работи нормално на 100KHz при 3.3V

Автор:  Wise [ Съб Юни 07, 2008 5:22 pm ]
Заглавие: 

Nikola Kirov написа:
С 4.7K и с 10K съм пробвал само. 10K си работи нормално на 100KHz при 3.3V


10х

Ще пробвам другата седмица с вариации на резистора. При мен е 4,4 -5,1 V батерийно.
Гадно е, че отнема доста време, докато се тества и анализира грешката.
Ще пиша, ако установя нещо - за протокола де :)

Автор:  Wise [ Пон Юни 09, 2008 1:35 pm ]
Заглавие: 

Смених резисторите с 4.7 к
Престана да греши! Очевидно 2к не е добра идея, въпреки, че за 400KHz май го препоръчват в дейташиита.
Просто ще си имам вече едно на ум.... :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/