Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 13.02.2012, 15:10  
yuta_86
Частый гость
 
Регистрация: 12.01.2011
Сообщений: 36
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
yuta_86 на пути к лучшему
Печаль SPI что это такое?

товарищи
нашёл в интернет такой код запись по 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);
}
вроде бы всё понятно, но вот следующий вопрос вот например у меня адрес и данные равно 0х06. по nsdi я так понимаю будут передаваться данные?или я что-то путаю? для чего nSCK=1; а потом через задержку nSCK=0; как должны передаваться данные в протоколе? какая последовательность? спасибо
Реклама:
yuta_86 вне форума  
Непрочитано 13.02.2012, 15:31  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: SPI что это такое?

Это программная реализация SPI. причем заточенная под конкретное ус-во.

Сообщение от yuta_86 Посмотреть сообщение
для чего nSCK=1; а потом через задержку nSCK=0;
Это строб данных. Сначало выставляете на ножке MOSI бит данных. потом стробируете его импульсом на ножке SCK.

В общем случае выбор ведомого ус-ва осуществляется выводом SS(для каждого ус-ва свой). В Вашем примере используется адресация - сначало шлётся байт адреса, потом байт данных.

Сообщение от yuta_86 Посмотреть сообщение
вот например у меня адрес и данные равно 0х06. по nsdi я так понимаю будут передаваться данные?
nSDI здесь. как я понял, это вывод MOSI (выход ведущего ус-ва) - в Вашем случае адрес будет передан так - сначало 0x80 | 0x06 -› 0x86, это и будет передано. Данные - 0x06.
_guardianangel вне форума  
Непрочитано 13.02.2012, 16:51  
yuta_86
Частый гость
 
Регистрация: 12.01.2011
Сообщений: 36
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
yuta_86 на пути к лучшему
По умолчанию Re: SPI что это такое?

каким образом идёт передача данных SPI

вот например после первого прохода цикла при 0х06 (0000 0110 )

Addr потом 1000 0110
цикл
i=0 nsdi =(1000 0110 ››7)&(0000 0001)=0000 0001 & 0000 0001 = 0000 0001
i=1 nsdi =(1000 0110 ››6)&(0000 0001)=0000 0010 & 0000 0001 = 0000 0000
i=2 nsdi =(1000 0110 ››5)&(0000 0001)=0000 0100 & 0000 0001 = 0000 0000
i=3 nsdi =(1000 0110 ››4)&(0000 0001)=0000 1000 & 0000 0001 = 0000 0000
i=4 nsdi =(1000 0110 ››3)&(0000 0001)=0001 0000 & 0000 0001 = 0000 0000
i=5 nsdi =(1000 0110 ››2)&(0000 0001)=0010 0001 & 0000 0001 = 0000 0001
i=6 nsdi =(1000 0110 ››1)&(0000 0001)=0100 0011 & 0000 0001 = 0000 0001
i=7 nsdi =(1000 0110 ››0)&(0000 0001)=1000 0110 & 0000 0001 = 0000 0000

так? и что тут получается ничего не пойму
yuta_86 вне форума  
Непрочитано 13.02.2012, 16:54  
yuta_86
Частый гость
 
Регистрация: 12.01.2011
Сообщений: 36
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
yuta_86 на пути к лучшему
По умолчанию Re: SPI что это такое?

то есть получается 1 0 0 0 0 1 1 0 =====››› 86 так ведь?
yuta_86 вне форума  
Непрочитано 13.02.2012, 17:13  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: SPI что это такое?

Сообщение от yuta_86 Посмотреть сообщение
то есть получается 1 0 0 0 0 1 1 0 =====››› 86 так ведь?
По сути - да. В 3 посте результат должен быть не 0000 0001, а 1 - здесь выделяется бит. Остальные строчки по аналогии.
_guardianangel вне форума  
Непрочитано 13.02.2012, 18:06  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: SPI что это такое?

Сообщение от yuta_86 Посмотреть сообщение
каким образом идёт передача данных SPI
.......
так? и что тут получается ничего не пойму
http://www.gaw.ru/html.cgi/txt/doc/m...h_sam7s/29.htm
http://forum.gaw.ru/viewtopic.php?id=11
omercury вне форума  
Непрочитано 14.02.2012, 00:13  
svd71
Временная регистрация
 
Регистрация: 17.09.2009
Сообщений: 68
Сказал спасибо: 13
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
svd71 на пути к лучшему
По умолчанию Re: SPI что это такое?

Сообщение от yuta_86 Посмотреть сообщение
то есть получается 1 0 0 0 0 1 1 0 =====››› 86 так ведь?
практически протокол тупой, до посинения: мастер выставил свой бит (MOSI), слэйв выставил свой (MISO). По команде мастера (SCK) оба устройства зафиксировали принятые биты в буфферах приема, сдвинули на единичку свои внутренние буффера приема и передчи и подготовились для обмера следующего бита.
Остюда вытекает необходимость передачи двух байтов за раз (комманда + данные) - ведь как только устройство получило команду, можно сразу быть готовым правильно работать с данными.
1. Кстати последовательность передачи битов в байте не всегда бывает от младшего к старшему. Советую посмотреть даташиты на аппаратную реализацию SPI определенного контроллера.
2. Вроде как работа SPI "допускает" возможность асинхронного режима работы, но в реальности это не так. Я, по наивности, был в этом уверен и понял, что ошибся, заведя два различных генератора для устройств (один на 12, другой на 10МГц). С одним источником сигнала все прекрасно работало и с программной и с аппаратной реализацией SPI. Добиться в таком случае консенсуса удалось только снизив скорость частоты обмена по шине до кратной обеим частотам. Так что если есть возможность завести генерацию от слэйва или тактировать слейва генератором мастера - будет лучшим решением.
__________________
svd71 вне форума  
Непрочитано 14.02.2012, 00:21  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI что это такое?

Ого, столько нового узнаешь для себя. Думаю, тему можно даже закрепить, если казусу не боязно осрамиться еще хлеще.
Easyrider83 вне форума  
Непрочитано 14.02.2012, 01:56  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
Смех Re: SPI что это такое?

Сообщение от Easyrider83 Посмотреть сообщение
тему можно даже закрепить
С пометкой "Важно"

Сообщение от svd71 Посмотреть сообщение
2. Вроде как работа SPI "допускает" возможность асинхронного режима работы, но в реальности это не так.
Вот те на! А как же синхросигнал?

Мил человек. Функция установки скорости SPI работает только для ведущего.
Нажмите на изображение для увеличения
Название: SPI.jpg
Просмотров: 39
Размер:	20.1 Кб
ID:	31725
Вот если им был самый быстрый, да на DoubleSpeed, то,в принципе, возможно медленный и не успевал...
omercury вне форума  
Непрочитано 14.02.2012, 02:53  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: SPI что это такое?

Сообщение от omercury Посмотреть сообщение
С пометкой "Важно"
причём в главной ветке )))
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что это такое? parcon Информация по радиокомпонентам 0 12.05.2010 14:15
Что это такое 28ch52 Информация по радиокомпонентам 1 22.04.2010 22:24
Что это такое??? Lonely Wolf Производственное оборудование 9 22.04.2010 16:33
[Решено] Что это такое? eu3ab Информация по радиокомпонентам 0 29.01.2010 00:42
Что такое SPI mode 0, 3 ? Maver Микроконтроллеры, АЦП, память и т.д 3 09.02.2006 01:15


Часовой пояс GMT +4, время: 12:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot