Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-ноя-18 09:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-29 18:55 
Не в сети

Зарегистрирован: 2019-апр-16 15:01
Сообщения: 7
Возникла необходимость подключаться к датчику LM74CIM5 поддерживающего как SPI, так и Microwire, работает в режиме ведомого. Так как отправка данных на сам датчик не нужна, воспользовался SSP2 порта C (содержит только приемник на пине 2). SPI сконфигурирован как мастер. При попытке считать данные функцией SSP_ReceiveData (MDR_SSP2) не происходит сброса по CS и отсутствует CLK. При попытке же отправить данные по SPI оба сигнала отрабатываются корректно. Пробовал поднять работу по Microware на этом же порту - ситуация полностью аналогичная: передача отрабатывается, на прием тишина. Программно реализованный SPI работает. В спецификации не нашел никаких замечаний по работе SSP при использовании порта С, работаю без прерываний. В чем может быть проблема?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-29 19:29 
Не в сети
Аватара пользователя

Зарегистрирован: 2019-янв-15 10:14
Сообщения: 33
Откуда: г. Орел
Похоже что это связанно с тем чтобы логика модуля начала работать все таки какие то данные (все нули или единички) необходимо отправить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-29 19:37 
Не в сети

Зарегистрирован: 2019-апр-16 15:01
Сообщения: 7
Shrek писал(а):
Похоже что это связанно с тем чтобы логика модуля начала работать все таки какие то данные (все нули или единички) необходимо отправить.


Учитывая, что интерфейс построен на сдвиговых регистрах вполне возможно, что функция приема не запускает тактирование, а просто опрашивает буфер и все же нужно делать цикл отправил-считал. Попробую завтра так и сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-30 09:07 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 455
Откуда: ПКК "Миландр"
Загляните внутрь SSP_ReceiveData(), она просто вычитывает уже принятые ранее данные.
В SPI clock генерит всегда мастер, и генерит он его только когда выдает свои данные в линию, синхронно принимая входящие данные. Т.е. для чтения слова от ведомого, надо как минимум осуществить выдачу слова, например нуля. Поскольку пин TX не нужен, то его можно в функцию SPI не назначать.

По microwire когда смотрел что происходит на линиях, картинка во вложении.


Вложения:
Microwire.png
Microwire.png [ 21.97 КБ | Просмотров: 638 ]

_________________
Отдел технической поддержки support@milandr.ru
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-30 14:21 
Не в сети

Зарегистрирован: 2019-апр-16 15:01
Сообщения: 7
Vasiliy писал(а):
Поскольку пин TX не нужен, то его можно в функцию SPI не назначать.


Согласно спецификации пин ТХ блочится для режима ведомого, но попробую.

Добавил проверку флага BSY, чтобы считывать буфер приемника по окончании приема. Получил следующую картину (данные приходят с задержкой и как будто игнорируются приемником). При считывании стабильно имею 0x00


Вложения:
SPI.PNG
SPI.PNG [ 6.74 КБ | Просмотров: 621 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI/Microwire 1986ВЕ92У
СообщениеДобавлено: 2019-апр-30 15:26 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 455
Откуда: ПКК "Миландр"
Данные не могут приходить без Clock-а. На каждый фронт CLK устройства выставляют на свои TX-выводы текущий бит слова данных, а при спаде CLK считывают со своих выводов RX то, что на выводах устоялось. Это передача одного бита, действия на фронты/спады настраиваются. Так работает SPI режим.

Если бы LM74CIM5 работал в режиме SPI, то вероятно он должен был что-то вывести в ответ на CLK. Смотрите по спецификации что с LM74CIM5 не так. Возможно LM74CIM5 ждет обращения по Microwire а не по SPI, поэтому ничего не выдвигает?
Либо возможно в LM74CIM5 сначала надо задать какие-то команды чтобы он откликнулся.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 4


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB