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

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

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

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

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

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


 
Опции темы
Непрочитано 03.04.2014, 22:14  
sonartiflo
Частый гость
 
Регистрация: 24.10.2007
Сообщений: 33
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sonartiflo на пути к лучшему
По умолчанию Встроенный SPI в PIC16F873, как запустить?

Пытаюсь разобраться со встроенным SPI в PIC16F873 на уровне ассемблера.

В описании сказано, что в режиме ведущего запуск происходит по записи байта в SSPBUF.
Значит ли это, что сразу после записи в SSPBUF контроллер отправляет SSPBUF в сдвиговый регистр SSPSR и
формирует 8 импульсов синхронизации SCK , на каждый из которых сдвигает по одному разряду из SSPSR на выход SDO,
одновременно читает с SDI в сдвиговый регистр, а по заполнении копирует его в SSPBUF ?
Ниже привожу код, который я попробовал для проверки осциллографом (прерывания пока отключены).
Но на SCK ничего не видно, а на SDO сигнал, близкий к меанру, с периодом , соизмеримым с паузой DELAY .
Чего не хватает в этом цикле, чтобы SPI работал? Может, надо снимать какие-то флаги?

; настройка порта
bsf STATUS,RP0;
movlw B'11010111';
movwf TRISC;
bcf STATUS,RP0;

;настройка режима, полярности SCK и фазы выборки
;(тактовый сигнал FOSC/64=300KHZ)
movlw B'00000010';
movwf SSPCON
bsf STATUS,RP0;
movlw B'11000000';
movwf SSPSTAT
bcf STATUS,RP0

;включение SPI
bsf SSPCON,SSPEN; ;

LOOP
;запись какого-нибудь значения в SSPBUF для старта
movlw B'11001010'
movwf SSPBUF

; пауза 50мс , просто для удобства наблюдения
call DELAY

goto LOOP
Реклама:
sonartiflo вне форума  
Непрочитано 04.04.2014, 23:22  
sonartiflo
Частый гость
 
Регистрация: 24.10.2007
Сообщений: 33
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sonartiflo на пути к лучшему
По умолчанию Re: Встроенный SPI в PIC16F873, как запустить?

Заземлил болтающийся вывод SDI, убрал все паузы. Сигналы на SCK и на SDO красивые, даже без анализа флага SSPIF (оказалось, что есть защита от преждевременной записи в SSPBUF)
sonartiflo вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
как запустить Б.П. PRA Источники питания и свет 7 24.06.2005 13:35
Не удаётся запустить SPI на At90S8515 Coder Микроконтроллеры, АЦП, память и т.д 3 30.03.2005 14:17


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


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