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

На память, но вроде '165-ый не имеет Z-состояния и вешать его вместе с другим девайсом нет никакого смысла. Поэтому грамотнее всего так не делать схему вообще

Ээх.... А вот доставабельных альтернатив '165-му особенно и нету...
GetSmart
May 14 2007, 08:13
Остаётся только доп. буфер с Z состоянием или мультиплексор.
Kitsok
May 14 2007, 16:16
В общем, понимаю, что не правильно, но решил так -
диод анодом к выходу '165, 15кОм резистор на землю. Ну и к точке сборки

резистора и диода - вход контроллера и выход памяти. 3МГц, работает. Завал, конечно, появился, но что делать...
Следующей итерацией попробую '125 или '126 с управлением от ChipSelect (который у меня длиииииный, но в нужное время присутствует), это, конечно, более правильно.
GetSmart
May 14 2007, 22:36
Попробуй лучше так:
От 165-ой идёт резюк на 1 ком к точке соединения 25256 и проца. Логика работы будет следующая. Если 25256 будет в третьем состоянии, то сигнал на проц будет идти с 165-ой. Если же 25256 будет активна, то она перетянет сигнал на свою сторону. Если будет подглючивать, попробуй увеличить резюк до 3,3..10 ком. Желательно чтоб у проца этот выход не имел внутренней подтяжки.
Наверно я погорячился говоря что так нельзя делать. Вобщем с резюком должно работать и вроде как стабильно. То есть это простой способ объединять на шине SPI девайс с Z-состоянием и другой, не имеющий оного. Как говорится - если очень хочется, то можно

Резюк наверное лучше поставить на 4,7к