Добрый день!
Имеется у меня контроллер, ARM SAM7 от Атмела. К нему по SPI подключаются регистры ввода ('165), рядышком, на другом ChipSelect, подключен EEPROM AT25256.
И вот наблюдаю я картину, которую (а) не могу понять, (б) не знаю, как правильно решить.
Проблема имеется с линий Master In Slave Out. На этот вход контроллера подключены выходы и регистра, и EEPROM. И по какой-то неведомой мне причине регистр все время держит эту линию в состоянии либо "0", либо "1", в "Z" она не переходит. И в итоге, если там "1", то при обмене с памятью, логический "0" на входе контроллера у нас представлен уровнем где-то 0.8 вольта, что плохо, но в принципе работает. А вот если там ноль, то там ноль, т.е. мощи (?) памяти не хватает чтобы поднять напряжение даже до порога.
Проблема на лицо, вопрос - как решать.
Первая в голову мысль - развязать диодами. Т.е. диод катодом к MISO, анодом к периферии (памяти и регистру), плюс резистор до земли. Но я такого решения ни в одном аппноте или даташыте не видел. Ставить "ИЛИ" не хочется, потому как лишний корпус ради одного элемента. Во всех шытах, которые мне попадались, нигде никакой подтяжки или развязки нету, просто несколько слейвов соединены с мастером.
Вопрос: как грамотно решить проблему?
Заранее спасибо!
|