Hello, Vladimir Vassilevsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 01 Jul 2005 19:04:21
+0400:
VV>>>>>>> 3. От слейвов к мастеру нужно один общий сигнал для VV>>>>>>> хендшейка/квитирования. VV>>>>> Чтобы мастер знал, что слейвы готовы к обмену по SPI. DO>>>> Как они могут быть неготовы, если обмен делается аппаратно DO>>>> и вызывает прерывание? VV>>> Да очень просто: мастер уже начал следующий трансфер, а VV>>> слейв еще не успел отработать SPI. DO>> Постой, мы об одном и том же spi говорим? Который суть два DO>> сдвиговых регистра ?
VV> Hет, о разных :) Ты говоришь о пикоманском SPI, а я об VV> AVRовском, BlackFinовском и моторольском.
Я дело имел только с микрочиповским, неужели у остальных оно чем-то принципиально хуже?
VV>>> Все дополнительно усложняется небуфферизированностью VV>>> передачи по SPI и невозможностью посмотреть, в каком VV>>> состоянии находится приемник (идет трансфер или не идет).
DO>> Как это небуферезированностью? Есть регистр сдвига, и есть DO>> буферный регистр.
VV> Хорошо если есть. А если пишется/читается прямо из сдвигалки?
А что, так кто-то делает? У AVR точно есть, уверен и у остальных (лень в даташиты лазить) тоже.
DO>> А идет ли трансфер? Hа то флаг есть.
VV> Флаг есть что трансфер закончен. Hет флага, что трансфер в VV> процессе.
Ну с момента записи в буфер оно в процессе, пока флаг не покажет обратного...
VV>>> Дуплексность сильно усложняет логику. DO>> Я этого как-то не заметил. Прочитал буфер, записал буфер:
VV> Как ты гарантируешь что слейв успевает за мастером?
А как он может не успевать, если он тактируется мастером? Не успевать прочитать байт из буфера и зарядить туда новый? Успевает, как факт. Всегда.
VV> Можно, конечно, сделать пакетный протокол с подтверждениями VV> в обе стороны, но мне больше нравится делать на SPI протокол
Можно, как я показал, и не делать. Никаких зависаний, клинчей и т. п. После сбоев все само восстанавливается. Ноги и развязанные в моем случае линии экономятся.
VV> а-ля I2C. Для этого нужен один общий сигнал квитирования от слейвов к VV> мастеру.
В каких-то частных случаях может быть. Но может и не быть.
dima
formatting link