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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 14.02.2018, 14:36  
DPANYTA
Прописка
 
Аватар для DPANYTA
 
Регистрация: 25.11.2008
Сообщений: 114
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
DPANYTA на пути к лучшему
По умолчанию SPI в ATtiny861

Сразу скажу, что мой вопрос можно (или нужно) поместить в раздел "Для начинающих". Что С, что классический Асм знаю плохо.
Шибко не пинайте. И к гуглю/яндексу не отправляйте. Был я там...

Пытаюсь запустить USI в режиме SPI.
Понял, что тактировать можно или битом USICLK, или битом USITC.
В датшите есть пример:
Код:
SPITransfer:
  sts USIDR,r16
  ldi r16,(1«USIOIF)
  sts USISR,r16
  ldi r16,(1«USIWM0)|(1«USICS1)|(1«USICLK)|(1«USITC)
SPITransfer_loop:
  sts USICR,r16
  lds r16, USISR
  sbrs r16, USIOIF
  rjmp SPITransfer_loop
  lds r16,USIDR
  ret
Понимаю так:
Загружаем в USIDR наши данные.
Сбрасываем флаг USIOIF.
Загружаем в r16 b00011011
метка
Загружаем в USICR b00011011 из r16.
Проверяем флаг. (USISR-›r16)
Если 0, то возврат на метку. А там - из r16 в USICR (т.е. USISR-›USICR).???

Где я "не так" расшифровал?
Где тактирование. Т.е. перепады USICLK или USITC от 0 к 1 и наоборот?
Реклама:

Последний раз редактировалось nml; 15.02.2018 в 13:04.
DPANYTA вне форума  
Непрочитано 15.02.2018, 12:16  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,904
Сказал спасибо: 2,969
Сказали Спасибо 3,156 раз(а) в 2,142 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: SPI в ATtiny861

Вот код, который у меня на USI в tiny2313 крутится:
Код:
Memory_Transfer:
		;*****	Обмен по USI/SPI, Fsck ~ Fclk/8
	out USIDR,Memory_data
 .if	SPI_mode==3	; Выбор полярности SCK (по фронту или спаду)
	ldi Memory_data,(1«USIWM0)|(1«USICS0)|(1«USICS1)|(1«US  ICLK)
 .else
	ldi Memory_data,(1«USIWM0)|(1«USICS1)|(1«USICLK)
 .endif
	out USICR,Memory_data		; Разрешение SPI/USI

	ldi	Memory_data,0x10	; 16 changes on USCK = 8 bits
pulse_SCK:
	sbi USICR,USITC
 .if	debug==9
	rcall	DATA_delay	; Отладочный код - задержка для снижения частоты
 .endif
	dec	Memory_data
	brne	pulse_SCK

	in Memory_data,USIDR
	ret
__________________
Экзорцист 40-го уровня.

Последний раз редактировалось nml; 15.02.2018 в 13:05.
ForcePoint вне форума  
Непрочитано 15.02.2018, 14:35  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: SPI в ATtiny861

Сообщение от DPANYTA Посмотреть сообщение
Где я "не так" расшифровал?
Да, как бы нигде... Согласно ДШ все будет работать, согласно "понятиям" сейчас расставим все на свои места...
ldi r16,(1«USIWM0)|(1«USICS1)|(1«USICLK)|(1«USITC)
Здесь sts USICR,r16 все и происходит - USICS1 определено как тактирование от внешнего источника, в этом случае USICLK ("1") определяет источник и в данном примере источником является бит USITC. Регулярная запись "1" в USITC будет как триггер (toggling) переключать тактирование (внимательно смотрим схему Figure 17-1 (ДШ) и изучаем назначение битов регистра USICR...)
Почитай на русском хотя бы здесь о регистрах...
Таким образом Цикл программки SPITransfer крутнется 16 раз... (16 перепадов - 8 импульсов)

Последний раз редактировалось mimuh64; 15.02.2018 в 16:20.
mimuh64 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
Atmega16 - много переферийных устройств SPI pavned AVR 21 23.01.2013 07:00
Работа с EEPROM по SPI dominik2 Микроконтроллеры, АЦП, память и т.д 15 05.05.2012 00:24
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


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