реклама на сайте
подробности

 
 
> Связь двух контроллеров по SPI.
Jenya7
сообщение Mar 16 2016, 08:06
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



у меня есть драйвер на Mega168. мне понадобилось связать две платы вместе. из свободных имеющихся интерфейсов есть только SPI. думаю сделать Master-Slave. с мастером все понятно а как организовать слейв на SPI?

интересно такой пример будет работать со стороны слейва?
Код
ISR(SPI_vect)
{
    uint8_t command, reply;
    command = SPDR;   // Slave has received
    switch(command)
    {
        case 1: reply = 101; break;
        case 2: reply = 102; break;
        case 3: reply = 103; break;
    }
    SPDR = reply;     // Slave sends on next SPI          
}


Сообщение отредактировал Jenya7 - Mar 16 2016, 08:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Палыч
сообщение Mar 16 2016, 12:30
Сообщение #2


Гуру
******

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



Цитата(Jenya7 @ Mar 16 2016, 12:06) *
с мастером все понятно а как организовать слейв на SPI?
интересно такой пример будет работать со стороны слейва?

Начну со второго вопроса: да, теоретически будет работать.

Теперь об организации ПО мастера и подчиненного устройства. Подозреваю, что с мастером Вам не все понятно, раз возникли вопросы с режимом slave. Например, в Вашем примере:
1) устройство-мастер передаёт по SPI первый байт (байт команды)
2) подчиненное устройство приняв по SPI байт через некоторое время запустит программу обработки прерывания от SPI;
3) программа обработки прерывания считает принятый байт с регистра, определит его значение и положит на регистр байт ответа; на всё это (шаг 2-3) потребуется время - Вы должны определит максимальное время на ответ подчиненного устройства, при этом учесть время работы других более приоритетных процедур обработки прерывания.
4) устройство-мастер выждав после передачи время, необходимое для гарантированной реакции подчиненного устройства на первый байт, производит считывание байта ответа.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Связь двух контроллеров по SPI.   Mar 16 2016, 08:06
|- - 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   SPI - Это дуплекс , если Slave положил правильный ...   Mar 16 2016, 20:23
|- - Палыч   Цитата(ILYAUL @ Mar 17 2016, 00:23) SPI -...   Mar 17 2016, 07:00
|- - ILYAUL   Цитата(Палыч @ Mar 17 2016, 10:00) Ключев...   Mar 17 2016, 07:18
||- - Палыч   Цитата(ILYAUL @ Mar 17 2016, 11:18) элеме...   Mar 17 2016, 07:36
|- - Lerk   Цитата(Палыч @ Mar 17 2016, 10:00) В AVR ...   Mar 17 2016, 07:40
|- - Палыч   Под термином "мастер" понимается МК, SPI...   Mar 17 2016, 11:03
|- - Lerk   Цитата(Палыч @ Mar 17 2016, 14:03) Под те...   Mar 17 2016, 15:13
- - ILYAUL   ЦитатаКстати, как реализовать команду "чтение...   Mar 21 2016, 12:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01751 секунд с 7
ELECTRONIX ©2004-2016