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

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

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

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

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

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

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

 
Опции темы
Непрочитано 06.02.2010, 19:39  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Да это вообще самый простой интерфейс. Работаем так:
Опустили CS - значит выбрали чип. Можно и без этого обойтись, если выбирать не из чего.
Подняли CLOCK. Подождали пару микросекунд, чтобы уровень вырос. На DIN будет первый бит информации. На DOUT посылаем то, что хотим оправить. Не хотим? Не трогаем DOUT.
Считали DIN? Пора подождать не много и опускать CLOCK.
Опустили CLOCK? Надо подождать пару микросекунд, чтобы опустился.
Опустился? Ждем еще не много. Поднимаем. И опять по кругу, пока не считаем байт, 2 байта, сколько угодно байт.
Программно реализуется элементарно. Если использовать переферийный SPI МК - это полезно, когда нет времени ждать. Закинули байт в регистр. Он отправляет. Отправил, выставил флаг в pir1.sspif. Снимаем флаг, читаем регистр, отправляем новый байт в регистр. Один регистр и для приема и для передачи. Можно читать по прерыванию. Как угодно. Если МК ведомый, ставим прерывание по наполнению регистра. Пришла информация - скинули флаг, прочитали, вышли из прерывания. Просто.
Реклама:
Easyrider83 вне форума  
Непрочитано 06.02.2010, 20:39  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,535
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от Easyrider83 Посмотреть сообщение
Да это вообще самый простой интерфейс. Работаем так:
Опустили CS - значит выбрали чип. Можно и без этого обойтись, если выбирать не из чего.
Подняли CLOCK. Подождали пару микросекунд, чтобы уровень вырос. На DIN будет первый бит информации. На DOUT посылаем то, что хотим оправить. Не хотим? Не трогаем DOUT.
Считали DIN? Пора подождать не много и опускать CLOCK.
Опустили CLOCK? Надо подождать пару микросекунд, чтобы опустился.
Опустился? Ждем еще не много. Поднимаем. И опять по кругу, пока не считаем байт, 2 байта, сколько угодно байт.
Программно реализуется элементарно. Если использовать переферийный SPI МК - это полезно, когда нет времени ждать. Закинули байт в регистр. Он отправляет. Отправил, выставил флаг в pir1.sspif. Снимаем флаг, читаем регистр, отправляем новый байт в регистр. Один регистр и для приема и для передачи. Можно читать по прерыванию. Как угодно. Если МК ведомый, ставим прерывание по наполнению регистра. Пришла информация - скинули флаг, прочитали, вышли из прерывания. Просто.
Без CS не обойтись, потому что по его восходящему фронту данные фиксируются в приемнике.
realid вне форума  
Непрочитано 06.02.2010, 20:43  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Смысл примерно ясен.
Только уточните алгоритм управления CS для выбора:
1.одного из трёх перефирийных устройств
2.одного единственного устройства
yellow87 вне форума  
Непрочитано 06.02.2010, 20:57  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,535
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
Смысл примерно ясен.
Только уточните алгоритм управления CS для выбора:
1.одного из трёх перефирийных устройств
2.одного единственного устройства
Для каждого устройства свой CS. А линии SDO, SDI, SCK общие.
realid вне форума  
Непрочитано 07.02.2010, 01:39  
innovator_king
Прописка
 
Аватар для innovator_king
 
Регистрация: 12.05.2009
Сообщений: 232
Сказал спасибо: 56
Сказали Спасибо 43 раз(а) в 35 сообщении(ях)
innovator_king на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Если выбирать нечего, то CS можно напрямую посадить на общий.
innovator_king вне форума  
Непрочитано 07.02.2010, 03:35  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,535
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от innovator_king Посмотреть сообщение
Если выбирать нечего, то CS можно напрямую посадить на общий.
А как вы будете заносить данные в приемник? По восходящему фронту CS данные записываются во внутренние регистры из сдвигающего регистра. Это не просто Chip Select, но еще и строб записи. Вот цитата из даташита на память SPI:
Код:
For the data to be actually written to the array, the CS
must be brought high after the Least Significant bit (D0)
of the nth data byte has been clocked in.
Можно SDI не подключать если только передаете, можно SDO не подключать если только принимаете. НО CS должен быть всегда подключен!

Последний раз редактировалось realid; 07.02.2010 в 03:43.
realid вне форума  
Непрочитано 07.02.2010, 13:24  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

а можно не париться. Взять С или Паскаль или Барсик от Микроэлектроники. Там готовые библиотеки для софтовых I2C и SPI.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 07.02.2010, 16:33  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от DK Посмотреть сообщение
а можно не париться. Взять С или Паскаль или Барсик от Микроэлектроники. Там готовые библиотеки для софтовых I2C и SPI.
Они так погано сделаны. I2c нормально работает. А SPI одни рыдания. По объему кода проще и быстрее поработать напрямую с регистрами.
Easyrider83 вне форума  
Непрочитано 08.02.2010, 09:38  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от Easyrider83 Посмотреть сообщение
SPI одни рыдания.
А в чем выражается?

Честно говоря, SPI не юзал софтовый. I2C и UART - часто. Особенно последний. Удобно при отладке
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 08.02.2010, 11:16  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Использовал реализацию SPI в компиляторе CCS - очень хороша. Пактически такаяже как и на АСМе.
MisterDi вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однокристальные трансиверы TRC101 от RFM... Panchiks Автоматика и аппаратура связи 340 15.05.2017 21:10
Простейший программатор SPI EEPROM dimmich Микроконтроллеры, АЦП, память и т.д 6 09.08.2010 23:08
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


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