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

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

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

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

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

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

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

Ответ
Опции темы

SPI через USI + nRF24l01

Непрочитано 30.05.2018, 01:54   #1
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
Стрелка SPI через USI + nRF24l01

Не могу понять, где косячу(

Есть такой говнокод

Код:
	//... Инициализация SPI - USI
void SPI_Init(void)
{
SPI_DDR |= (Bit(SCK) | Bit(MISO));	// Все выводы, кроме MOSI, выходы
SPI_PORT |= (Bit(MOSI) | Bit(MISO));

USICR |= (Bit(USIWM0) | Bit(USICS1) | Bit(USICLK));

}

	//... Передать байт данных
void SPI_WriteByte(uint8_t data)
{
//... Копируем байт в регистр USIDR
USIDR = data;
	
//... Установим флаг начала передачи					
USISR |= Bit(USIOIF);

//... В цикле следим за флагом
while(!(USISR & Bit(USIOIF)))
{
	USICR |= ( Bit(USITC));		// Режим SPI, тактируем шину сами
}

_delay_us(100);                    // Задержка для моста SPI - UART
}

	//... Передать и получить байт данных 
uint8_t SPI_ReadByte(uint8_t data)
{
//... Отправляем байт
SPI_WriteByte(data);

//... Принятый байт возвращаем
return USIDR; 
}
Пытаюсь связаться с nRF24. На все команды записи в регистры возвращает 0, на любую команду чтения из регистров возвращает 15. После команды очистки буфера FIFO возвращает 14. На аппаратном SPI 328p nRF24 работает, код тот-же. Может есть у кого опыт в таких делах? Где косячу? Мост SPI-›UART на 32u4 всё общение по SPI шине видит.
Реклама:

Последний раз редактировалось parovoZZ; 30.05.2018 в 16:54.
parovoZZ вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 04:22   #2
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Осцилограф то чо показывает?
__________________
кагмаподэ магмаподэ
индюк вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 08:46   #3
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Тут не важно, что вы подключаете к интерфейсу, если не можете разобраться с самим интерфейсом. Сначала запускайте SPI. Пока не понятно, в чем проблема.
Easyrider83 вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 11:55   #4
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от индюк Посмотреть сообщение
Осцилограф то чо показывает?
Удобнее логический анализатор - клон saleae от китайцев за $6/ Сильно помогает с интерфейсами. Последний раз - со связью через RS232 "иногда путает символы". А скорость неправильная и изменяется прыжками.

Последний раз редактировалось makakus; 30.05.2018 в 11:57.
makakus вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 14:09   #5
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Чорт, форум код куда запрятал??? Я один его не вижу?


Сообщение от индюк Посмотреть сообщение
Осцилограф то чо показывает?
Ничего не показывает. Нету его.


Сообщение от Easyrider83 Посмотреть сообщение
Тут не важно, что вы подключаете к интерфейсу, если не можете разобраться с самим интерфейсом. Сначала запускайте SPI
Да код стандартный - из апноута. Atmega 32u4 через аппаратный SPI нормально слышит. Правда, залегла она вчера смертью храбрых узкоглазых(((
С SPI не понял - я ж его и запускаю. На огрызке под названием USI. Тиня 24/44/84.
parovoZZ вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 14:38   #6
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от parovoZZ Посмотреть сообщение
Не могу понять, где косячу(

Есть такой говнокод

Код:
	//... Инициализация SPI - USI
void SPI_Init(void)
{
	SPI_DDR |= ((0‹‹MOSI) | (1‹‹SCK) | (1‹‹MISO));	// Все выводы, кроме MOSI, выходы
	SPI_PORT |= ((1‹‹MOSI) | (0‹‹SCK) | (1‹‹MISO));

	USICR |= (Bit(USIWM0) | Bit(USICS1) | Bit(USICLK));

}

	//... Передать байт данных
void SPI_WriteByte(uint8_t data)
{
	//... Копируем байт в регистр USIDR
	USIDR = data;
	
	//... Установим флаг начала передачи					
	USISR |= Bit(USIOIF);

	//... В цикле следим за флагом
	while(!(USISR & Bit(USIOIF)))
	{
		USICR |= ( Bit(USITC));		// Режим SPI, тактируем шину сами
	}

	_delay_us(100);                    // Задержка для моста SPI - UART
}

	//... Передать и получить байт данных 
uint8_t SPI_ReadByte(uint8_t data)
{
	//... Отправляем байт
	SPI_WriteByte(data);

	//... Принятый байт возвращаем
	return USIDR; 
}
Пытаюсь связаться с nRF24. На все команды записи в регистры возвращает 0, на любую команду чтения из регистров возвращает 15. На аппаратном SPI 328p nRF24 работает, код тот-же. Может есть у кого опыт в таких делах? Где косячу? Мост SPI-›UART на 32u4 всё общение по SPI шине видит.
Ну правда, куда код девается?
parovoZZ вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 16:28   #7
AR_Favorit
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от parovoZZ Посмотреть сообщение
Ну правда, куда код девается?
Движок форума съедает. Нужно же ему питаться чем-то. Вот он кодом и питается.

Пробелы, расставленные в неожиданных местах, портят аппетит этому движку. Попробуйте, может получится. Функция предварительного просмотра сообщений, увы, не в помощь.

Впрочем любой, кто нажмет в первом сообщении "процитировать", увидит полную версию того, что вы запостили. Осталось найти такого, который сделает это и при этом помнит, что там с настройками этого уродца - USI

Последний раз редактировалось AR_Favorit; 30.05.2018 в 16:31.
AR_Favorit вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 16:29   #8
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от parovoZZ Посмотреть сообщение
правда, куда код девается?
Он обиделся:

Сообщение от parovoZZ Посмотреть сообщение
Есть такой говнокод
Говнокод стандартный, мост SPI-›UART стандартный, движок форума стандартный... И ни фига не работает. Может, изменить подход?

Сообщение от AR_Favorit Посмотреть сообщение
Функция предварительного просмотра
Это вы про осциллограф?
makakus вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 16:59   #9
parovoZZ
Почётный гражданин KAZUS.RUN
 
Регистрация: 15.11.2010
Сообщений: 2,376
Сказал спасибо: 337
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от AR_Favorit Посмотреть сообщение
Пробелы, расставленные в неожиданных местах, портят аппетит этому движку.
Не, не пробелы. ‹‹ вот эта хрень воздействует.


Сообщение от AR_Favorit Посмотреть сообщение
этого уродца - USI
Ну точно. На бумаге всё красиво, а на деле хрень.


Сообщение от makakus Посмотреть сообщение
Может, изменить подход?
Да! Надо осваивать новые горизонты =)

Сообщение от makakus Посмотреть сообщение
Удобнее логический анализатор - клон saleae от китайцев за $6/
Да кто ж спорит-то. Я даже рядом тему создал про поиски.
parovoZZ вне форума   Ответить с цитированием
Непрочитано 30.05.2018, 17:14   #10
makakus
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: SPI через USI + nRF24l01

Сообщение от parovoZZ Посмотреть сообщение
Я даже рядом тему создал про поиски.
Это про $100 за 100 МГц? Я там молчал, мож вы компьютеры отлаживаете. А мне с АВРками 24 мгц хватает вполне. Главное - дёшево!
makakus вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает SPI через DMA eddy ARM 13 20.01.2014 18:27
USI в ATTiny25 kassiopay Микроконтроллеры, АЦП, память и т.д 1 05.10.2009 12:05
Обмен по SPI - из 8 байтов берет только первый code-by Микроконтроллеры, АЦП, память и т.д 9 18.11.2008 02:41
Опрос АЦП через программный SPI AVR Iamuser Микроконтроллеры, АЦП, память и т.д 8 23.03.2007 18:33
Fuse-биты & программирование через SPI bureau Микроконтроллеры, АЦП, память и т.д 7 03.02.2007 00:22


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.