[an error occurred while processing this directive]
|
Некоторые девайсы "придерживают" SCLK, когда им требуется время на обработку данных. Если у вас некорректно реализовано формирование уровней - т.е. вы выдаете в шину единицу вместо того, чтобы переключить ножку на ввод и дать спокойно сформироваться единице за счет подтягивающего резистора на шине (и ждете эту единицу опрашивая ногу), то вы имеете классический конфликт уровней. У процессора нога как правило сильнее, он побеждает, подчиненное устройство дохнет. Во многих микросхемах (например в памяти 24xxx, часах MK45T56) этот режим не реализован, но кто знает, может вам попалась как раз другая. То же самое и с линией SDA. Вот там точно ни в коем разе нельзя выдавать единицу! Это был ляп в одном из микрочиповских аппнотов. Память 24LC04 держится примерно месяц, потом у нее выгорает резистор на SDA. Единицу формировать только переводом ножки контроллера на ввод.
Могу перекомендовать включить последовательно с линией SDA резистор 100 Ом - на нем замечательно видны эти конфликты и кроме того он при таких конфликтах все же ограничивает ток.
E-mail: info@telesys.ru