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

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

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

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

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

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

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

 
Опции темы
Непрочитано 08.02.2010, 17:05  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Не совсем всё таки ясно с CS.
Вы говорите, что он нужен даже если периферийное устройство одно.
А в этом описании http://wiki.auditory.ru/%D0%98%D0%BD...0%B9%D1%81_SPIговорят, что эти выводы использовать необязательно.
Прояснил бы кто эту путаницу.
Реклама:
yellow87 вне форума  
Непрочитано 08.02.2010, 17:15  
yellow87
Вид на жительство
 
Аватар для yellow87
 
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
yellow87 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

И вот здесь бы тоже разъяснили что к чему.
http://www.microcontrollerov.net/ind...up-and-use-spi
(сразу перед пунктом 2.1)
Говорится о том, что "ведущее устройство для того, чтобы получить данные из ведомого устройства, должно послать данные ведомому устройству - для чтения данных с датчика необходимо послать датчику произвольные данные"
Ведь я то надеялся вывод с МК типа MOSI вообще не использовать, а вроде бы как нужно.
???
yellow87 вне форума  
Непрочитано 08.02.2010, 17:48  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

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

Честно говоря, SPI не юзал софтовый. I2C и UART - часто. Особенно последний. Удобно при отладке
Там же разные варианты бывают. То CLOCK надо высоким оставить, то передать надо 16 бит вместо 8. В результате приходишь к выводу, что проще самому работать напрямую с регистром и полностью контролировать весь процесс. Зато с I2C проще работать через библиотеку. А то с сигналами АСК запутаться легко.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
DK (08.02.2010)
Непрочитано 08.02.2010, 17:51  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
Ведь я то надеялся вывод с МК типа MOSI вообще не использовать, а вроде бы как нужно.
Вы бы написали что за девайс подключаете, больше ответов получите. А так произвольные данные можно послать и не с контроллера - подтяните MOSI слейва к Vcc через резистор и освободится вывод MOSI на контроллере. Будете посылать "произвольные 0xFF" И в минимуме обойдетесь SCK и CS.
kison вне форума  
Непрочитано 08.02.2010, 17:58  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,535
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Сообщение от yellow87 Посмотреть сообщение
И вот здесь бы тоже разъяснили что к чему.
http://www.microcontrollerov.net/ind...up-and-use-spi
(сразу перед пунктом 2.1)
Говорится о том, что "ведущее устройство для того, чтобы получить данные из ведомого устройства, должно послать данные ведомому устройству - для чтения данных с датчика необходимо послать датчику произвольные данные"
Ведь я то надеялся вывод с МК типа MOSI вообще не использовать, а вроде бы как нужно.
???
MOSI не обязательно подключать если только читаете, главное чтобы шли тактовые импульсы по SCK и ведомый будет выставлять данные.

По поводу CS, возможно если вы только читаете и устройство всегда выдает фиксированный ответ, может ему и не нужен строб CS. Но я таких устр-в не знаю. С теми с которыми имел дело, EEPROM, DAC, RF и тп всем для записи/чтения нужен CS. То есть когда вы начинаете передавать данные ведомому оно принимает их в свой сдвигающий регистр, после окончания передачи вы переводите CS в 1, что ведомым расценивается как окончание передачи и выполняется какое-то действие, например в EEPROM после этого происходит запись.
realid вне форума  
Непрочитано 08.02.2010, 23:16  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

При использовании сименсовского экрана я в библиотеки ставлю вот такую функцию:
PHP код:

void SoftSPI_write
(char SPI_Data_Bytechar SPI_data_mode)
{
//SPI_data_mode - Отправляем комманды (value 1) Или данные (any other than 1) 
  
char SPICount;                                       // Счетчик для отправки 8 бит
  
lcd_port.LCD_CS 1;                                 // Убедимся что до выбора устройства у нас CS будет в 1
  
lcd_port.LCD_SCK 0;                                // А синхропиналка в 0
  
if (SPI_data_mode==1)                                // Шлем данные или команды?
    
lcd_port.LCD_RESET=1;
   else 
    
lcd_port.LCD_RESET=0;
  
lcd_port.LCD_CS 0;                                 // Выбираем раба на шине SPI 
  
for (SPICount 0SPICount ‹ 8SPICount++)         // Крутим отправку 8 бит
  
{
    if (
SPI_Data_Byte 0x80)                          // Что у нас там в нашем байте 1 или 0 сейчас в очереди?  
      
lcd_port.LCD_MOSI 1;                           // Ставим ногу MOSI в нужное состояние
    
else
      
lcd_port.LCD_MOSI 0
    
lcd_port.LCD_SCK 1;                              // Перекидываем синхропиналку
    
lcd_port.LCD_SCK 0;
    
SPI_Data_Byte ‹‹= 1;                               // Сдвигаем наш байт влево на копеечку ()
  
}                                                    // И крутим пока не выйдут все 8 бит
  
lcd_port.LCD_CS 1;                                 // Отрываем рабу голо...отключаем его из цепи выбора
  
lcd_port.LCD_MOSI 0;                               // Правильно завершаем работу  

Только на вывод, но работает шустро, практически синхронно с самим МК
Единственный недостаток - приходится ждать пока не отправится весь байт((((
MasterMushi вне форума  
Непрочитано 09.02.2010, 18:53  
motleycrue
Частый гость
 
Регистрация: 07.01.2009
Сообщений: 12
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
motleycrue на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Люди будьте добры, подскажите, пожалуйста. После того как в программе я занес данные в регистр SPDR (при установленном в регистре SPCR флага включения SPI) сразу начинается идти передача данных через SPI, в этот момент передачи МК продолжает выполнять программу или выполнение программы на время передачи данных останавливается?
motleycrue вне форума  
Непрочитано 09.02.2010, 19:18  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI в контроллере без интерфейса

Работа регистра не мешает работе вашей программы. Для того периферия и сделана. По окончанию можно вызвать прерывание, чтобы снова наполнить буфер.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
motleycrue (09.02.2010)
 

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

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

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:14.


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