|
|
 |
Ответов
|
Mar 17 2016, 07:00
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(ILYAUL @ Mar 17 2016, 00:23)  SPI - Это дуплекс , если Slave положил правильный ответ в SDR , то мастер его получит - даже если не захочет Ключевое слово в Вашем утверждении - "если". Если подчиненное устройство успело положить правильный ответ до того, как мастер начал процесс обмена, то - да, мастер получит его. Но, если не успел, то и не получит. Я и говорю: мастер должен предусмотреть достаточную задержку между своей посылкой и приемом ответа для того, чтобы подчиненное устройство гарантированно успело положить ответную информацию. Цитата(501-q @ Mar 17 2016, 08:57)  Обычно активный сигнал SS на входе мастера переводит его узел SPI в режим ведомого ... В AVR активный сигнал на входе SS (на ноге SS, настроенной как ввод) разрешает работу сдвигового регистра SPI. И не важно в каком режиме работает SPI - master или slave. Для мастера низкий (активный) сигнал на входе SS фактически означает готовность подчиненного устройства. Этот сигнал теоретически можно было бы использовать при обмене между двумя МК, если бы в AVR была бы некая аппаратная реализация готовности подчиненного устройства, поскольку мастеру необходимо дождаться неких действий подчиненного устройства при передаче ответа. Наличие сигнала готовности подчиненного упростило бы ПО мастера. Поскольку готовность подчиненного устройства аппаратно не поддерживается в AVR, то мастер либо должен сделать необходимой длины паузу при приёме ответа, либо (что я считаю нерациональным) получить информацию о готовности подчиненного другим путем.
|
|
|
|
|
Mar 17 2016, 07:40
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 5-05-11
Пользователь №: 64 797

|
Цитата(Палыч @ Mar 17 2016, 10:00)  В AVR активный сигнал на входе SS (на ноге SS, настроенной как ввод) разрешает работу сдвигового регистра SPI. И не важно в каком режиме работает SPI - master или slave. Для мастера низкий (активный) сигнал на входе SS фактически означает готовность подчиненного устройства. 1. Сигналом SS управляет мастер. 2. Если сигналом SS управляет не мастер, см. п.1. Цитата(ATMega 328p datasheet) 19.3.2 Master Mode When the SPI is configured as a Master (MSTR in SPCR is set), the user can determine the direction of the SS pin. If SS is configured as an output, the pin is a general output pin which does not affect the SPI system. Typically, the pin will be driving the SS pin of the SPI Slave. If SS is configured as an input, it must be held high to ensure Master SPI operation. If the SS pin is driven low by peripheral circuitry when the SPI is configured as a Master with the SS pin defined as an input, the SPI system interprets this as another master selecting the SPI as a slave and starting to send data to it. To avoid bus contention, the SPI system takes the following actions: 1. The MSTR bit in SPCR is cleared and the SPI system becomes a Slave. As a result of the SPI becoming a Slave, the MOSI and SCK pins become inputs. 2. The SPIF Flag in SPSR is set, and if the SPI interrupt is enabled, and the I-bit in SREG is set, the interrupt routine will be executed. Thus, when interrupt-driven SPI transmission is used in Master mode, and there exists a possibility that SS is driven low, the interrupt should always check that the MSTR bit is still set. If the MSTR bit has been cleared by a slave select, it must be set by the user to re-enable SPI Master mode.
|
|
|
|
Сообщений в этой теме
Jenya7 Связь двух контроллеров по SPI. Mar 16 2016, 08:06 Палыч Цитата(Jenya7 @ Mar 16 2016, 12:06) с мас... Mar 16 2016, 12:30 Jenya7 Цитата(Палыч @ Mar 16 2016, 18:30) Начну ... Mar 16 2016, 14:18 AI7 Цитата(Палыч @ Mar 16 2016, 16:30) 4) уст... Mar 25 2016, 19:12 ILYAUL SS - в помощь Mar 16 2016, 13:53 Палыч Цитата(ILYAUL @ Mar 16 2016, 17:53) SS - ... Mar 16 2016, 14:35 Lerk И обратите внимание, что обрабатывать данные в пре... Mar 16 2016, 14:10 ILYAUL А зачем Slave формировать SS - это дело мастера Mar 16 2016, 15:27 Палыч Цитата(ILYAUL @ Mar 16 2016, 19:27) это д... Mar 16 2016, 15:38  Lerk Цитата(Палыч @ Mar 16 2016, 18:38) Нужно ... Mar 16 2016, 16:35   Палыч Цитата(Lerk @ Mar 16 2016, 20:35) Зачем н... Mar 16 2016, 19:39    501-q Приветствую!
Цитата(Палыч @ Mar 17 2016,... Mar 17 2016, 04:57     Gorby Цитата(501-q @ Mar 17 2016, 05:57) С... Mar 18 2016, 10:40      501-q Цитата(Gorby @ Mar 18 2016, 15:40) Включи... Mar 21 2016, 04:59  ILYAUL Цитата(Палыч @ Mar 16 2016, 18:38) Нужно ... Mar 16 2016, 19:19  ILYAUL Цитата(Палыч @ Mar 17 2016, 10:00) Ключев... Mar 17 2016, 07:18   Палыч Цитата(ILYAUL @ Mar 17 2016, 11:18) элеме... Mar 17 2016, 07:36   Палыч Под термином "мастер" понимается МК, SPI... Mar 17 2016, 11:03    Lerk Цитата(Палыч @ Mar 17 2016, 14:03) Под те... Mar 17 2016, 15:13 ILYAUL ЦитатаКстати, как реализовать команду "чтение... Mar 21 2016, 12:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|