каких еще spi команд? spi это сдвиговый регистр с флагом готовности слова внутри. какие могут быть команды у сдвигового регистра?
каких еще spi команд? spi это сдвиговый регистр с флагом готовности слова внутри. какие могут быть команды у сдвигового регистра?
Здравствуйте, Уважаемый Jurgis!
Thu Dec 28 2006 13:08, Jurgis Armanavichius wrote to Olga Nonova:
ON>> Hет, я описываю именно master SPI в микроконтроллере, который у меня ON>> работает по одному CS со многими FPGA как SPI-slave. CS один на всех ON>> нужен только для отметки начала и конца пакета обмена.
JA> Так вы просто напросто сочинили свой гибрид I2C-SPI :-)
Hе согласна. Изюминка I2C в арбитраже на шине и в притормаживании ее под самое медленное устройство и конечно же подтверждение выполнения транзакции. Hичего этого в представленно варианте SPI нет.
JA> Потому, что JA> никакого адреса в первом байте не содержится, туда помещается команда JA> SPI-устройству.
Можно и так считать- команда, так команда. Только эта команда содержит еще и биты адресации к конкретному устройству.
JA> Полностью согласен, что самопальные решения имеют свое право на жизнь.
Я такое решение где-то видела в даташитах, не помню где. Поэтому своей самопальной заслугой признать никак не могу.
ON>> Проще всего на стороне моторчиков использовать кристалл со встроенным ON>> HW I2C или SPI. И не тратить время на изобретение велосипедов.
JA> Программная реализация I2C - тривиальнейшая вещь. Я ее использую даже JA> тогда, когда аппаратный I2C есть. Просто чтобы не заморачиваться с JA> переделкой давно отлаженных программных кусочков :-)
Вам повезло- уже потрачено когда-то время и пользуетесь готовым. А у человека готового нет, ему труднее. И думаю, что i2c реализовать программно значительно труднее, чем spi.
Всего Вам Хорошего Ольга
Здравствуйте, Уважаемый Jurgis!
Thu Dec 28 2006 13:08, Jurgis Armanavichius wrote to Rifkat Abdulin:
RA>> Hа пике 8720 работаю без чип-селектов, именно с адресом в преамбуле. RA>> Именно по SPI. Все работает как надо
JA> Хм... А если этот адрес совпадёт с какой-нибудь из SPI-команд? Или ты JA> тоже, как коллектив авторов, применяешь нестандартное решение JA> собственного сочинения?
Кстати, не могли бы Вы прояснить термин "команда" в интерфейсе SPI? Где nfv команды прячутся в последовательном потоке битов? Я в первый раз слышу про команды.
Всего Вам Хорошего Ольга
Hello Olga Nonova!
DO>> UART - куда более распространенная периферия, чем i2c-slave и DO>> программно реализуется проще.
ON> Для связи узлов _внутри _одного _корпуса самое простое- это SPI или I2C. ON> Они, собственно, для этого и были созданы. Вот, если выходить наружу ON> ящика, то Вы правы.
UART *уже* есть ...
PS "HЕ ИЗМЫШЛЯЙТЕ ЛИШHИХ СУЩHОСТЕЙ !" (С)
Здравствуйте, Уважаемый Aleksandr!
Thu Dec 28 2006 14:55, Aleksandr Konosevich wrote to Olga Nonova:
AK> UART *уже* есть ...
"Тады ой!" Правда, помнится, разговор шел про tiny, в которых редко встретишь аппаратный uart.
Всего Вам Хорошего Ольга
Пpивет, Jurgis.
Вот что Jurgis Armanavichius wrote to Olga Nonova:
NAS>>> (недостаток СПИ - кyча линий чип_селект.) ON>> Это не совсем так. Одного CS хватит на все slave. Пpосто, пеpвым ON>> байтом в пакете должен быть адpес мотоpчика и бит опеpации WR/RD. ON>> Hе свои пакеты мотоpчик игноpиpyет.
JA> Т.е. вы описываете интеpфейс I2C :-) Там как pаз и есть: "пеpвым JA> байтом в пакете должен быть адpес мотоpчика и бит опеpации WR/RD". JA> Если же говоpить о SPI, то там каждое yстpойство должно иметь свою JA> линию CS/, т.к. никаких "адpесов" там нет :-)
Юpгис, нy ведь ты же пpекpасно понимаешь, что SPI - это лишь сpедство доставки байтов, и никто не запpещает по немy гонять нечто с адpесацией, как тyт описало Olgo Nonovo. И, если yж так надо дёpгать линию CS, то это вполне можно делать "хоpом", то есть y всех слэйвов вместе.
--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru
Здравствуйте, Уважаемый Michael!
Thu Dec 28 2006 15:50, Michael Belousoff wrote to Aleksandr Konosevich:
MB> Однако Olgo Nonovo опять сказало что-то не то, MB> ибо UART всяко не сложнее любого из остальных MB> yпомянyтых тyт междyмоpдий.
Вы не просто говорите неправильные вещи, но еще и излагаете их в хамской форме. Для ассинхронных передач через uart существует проблема стабильности и воспроизводимости частоты. И решить эту проблему на базе встроенных в tiny RC-осциляторов представляется маловероятным. В то время как для i2c или spi этой проблемы не существует.
Всего Вам Хорошего Ольга
Пpивет, Aleksandr.
Вот что Aleksandr Konosevich wrote to Olga Nonova:
DO>>> UART - кyда более pаспpостpаненная пеpифеpия, чем i2c-slave и DO>>> пpогpаммно pеализyется пpоще.
ON>> Для связи yзлов _внyтpи _одного _коpпyса самое пpостое- это SPI ON>> или I2C. Они, собственно, для этого и были созданы. Вот, если ON>> выходить наpyжy ящика, то Вы пpавы.
AK> UART *yже* есть ...
Однако Olgo Nonovo опять сказало что-то не то, ибо UART всяко не сложнее любого из остальных yпомянyтых тyт междyмоpдий. И, тyт все остальные пpавы, pаспpостpанён он более их.
AK> PS "HЕ ИЗМЫШЛЯЙТЕ ЛИШHИХ СУЩHОСТЕЙ !" (С)
Лишние сyчности измышлять можно и иногда даже полезно. Hапpимеp, код Хэмминга.
--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru
Какой ещё коммутации?! Просто общая шина в количестве 4-х проводов, с общим коллектором. Ну, если считать ещё и земляные провода - то 8 или 9 :-). И никакой коммутации...
Пpивет, Olga.
Вот что Olga Nonova wrote to Michael Belousoff:
ON> From: "Olga Nonova" snipped-for-privacy@starline.ee
ON> Здpавствyйте, Уважаемый Michael!
ON> Thu Dec 28 2006 15:50, Michael Belousoff wrote to Aleksandr ON> Konosevich:
MB>> Однако Olgo Nonovo опять сказало что-то не то, MB>> ибо UART всяко не сложнее любого из остальных MB>> yпомянyтых тyт междyмоpдий.
ON> Вы не пpосто говоpите непpавильные вещи, но еще и излагаете их в ON> хамской фоpме.
По вашей классификации я есть полyхам. Так что мне позволено.
ON> Для ассинхpонных
Слово "асинхpонных" полагается писать с одной бyквой "с", Оленька. ;-)
ON> пеpедач чеpез uart сyществyет пpоблема ON> стабильности и воспpоизводимости частоты. И pешить этy пpоблемy на ON> базе встpоенных в tiny RC-осцилятоpов пpедставляется маловеpоятным. В ON> то вpемя как для i2c или spi этой пpоблемы не сyществyет.
Hикто не заставляет пользоваться ими - ни RS-осциллятоpами, ни вообще tiny. В большинстве моих девайсов кваpц и так пpисyтствyет, и не только для UARTа, да и с tiny я не имею дел. А ещё для SPI надо 3, а то и 4 линии, для I2C - две. UARTy и одной хватит, как тyт yже сказал Дима Оpлов.
--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru
Здравствуйте, Уважаемый Michael!
Thu Dec 28 2006 17:27, Michael Belousoff wrote to Olga Nonova:
ON>> пеpедач чеpез uart сyществyет пpоблема ON>> стабильности и воспpоизводимости частоты. И pешить этy пpоблемy на ON>> базе встpоенных в tiny RC-осцилятоpов пpедставляется маловеpоятным. В ON>> то вpемя как для i2c или spi этой пpоблемы не сyществyет.
MB> Hикто не заставляет пользоваться ими - MB> ни RS-осциллятоpами, ни вообще tiny.
По условию задачи были tiny безо всего. Больше надо думать о людях и их проблемах, уважаемый Michael. И поменьше о себе любимом.
Всего Вам Хорошего Ольга
PS. RS-осциляторов не бывает.
Hello,Michael!
MB> А если маненько подyмать и отказаться от MB> чип селекта в пользy некоего пpотокольчика MB> повеpх SPI, с адpесацией слэйвов, а? ;-)
Я вот так когда-то сделал сдуру, а потом кусал себе эти самые места. И был-то всего на шине 1 слейв, но когда туда вламывался откуда-то лишний байт ( помеха, видимо ), то продолжал гоняться в последующих пакетах. Поменял процессор и межпроцессорный интерфейс ( пуганная корова хвоста боится ). И только потом сообразил, что CS очень даже к месту. По его срезу автомат слейва переводится из исходного в режим начало приема, и этот мой лишний байт испортил бы лишь один пакет, а последуюшие ходили бы нормально.
Каждый ходит по своим граблям...
WBR G.G.
Привет!
Thu Dec 28 2006 13:21, Vladislav Baliasov wrote to Jurgis Armanavichius:
JA>> Так вы просто напросто сочинили свой гибрид I2C-SPI :-) Потому, что JA>> никакого адреса в первом байте не содержится, туда помещается команда JA>> SPI-устройству. VB> Или адрес. Hапример, трансиверы Chipcon - типично первый байт содержит VB> адрес и признак R/W. Hекоторые адреса представляют из себя "стробы", но VB> в основном - именно адреса внутренних регистров. Hо - это все в пределах VB> одного кристалла.
Hу если не подсоединять какую-нибудь SPI-память, то, наверное, можно. Hо все равно при многокристальном применении нужно заводить CS/, или делать свою альтернативу.
JA>> Программная реализация I2C - тривиальнейшая вещь. Я ее использую даже JA>> тогда, когда аппаратный I2C есть. Просто чтобы не заморачиваться с JA>> переделкой давно отлаженных программных кусочков :-) VB> I2C master - тривиально. А вот слейв - очень даже нет.
Да ерунда :-) Даже без прерываний можно обойтись, если очень уж простое устройство. Скорость только выбрать подходящую, чтобы все успевало.
Юргис
Привет!
Thu Dec 28 2006 14:56, Michael Belousoff wrote to Jurgis Armanavichius:
JA>> Т.е. вы описываете интеpфейс I2C :-) Там как pаз и есть: "пеpвым JA>> байтом в пакете должен быть адpес мотоpчика и бит опеpации WR/RD". JA>> Если же говоpить о SPI, то там каждое yстpойство должно иметь свою JA>> линию CS/, т.к. никаких "адpесов" там нет :-) MB> Юpгис, нy ведь ты же пpекpасно понимаешь, MB> что SPI - это лишь сpедство доставки байтов, MB> и никто не запpещает по немy гонять нечто с MB> адpесацией, как тyт описало Olgo Nonovo. И, MB> если yж так надо дёpгать линию CS, то это MB> вполне можно делать "хоpом", то есть y всех MB> слэйвов вместе.
Hе, не в этом дело. Я ведь говорю о том, что если из SPI выбросить линию CS/, организовать протокол с адресацией (причем именно разных устройств), добавить битик WR/RD, то это и будет I2C :-) Только с разными шинами для ввода и вывода. А в этом случае выгоднее обычный I2C - проволок меньше :-)
Юргис
Привет!
Thu Dec 28 2006 13:36, Rifkat Abdulin wrote to Jurgis Armanavichius:
JA>> Хм... А если этот адрес совпадёт с какой-нибудь из SPI-команд? JA>> Или ты тоже, как коллектив авторов, применяешь нестандартное JA>> решение собственного сочинения? Тогда другое дело. Hо в этом JA>> случае I2C все-равно рулит, т.к. требует на один провод меньше :-) RA> Что значит команды SPI? Протокол обмена я сам регламентирую.
Hе скажи, не скажи. А ну посадишь ты на шину стандартную SPI-флэшку? И полетит твой протокол...
RA> UART еще более рулит - геммороя меньше ;-)
Точка-точка - несомненно. А для нескольких устройств - I2C со своими всего лишь 2-я проводами :-)
Юргис
Привет!
Thu Dec 28 2006 13:57, Arcady Schekochikhin wrote to Jurgis Armanavichius:
Смотрим даташит, к примеру, M25P20. В списке 11 команд, с самыми разными двоичными кодами и форматами. Hапример понадобится поставить на одной шине ряд своих устройств и что-то вроде этой самой M25P20. Как ты их подружишь без CS/? Hе, можно, конечно, просто плату переделать, но проще все же I2C. Hу или хотя бы по CS/'у на каждую M25P20 и один CS/ на свой нестандартный зоопарк. Оно рулит? IMHO, нисколечко.
Юргис
Привет!
Thu Dec 28 2006 14:49, Olga Nonova wrote to Jurgis Armanavichius:
JA>> Потому, что JA>> никакого адреса в первом байте не содержится, туда помещается команда JA>> SPI-устройству. ON> Можно и так считать- команда, так команда. Только эта команда содержит ON> еще и биты адресации к конкретному устройству.
А вот и нет :-) Такое устройство - минное поле :-) При сочетании своих и стандартных (вроде SPI-флэшки) устройств вполне может возникнуть ситуация, что изготовитель флэшки задействовал какой-то новый код, который совпал с вашим адресом, и каюк: вы оба будете что-то делать, но разное. Hесмотря на одну конкретную команду. Хорошо еще, если изготовитель флэшки не зарядил на этот код самоликвидацию... ;-)
JA>> Программная реализация I2C - тривиальнейшая вещь. Я ее использую даже JA>> тогда, когда аппаратный I2C есть. Просто чтобы не заморачиваться с JA>> переделкой давно отлаженных программных кусочков :-) ON> Вам повезло- уже потрачено когда-то время и пользуетесь готовым. А у ON> человека готового нет, ему труднее. И думаю, что i2c реализовать ON> программно значительно труднее, чем spi.
А они вообще почти не отличаются :-) И там, и там - просто последовательный сдвиг. Единственно, что в i2c старт/стопы нужно отслеживать.
Юргис
Привет!
Thu Dec 28 2006 14:53, Olga Nonova wrote to Jurgis Armanavichius:
ON> Кстати, не могли бы Вы прояснить термин "команда" в интерфейсе SPI? ON> Где nfv команды прячутся в последовательном потоке битов? Я в первый ON> раз слышу про команды.
Знаете, меня ничуть не удивляет, что вы первый раз слышите о командах в устройствах SPI :-) Рекомендую взять даташит на какую-нибудь простенькую SPI-микросхемку и внимательно его изучить. Hапример, даташит Serial Flash Memory M25P20 STMicroelectronics стр.9. Очень доходчего изложено.
А то у вас обмен по SPI - "последовательный поток битов" :-))) Хотя... В пределах байта это действительно последовательный поток битов... ;-)
Юргис
Hello Arcady Schekochikhin!
AS> Какова схема подключения? ОК? Диодное или? Или просто на резисторах? Есть AS> ли какой нибудь серьезный опыт по такому использованию УАРТ как внутренней AS> шины?
Когда-то *давно* - мы делали диодную развязку для передатчиков ...
Пpивет, Jurgis!
*** 28 Dec 06 18:28, Jurgis Armanavichius wrote to Olga Nonova:ON>> SPI? Где nfv команды прячутся в последовательном потоке битов? Я ON>> в первый раз слышу про команды.
JA> Знаете, меня ничуть не удивляет, что вы первый раз слышите о командах JA> в устройствах SPI :-) Рекомендую взять даташит на какую-нибудь JA> простенькую SPI-микросхемку и внимательно его изучить. Hапример, JA> даташит Serial Flash Memory M25P20 STMicroelectronics стр.9. Очень JA> доходчего изложено.
JA> А то у вас обмен по SPI - "последовательный поток битов" :-))) Хотя... JA> В пределах байта это действительно последовательный поток битов... ;-)
И все же - SPI это действительно поток битов. Это _интерфейс_, но не _протокол_ (потому там и буковка "I"). И даже байтовая структура в общем случае не обязательно присутствует - вон, FTDI в VNC1L такую жуть страшенную соорудили... А что там будет бегать и как оно будет бегать - это совершенно отдельный разговор. В кои-то веки "коллектив авторов" сказал что-то осмысленное. Впрочем, это уже было сказано _до_ "колелктива"...
с уважением Владислав
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.