![]() |
![]() |
#11 |
Вступил в клуб
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Вот, работа с модулем CC1101 (конфиг модуля работает отлично на прием и передачу)
Проверено с HS2260A-R4 на 315МГц Код:
#include <RCSwitch.h> #include <SPI.h> #define CSn 10 // ---------------------------- cc1101 -- #define SRES 0x30 #define SCAL 0x33 #define SRX 0x34 #define STX 0x35 #define SIDLE 0x36 #define SPWD 0x39 #define IOCFG2 0x00 #define IOCFG1 0x01 #define IOCFG0 0x02 #define FIFOTHR 0x03 #define SYNC1 0x04 #define SYNC0 0x05 #define PKTLEN 0x06 #define PKTCTRL1 0x07 #define PKTCTRL0 0x08 #define ADDR 0x09 #define CHANNR 0x0A #define FSCTRL1 0x0B #define FSCTRL0 0x0C #define FREQ2 0x0D #define FREQ1 0x0E #define FREQ0 0x0F #define MDMCFG4 0x10 #define MDMCFG3 0x11 #define MDMCFG2 0x12 #define MDMCFG1 0x13 #define MDMCFG0 0x14 #define DEVIATN 0x15 #define MCSM2 0x16 #define MCSM1 0x17 #define MCSM0 0x18 #define FOCCFG 0x19 #define BSCFG 0x1A #define AGCCTRL2 0x1B #define AGCCTRL1 0x1C #define AGCCTRL0 0x1D #define WOREVT1 0x1E #define WOREVT0 0x1F #define WORCTRL 0x20 #define FREND1 0x21 #define FREND0 0x22 #define FSCAL3 0x23 #define FSCAL2 0x24 #define FSCAL1 0x25 #define FSCAL0 0x26 #define RCCTRL1 0x27 #define RCCTRL0 0x28 #define FSTEST 0x29 #define PTEST 0x2A #define AGCTEST 0x2B #define TEST2 0x2C #define TEST1 0x2D #define TEST0 0x2E #define PATABLE 0x3E // ---------------------------- cc1101 -- // Sync word qualifier mode = No preamble/sync // CRC autoflush = false // Channel spacing = 49.987793 // Data format = Asynchronous serial mode // Data rate = 3.79372 // RX filter BW = 135.416667 // PA ramping = false // Preamble count = 3 // Whitening = false // Address config = No address check // Carrier frequency = 314.999664 // Device address = 0 // TX power = 0 // Manchester enable = false // CRC enable = false // Deviation = 1.586914 // Packet length mode = Infinite packet length mode // Packet length = 0 // Modulation format = ASK/OOK // Base frequency = 314.999664 // Channel number = 0 byte cc1101_config[]= { IOCFG2, 0x0D, IOCFG1, 0x00, IOCFG0, 0x00, FIFOTHR, 0x47, SYNC1, 0x00, SYNC0, 0x00, PKTLEN, 0x00, PKTCTRL1, 0x00, PKTCTRL0, 0x32, FSCTRL1, 0x06, FREQ2, 0x0C, FREQ1, 0x1D, FREQ0, 0x89, MDMCFG4, 0xA7, MDMCFG3, 0x32, MDMCFG2, 0x30, MDMCFG1, 0x18, DEVIATN, 0x00, MCSM0, 0x18, FOCCFG, 0x00, BSCFG, 0x00, AGCCTRL2, 0x04, AGCCTRL1, 0x00, AGCCTRL0, 0x92, WOREVT1, 0x00, WOREVT0, 0x00, WORCTRL, 0x00, FREND1, 0xB6, FREND0, 0x11, FSCAL3, 0xE9, FSCAL2, 0x2A, FSCAL1, 0x00, FSCAL0, 0x1F, RCCTRL1, 0x00, FSTEST, 0x00, PTEST, 0x00, AGCTEST, 0x00, TEST2, 0x81, TEST1, 0x35, PATABLE, 0x00, PATABLE, 0xc0, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, }; RCSwitch mySwitch = RCSwitch(); void setup() { Serial.begin(9600); pinMode(CSn, OUTPUT); cc1101_init(); cc_config(SRX); mySwitch.enableTransmit(3); mySwitch.setPulseLength(464); mySwitch.setProtocol(1); Serial.println("Working"); } void loop() { cc_config(STX); mySwitch.send("010101010101010100110000"); cc_config(SRX); delay(1000); cc_config(STX); mySwitch.send("010101010101010100110000"); delay(1000); cc_config(SRX); } void cc_config(int a){ SPI.begin(); digitalWrite(CSn, LOW); SPI.transfer(a); digitalWrite(CSn, HIGH); SPI.end(); } void cc1101_init(void){ SPI.begin(); digitalWrite(CSn, LOW); SPI.transfer(SRES); SPI.transfer(SIDLE); delay(100); for(int i=0;i<sizeof(cc1101_config);i++)SPI.transfer(cc1101_config[i]); digitalWrite(CSn, HIGH); SPI.end(); } |
![]() |
![]() |
![]() |
#12 |
Модератор
Регистрация: 27.03.2011
Сообщений: 2,316
|
![]()
Вот с таким конфигом попробуйте
Код:
#include <SPI.h> #define CC_CS 9 #define CC_RX 2 //GDO2 #define CC_TX 3 //GDO0 #define SRES 0x30 #define SCAL 0x33 #define SRX 0x34 #define STX 0x35 #define SIDLE 0x36 #define SPWD 0x39 #define IOCFG2 0x00 #define IOCFG1 0x01 #define IOCFG0 0x02 #define FIFOTHR 0x03 #define SYNC1 0x04 #define SYNC0 0x05 #define PKTLEN 0x06 #define PKTCTRL1 0x07 #define PKTCTRL0 0x08 #define ADDR 0x09 #define CHANNR 0x0A #define FSCTRL1 0x0B #define FSCTRL0 0x0C #define FREQ2 0x0D #define FREQ1 0x0E #define FREQ0 0x0F #define MDMCFG4 0x10 #define MDMCFG3 0x11 #define MDMCFG2 0x12 #define MDMCFG1 0x13 #define MDMCFG0 0x14 #define DEVIATN 0x15 #define MCSM2 0x16 #define MCSM1 0x17 #define MCSM0 0x18 #define FOCCFG 0x19 #define BSCFG 0x1A #define AGCTRL2 0x1B #define AGCTRL1 0x1C #define AGCTRL0 0x1D #define WOREVT1 0x1E #define WOREVT0 0x1F #define WORCTRL 0x20 #define FREND1 0x21 #define FREND0 0x22 #define FSCAL3 0x23 #define FSCAL2 0x24 #define FSCAL1 0x25 #define FSCAL0 0x26 #define RCCTRL1 0x27 #define RCCTRL0 0x28 #define FSTEST 0x29 #define PTEST 0x2A #define AGCTEST 0x2B #define TEST2 0x2C #define TEST1 0x2D #define TEST0 0x2E #define PATABLE 0x3E const byte cc_config[] PROGMEM= { IOCFG0, 0b00000000, IOCFG2, 0b00001101, FIFOTHR, 0b01000111, PKTCTRL0,0b00110010, FSCTRL1, 0x06, FSCTRL0, 0x00, FREQ2, 0x10, FREQ1, 0xB0, FREQ0, 0x71, MDMCFG4, 0x16, MDMCFG3, 0xe4, MDMCFG2, 0b00110000, MDMCFG1, 0x22, MDMCFG0, 0xF8, MCSM2, 0x07, MCSM1, 0x30, MCSM0, 0x18, AGCTRL2, 0b00000100, AGCTRL1, 0x00, AGCTRL0, 0b00010000, FREND1, 0xB6, FREND0, 0b00010001, FSCAL3, 0xE9, FSCAL2, 0x2A, FSCAL1, 0x00, FSCAL0, 0x1F, TEST2, 0x81, TEST1, 0x35, TEST0, 0x09, PATABLE, 0x00, PATABLE, 0xc0, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00 };
__________________
Правильно поставленный вопрос-на половину полученный ответ;) ++++++++++++++++++++++++++++++++++++++ [url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url] |
![]() |
![]() |
![]() |
#13 |
Вступил в клуб
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Большое спасибо, для китайской сигналки на 433МГц подошло. Буду пробовать еще для радиорозетки на 433 (а то ее не хочет видеть).
Последний раз редактировалось AlexSka; 27.10.2013 в 17:31. |
![]() |
![]() |
![]() |
#14 |
Модератор
Регистрация: 27.03.2011
Сообщений: 2,316
|
![]()
Там желательно не узкополосный приемник,а широко полосный.
__________________
Правильно поставленный вопрос-на половину полученный ответ;) ++++++++++++++++++++++++++++++++++++++ [url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url] |
![]() |
![]() |
![]() |
#15 |
Вступил в клуб
Регистрация: 05.03.2012
Сообщений: 29
|
![]()
Попробовал написать собственный выброс Princeton.
Код:
#define TX 10 uint32_t CODE=5558284; void setup() { Serial.begin(9600); pinMode(TX, OUTPUT); } void loop() { SendPrinceton((uint32_t*)&CODE); delay(1000); } #define PRINCETON_TE 450 #define PRINCETON_BITS 24 void SendPrinceton(uint32_t *TCODE) { for(int i=0; i<PRINCETON_BITS; i++) { digitalWrite(TX, HIGH); if(bitRead(*TCODE, i)) { // Log 1 delayMicroseconds(PRINCETON_TE*3); digitalWrite(TX, LOW); delayMicroseconds(PRINCETON_TE); } // Log 0 delayMicroseconds(PRINCETON_TE); digitalWrite(TX, LOW); delayMicroseconds(PRINCETON_TE*3); } digitalWrite(TX, HIGH); delayMicroseconds(PRINCETON_TE); digitalWrite(TX, LOW); delayMicroseconds(PRINCETON_TE*31); } --- Прием нормально работает, когда выброс написан с использованием RCSwitch библиотеки. |
![]() |
![]() |
![]() |
#16 |
Вступил в клуб
Регистрация: 05.03.2012
Сообщений: 29
|
![]() ![]() |
![]() |
![]() |
![]() |
#17 |
Резидент клуба
Регистрация: 20.07.2011
Сообщений: 345
|
![]()
При заливке в плату. Появляется ошибка.
Подскажите, что это за ошибка? И как её исправить? Удачи! |
![]() |
![]() |
![]() |
#18 |
Модератор
Регистрация: 27.03.2011
Сообщений: 2,316
|
![]()
Ардуино в системе нормально определилась?Ком порт правильно выставлен?На первом и втором выводе уно ничего не установлено?
__________________
Правильно поставленный вопрос-на половину полученный ответ;) ++++++++++++++++++++++++++++++++++++++ [url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url] |
![]() |
![]() |
![]() |
#19 |
Резидент клуба
Регистрация: 20.07.2011
Сообщений: 345
|
![]()
Драйвер установил.
Arduino Nano на третъем com порте ( Com3). А что должно быть на первом и втором выводе. И как установить? Удачи! |
![]() |
![]() |
![]() |
#20 |
Модератор
Регистрация: 27.03.2011
Сообщений: 2,316
|
![]()
Нет просто бывает что например висит блютуз или трансивер на 1,2-это RX,TX USARTa и по этому не прошивается.У меня на 3 ком порте модем встрроенный висит.Можно в настройках порт переназначить на свободный.
Еше вопрос-любой скетч не прошивается или этот?
__________________
Правильно поставленный вопрос-на половину полученный ответ;) ++++++++++++++++++++++++++++++++++++++ [url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url] |
![]() |
![]() |