Благодарствую!
SPI (Serial Peripheral Interface) : что это такое?
Объясните доступным языком что собой представляет SPI (Serial Peripheral Interface)и для чего он нужен (что с ним можно сделать)?
Благодарствую!
Благодарствую!
- Реклама
SPI - это интерфейс последовательного обмена данными. Использует одну линию для ввода MISO, одну для вывода MOSI и одну для синхронизации SCK, т.е. он трехпроводный. Обмен идет строко синхронно и одновременно (т.е. ввод и вывод происходят одновременно по соответствующим линиям). Дополнительно задействуется еще одна линия, для задания режима работы устройства - ведущий (master) или ведомый (slave). SPI позволяет аппаратно организовать связь ведущий-ведомый или ведущий-много_ведомых, но в этом случае для каждого отдельного ведомого надо тянуть отдельную линию управления.
Скорость обмена по SPI намного выше, чем по UART, однако из-за отсутствия гарантированного метода обнаружения кадра (кадры попросту отсутствуют) крайне неустойчив при наличии помех (особенно по линии синхронизации), т.е. для передачи на большие расстояния не предназначен.
Используется для работы с микросхемами памяти (в частности, карты Mini-SD могут работать по одному из подмножеств протокола SPI), есть и ПЗУ попроще с этим интерфейсом, есть АЦП и ЦАП, можно соединять несколько микроконтроллеров в сеть... У большинства Атмеловских МК через выводы SPI ведется программирование кристалла.
Скорость обмена по SPI намного выше, чем по UART, однако из-за отсутствия гарантированного метода обнаружения кадра (кадры попросту отсутствуют) крайне неустойчив при наличии помех (особенно по линии синхронизации), т.е. для передачи на большие расстояния не предназначен.
Используется для работы с микросхемами памяти (в частности, карты Mini-SD могут работать по одному из подмножеств протокола SPI), есть и ПЗУ попроще с этим интерфейсом, есть АЦП и ЦАП, можно соединять несколько микроконтроллеров в сеть... У большинства Атмеловских МК через выводы SPI ведется программирование кристалла.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Вопрос по теме.
Куда мне подключить MISO а, куда MOSI.
Как я понял MOSI к data out, MISO к data in.
По выводам м.к. получается, SCK к 7, data out к 5, data in к 6.
М.к. ATTINY13.
Схему и распиновку прилагаю, спасибо.
Куда мне подключить MISO а, куда MOSI.
Как я понял MOSI к data out, MISO к data in.
По выводам м.к. получается, SCK к 7, data out к 5, data in к 6.
М.к. ATTINY13.
Схему и распиновку прилагаю, спасибо.
- Вложения
-
- Програматор.rar
- (19.86 КБ) 504 скачивания
Тот кто впереди, всегда боится отстать, - это наш шанс, вот так то.
MOSI подключать к MOSI, MISO к MISO... MOSI - это "выход ведущего, вход ведомого", MISO - наоборот, "выход ведомого, вход ведущего"... отсюда и плясать. Программатор - это ведущий.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
Вряд ли... хотя гарантию не дам.voin писал(а):Интересно м.к. я мог повредить их перепутав, а ?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Чтоб не путаться:
MOSI - Master Output/Slave Input
MISO - Master Input/Slave Output (ARV уже написал то же самое, только по-русски
)
Принцип соединения - как в RS232, т.е. перекрестно
MOSI - Master Output/Slave Input
MISO - Master Input/Slave Output (ARV уже написал то же самое, только по-русски
Принцип соединения - как в RS232, т.е. перекрестно
Оптимизм х (Опыт + Знания) = const
В том-то и дело, что не перекрестно, а как я выше писал: MOSI к MOSI, MISO к MISO.Aheir писал(а):Принцип соединения - как в RS232, т.е. перекрестно
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
В RS-232 два типа кабелей:
1. Прямой или модемный (вилка-розетка), т.е. удлинитель;
2. Перекрестный или нуль-модемный (розетка-розетка).
Подробности имеются в какой-то из тем на Форуме.
1. Прямой или модемный (вилка-розетка), т.е. удлинитель;
2. Перекрестный или нуль-модемный (розетка-розетка).
Подробности имеются в какой-то из тем на Форуме.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
[quote="ARVне перекрестно, а как я выше писал: MOSI к MOSI, MISO к MISO.[/quote]
С точки зрения формальной логики Вы правы... Да, все верно, это меня плющит на основе одного недостоверного источника..
Виноват.
С точки зрения формальной логики Вы правы... Да, все верно, это меня плющит на основе одного недостоверного источника..
Виноват.
Оптимизм х (Опыт + Знания) = const
Есть АЦП - ADC08031 и микроконтроллер mega16. Передача данных идёт с помощью SPI? Кто из них ведущий, а кто ведомый? На АЦП есть выводы CLK, DO - к каким выводам ATmega16 их подключать?
Заранее спасибо!
Заранее спасибо!
"Всё новое - хорошо забытое старое" - для творцов без творческий мысли.
Нет, один регистр реализован так, что при записи и чтении обращение идет к РАЗНЫМ регистрам. Полный дуплекс - тоже не обман, т.к. по SPI всегда идет ОДНОВРЕМЕННАЯ передача вместе с приемом. Выдал свой байт - значит, уже принял байт от твоего "собеседника".
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Повторяю: отправил байт - можешь читать принятый. пока передаваемый уходил - одновременно приходил принимаемый.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 78
- Зарегистрирован: Пн май 23, 2011 11:23:39
товарищи
нашёл в интернет такой код запись по SPI
вроде бы всё понятно, но вот следующий вопрос вот например у меня адрес и данные равно 0х06. по nsdi я так понимаю будут передаваться данные?или я что-то путаю? для чего nSCK=1; а потом через задержку nSCK=0; как должны передаваться данные в протоколе? какая последовательность? спасибо
нашёл в интернет такой код запись по SPI
Код: Выделить всё
void SPI_WRITE(unsigned char Addr, unsigned char data)
{
unsigned char i=0;
Addr=Addr|0x80; // Старший бит в адресе дб равен 1!!!
nSEL=0;
delay_us(10);
for (i=0; i<8; i++)
{
nSDI=(Addr>>(7-i))&0x01;
delay_us(10);
nSCK=1;
delay_us(30);
nSCK=0;
delay_us(20);
}
for (i=0; i<8; i++)
{
nSDI=(data>>(7-i))&0x01;
delay_us(10);
nSCK=1;
delay_us(30);
nSCK=0;
delay_us(20);
}
nSEL=1; // выборка чипа
delay_us(20);
}- Сообщения: 78
- Зарегистрирован: Пн май 23, 2011 11:23:39


