AndV 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба Здравствуйте! Возможно, глупый вопрос (если что, сильно не ругайтесь), но все же... Есть АЦП и датафлэш - оба SPI. Как грамотно подключить к Меге128? Повесить их параллельно на моси-мисо? (Если так, то как выбирать, с кем работать?) Один повесить на аппартный SPI, второй на программный? С SPI-ем не работал... (описание обязательно почитаю, но пока с подключением помогите :) Заранее спасибо. PS. Да, чуть не забыл, датафлэш 3.3В (мне кажется, это важно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба ... Да, чуть не забыл, датафлэш 3.3В (мне кажется, это важно) Вот здесь есть пример согласования 3.3в DF с 5-ти вольтовыми системами: http://www.gaw.ru/html.cgi/txt/app/Atmel/m...y/at45db_5v.htm Соединить все MISO, MOSI и SCK. Выбор нужной микросхемы осуществлять их сигналом /CS. Если они работают не одновременно, для управления можно использовать просто линии портов. Но лучше, конечно использовать дешифратор на 2 выхода, который стробируется выходом /SS у микроконтроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vooon 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба у АЦП и флешки есть выводы /CS - выбор чипа, нулем. а линии MISO, MOSI, SCK параллельно. пока чип не выбран (CS=1) DO в Z состоянии. Nanobyte одновременно c тобой писал :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndV 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба Спасибо за оперативные ответы!!! Оказывается, все просто. Chip Select как-то ускользнул от меня :) Если я правильно понял, заводим по линии порта на CS каждой микросхемы, а SPI-сигналы параллелим. Когда на CS "1" - микросхема, грубо говоря, отключена? А вот с дешифратором и стробированием сигналом SS не совсем понятно. Как это работает и почему так лучше? Вопрос экономии ног Меги не стоит. И работают АЦП и флешка не одновременно, сначала АЦПирование затем сохранение во флеше. Еще раз спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба Да, это я наверное, перегнул. В вашем случае можно спокойно выделить каждому устройству по линии /CS, и управлять ими в нужный момент перед обменом по SPI. Когда на /CS единица, устройство не реагирует на поток байтов и отключено от выходной шины, как уже написал vooon . Тот усложнённый способ удобно применять, когда используется куча устройств, ну и обмен данными по SPI программировать немного проще , то-есть вывел номер требуемого устройства в порт и всё. Стробирование /SS производится только в подпрограмме ввода/вывода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 2 марта, 2007 Опубликовано 2 марта, 2007 · Жалоба А вот с дешифратором и стробированием сигналом SS не совсем понятно. Как это работает и почему так лучше? Еще раз спасибо! Если гарантируете неодновременную работу 2 устройств не заморачивайтесь. Это нужно было бы, чтоб никогда не было одновременно сгналов CS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба А на ногу SS если вы используете ATmega128 в режиме мастер, нужно подать лог 1 соединив её с +Uпит, или сделав выходом управлять одним из /CS Data Flash или АЦП. Я лично для согласования уровней в Dataflash использую резисторный делитель напряжения 2,2к и 3,3. А питаю память от стабилизатора 3.3В Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба ... А на ногу SS если вы используете ATmega128 в режиме мастер, нужно подать лог 1 соединив её с +Uпит... Нельзя так делать. Как минимум соединить с питанием через резистор. А ещё лучше, использовать по прямому назначению, или просто в качестве линии выхода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 3 марта, 2007 Опубликовано 3 марта, 2007 (изменено) · Жалоба ... А на ногу SS если вы используете ATmega128 в режиме мастер, нужно подать лог 1 соединив её с +Uпит... Нельзя так делать. Как минимум соединить с питанием через резистор. А ещё лучше, использовать по прямому назначению, или просто в качестве линии выхода. Да правельно через резистор. Но хотя я пробовал и напрямую, ничё работает, уже около 2х лет такое устройство. Но это у меня, а так конечно же через резистор. Изменено 3 марта, 2007 пользователем Tcom Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prottoss 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба А на ногу SS если вы используете ATmega128 в режиме мастер, нужно подать лог 1 соединив её с +Uпит, или сделав выходом управлять одним из /CS Data Flash или АЦП. Я лично для согласования уровней в Dataflash использую резисторный делитель напряжения 2,2к и 3,3. А питаю память от стабилизатора 3.3В А зачем резисторы для согласования уровней? У АТ45 входы можно подключать к 5-вольт выходам КМОП/ТТЛ: 5.0V-tolerant inputs: SI, SCK, CS, RESET and WP pins - это из секции Features . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 3 марта, 2007 Опубликовано 3 марта, 2007 · Жалоба Соединять напрямую с +5 нежелательно потому, что во время отладки или при наличии ошибок в программе можно запросто вывести в порт нулевое значение при настройке его на вывод, тогда запах шашлыка обеспечен :) Проще всего настроить порт на вывод. Так, кстати, и даташит рекомендует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Соединять напрямую с +5 нежелательно потому, что во время отладки или при наличии ошибок в программе можно запросто вывести в порт нулевое значение при настройке его на вывод, тогда запах шашлыка обеспечен :) Проще всего настроить порт на вывод. Так, кстати, и даташит рекомендует. Ну незнаю у меня всегда все просчитано.... И запах шашлыка тоже.... 5.0V-tolerant inputs: SI, SCK, CS, RESET and WP pins Наверно следует сказать что питание DataFlash нада делать с стабилизатора 3.3 В, а остальные выводы подключать напрямую? Тогда зачем написаны апликухи для согласования уровней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nanobyte 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба ... Ну незнаю у меня всегда все просчитано.... И запах шашлыка тоже.... За Вас можно только порадоваться, но почему-то все разработчики стараются избегать подобных ситуаций. Для домашних изделий это, может быть, и допустимо, но при решении задач для заказчика есть ещё тех.контроль, который это просто не пропустит. ... Тогда зачем написаны апликухи для согласования уровней? Слово TOLERANT имеет основное значение ТЕРПИМЫЙ. При подаче повышенного напряжения микросхема не сгорит, даже будет работать. Но для постоянного применения уровни всё-таки нужно согласовывать. (Ведь и в автомобиле можно ехать 40 км/ч на 1-й передаче :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tcom 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба Про резисторы понятно, я просто так сказал что будет работать, я знаю что ставить резисторы нужно и тоже являюсь разработчиком и у нас тоже есть контроль на всё это дело. Просто человек спросил в начале как подключить... Вот и посеветовать эму нужно как... И самый экономичный способ это резисторы я именно делаю Привожу схему согласователя может все знают а может и нет.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 5 марта, 2007 Опубликовано 5 марта, 2007 · Жалоба У АТ45 все входы позволяют подключаться напрямую к 5в сигнадам, вот только логические уровни на выходе SO при 3.3в питании, вернее даже, уровень логической "1" не будет попадать в диапазон напряжений для лог "1" меги при питании от 5в, вот по-этому для этого, одного сигнала и надо делать согласование уровня и для этого есть специальные микросхемы 74HC1G125 - один лог элемент в корпусе сот23-5, никто, конечно, не мешает поставить и 74НС125 в СО14, если место позволяет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться