Kitsok 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба Добрый день! Имеется у меня контроллер, ARM SAM7 от Атмела. К нему по SPI подключаются регистры ввода ('165), рядышком, на другом ChipSelect, подключен EEPROM AT25256. И вот наблюдаю я картину, которую (а) не могу понять, (б) не знаю, как правильно решить. Проблема имеется с линий Master In Slave Out. На этот вход контроллера подключены выходы и регистра, и EEPROM. И по какой-то неведомой мне причине регистр все время держит эту линию в состоянии либо "0", либо "1", в "Z" она не переходит. И в итоге, если там "1", то при обмене с памятью, логический "0" на входе контроллера у нас представлен уровнем где-то 0.8 вольта, что плохо, но в принципе работает. А вот если там ноль, то там ноль, т.е. мощи (?) памяти не хватает чтобы поднять напряжение даже до порога. Проблема на лицо, вопрос - как решать. Первая в голову мысль - развязать диодами. Т.е. диод катодом к MISO, анодом к периферии (памяти и регистру), плюс резистор до земли. Но я такого решения ни в одном аппноте или даташыте не видел. Ставить "ИЛИ" не хочется, потому как лишний корпус ради одного элемента. Во всех шытах, которые мне попадались, нигде никакой подтяжки или развязки нету, просто несколько слейвов соединены с мастером. Вопрос: как грамотно решить проблему? Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба На память, но вроде '165-ый не имеет Z-состояния и вешать его вместе с другим девайсом нет никакого смысла. Поэтому грамотнее всего так не делать схему вообще :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kitsok 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба На память, но вроде '165-ый не имеет Z-состояния и вешать его вместе с другим девайсом нет никакого смысла. Поэтому грамотнее всего так не делать схему вообще :) Ээх.... А вот доставабельных альтернатив '165-му особенно и нету... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба Остаётся только доп. буфер с Z состоянием или мультиплексор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kitsok 0 14 мая, 2007 Опубликовано 14 мая, 2007 (изменено) · Жалоба В общем, понимаю, что не правильно, но решил так - диод анодом к выходу '165, 15кОм резистор на землю. Ну и к точке сборки ;) резистора и диода - вход контроллера и выход памяти. 3МГц, работает. Завал, конечно, появился, но что делать... Следующей итерацией попробую '125 или '126 с управлением от ChipSelect (который у меня длиииииный, но в нужное время присутствует), это, конечно, более правильно. Изменено 14 мая, 2007 пользователем Kitsok Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба Попробуй лучше так: От 165-ой идёт резюк на 1 ком к точке соединения 25256 и проца. Логика работы будет следующая. Если 25256 будет в третьем состоянии, то сигнал на проц будет идти с 165-ой. Если же 25256 будет активна, то она перетянет сигнал на свою сторону. Если будет подглючивать, попробуй увеличить резюк до 3,3..10 ком. Желательно чтоб у проца этот выход не имел внутренней подтяжки. Наверно я погорячился говоря что так нельзя делать. Вобщем с резюком должно работать и вроде как стабильно. То есть это простой способ объединять на шине SPI девайс с Z-состоянием и другой, не имеющий оного. Как говорится - если очень хочется, то можно :) Резюк наверное лучше поставить на 4,7к Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться