Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
13.04.2013, 09:11
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо еще раз))) Даташит читал,но изложение показалось сумбурным)) попробую перечитать))
|
|
|
|
13.04.2013, 09:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Весь даташит читать не надо, только описание регистров... В самом первом включается CRC, в другом настраивается скорость. Если чипы с плюсиками в конце названия - включай 256к, будет дальность на десяток метров больше. Но эти настройки (CRC и скорость) должны совпадать у обоих чипов, вообще все настройки должны совпадать, кроме бита прием-передача конечно))
|
|
|
|
13.04.2013, 12:00
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо))я,скорее всего,буду делать так:оба на прием,потом с робота 10 байт шлю,опять на прием,потом после приема 10 байт другой мегой,переключу её на передачу,вышлю 10 байт команды и на прием её. Ну итд.)) Еще вопрос- прерывание на irq генерируется по приему пакета?)
Последний раз редактировалось Pika4u56; 13.04.2013 в 12:03.
|
|
|
|
13.04.2013, 14:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Включается в регистре - может генерироваться по приему, по передаче, по неуспешной передаче и в любых комбинациях. Все модули по дефолту сидят в приеме, как какой захочет передать - переключается на передачу
|
|
|
|
13.04.2013, 21:45
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо)))Завтра буду пробовать)))
|
|
|
|
14.04.2013, 10:55
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Еще один мой тупой вопрос-мне не очень понятно,какую функцию выполняет обработчик прерывания в библиотеке Tinkerer. Что он вообще делает?)
|
|
|
|
14.04.2013, 11:26
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Ждет IRQ , сбрасывает флаги прерываний в модуле .
То же что остальные поллингом ...
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
14.04.2013, 14:37
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Спасибо))Пока что настройка выглядит так:
Код:
|
mirf_config_register(RF_CH,mirf_CH);
// Set length of incoming payload
mirf_config_register(RX_PW_P0, mirf_PAYLOAD);//Объем буфера 10 байт
mirf_config_register(CONFIG,(0‹‹MASK_RX_DR)|(1‹‹MASK_TX_DS)|(1‹‹MASK_MAX_RT)|(1‹‹EN_CRC)|(1‹‹CRCO));//Включить прерывание по приему пакета,включить CRC
mirf_config_register(RF_SETUP,(1‹‹1)|(1‹‹2));//Мощность 0dBm |
А скорость как выставить? И что за непонятное слово в даташите pipe0,pipe1 итд?))И ещё-вывод SS в spi.h используется,а к nrf24l01+ он не подсоединяется. Тогда зачем он? Извините за тупые вопросы)
Последний раз редактировалось Pika4u56; 14.04.2013 в 15:24.
|
|
|
|
14.04.2013, 17:34
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
Сообщение от Pika4u56
|
И ещё-вывод SS в spi.h используется,а к nrf24l01+ он не подсоединяется.
|
Где? В какой либе ?
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
14.04.2013, 17:38
|
|
Частый гость
Регистрация: 17.06.2010
Сообщений: 40
Сказал спасибо: 28
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Кто-нибудь работал с RF модулями nRF2401A?
В библиотеке от Tinkerer используется spi.h. Вот текст хэдера:
Код:
|
#include "CPU_settings.h"
#include "makros.h"
#define SPI_DDR DDRB
#define SPI_MOSI 3
#define SPI_MISO 4
#define SPI_SS 2
#define SPI_SCK 5
unsigned char spi_writereadbyte(unsigned char data);
void spi_transfer_sync (unsigned char * dataout, unsigned char * datain,unsigned char len);
void spi_transmit_sync (unsigned char * dataout, unsigned char len);
unsigned char spi_fast_shift (unsigned char data);
void spi_init()
{
SPI_DDR &= ~((1‹‹SPI_MOSI) | (1‹‹SPI_MISO) | (1‹‹SPI_SS) | (1‹‹SPI_SCK)); //input
SPI_DDR |= ((1‹‹SPI_MOSI) | (1‹‹SPI_SS) | (1‹‹SPI_SCK)); //output
SPCR = ((1‹‹SPE)| // SPI Enable
(0‹‹SPIE)| // SPI Interupt Enable
(0‹‹DORD)| // Data Order (0:MSB first / 1:LSB first)
(1‹‹MSTR)| // Master/Slave select
(1‹‹SPR1)|(1‹‹SPR0)| // SPI Clock Rate
(0‹‹CPOL)| // Clock Polarity (0:SCK low / 1:SCK hi when idle)
(0‹‹CPHA)); // Clock Phase (0:leading / 1:trailing edge sampling)
SPSR = (0‹‹SPI2X); // Double SPI Speed Bit1
}
unsigned char spi_writereadbyte(unsigned char data) {
SPDR = data;
while((SPSR & (1‹‹SPIF)) == 0);
return SPDR;
}
void spi_transfer_sync (unsigned char * dataout, unsigned char * datain,unsigned char len)
// Shift full array through target device
{
unsigned char i;
for (i = 0; i ‹ len; i++) {
SPDR = dataout[i];
while((SPSR & (1‹‹SPIF))==0);
datain[i] = SPDR;
}
}
void spi_transmit_sync (unsigned char * dataout, unsigned char len)
// Shift full array to target device without receiving any byte
{
unsigned char i;
for (i = 0; i ‹ len; i++) {
SPDR = dataout[i];
while((SPSR & (1‹‹SPIF))==0);
}
}
unsigned char spi_fast_shift (unsigned char data)
// Clocks only one byte to target device and returns the received one
{
SPDR = data;
while((SPSR & (1‹‹SPIF))==0);
return SPDR;
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:05.
|
|