Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 27.10.2013, 03:00   #11
AlexSka Меню Пользователя
Вступил в клуб
 
Регистрация: 05.03.2012
Сообщений: 29
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Вот, работа с модулем 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();
}
Помогите настроить CC1101 на прием пультов с 433МГц
AlexSka вне форума   Ответить с цитированием
Старый 27.10.2013, 06:00   #12
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,309
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Вот с таким конфигом попробуйте
Код:
#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
};
Взято с этого топика http://phreakerclub.com/forum/showth...ики&page=2
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 27.10.2013, 17:29   #13
AlexSka Меню Пользователя
Вступил в клуб
 
Регистрация: 05.03.2012
Сообщений: 29
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Большое спасибо, для китайской сигналки на 433МГц подошло. Буду пробовать еще для радиорозетки на 433 (а то ее не хочет видеть).

Последний раз редактировалось AlexSka; 27.10.2013 в 17:31.
AlexSka вне форума   Ответить с цитированием
Старый 28.10.2013, 06:46   #14
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,309
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Там желательно не узкополосный приемник,а широко полосный.
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 29.10.2013, 02:58   #15
AlexSka Меню Пользователя
Вступил в клуб
 
Регистрация: 05.03.2012
Сообщений: 29
Question Re: Перехват кодировки Princeton с помощью Arduino

Попробовал написать собственный выброс 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 библиотеки.
Вложения
Тип файла: zip Princeton.zip (52.1 Кб, 81 просмотров)
AlexSka вне форума   Ответить с цитированием
Старый 29.10.2013, 03:34   #16
AlexSka Меню Пользователя
Вступил в клуб
 
Регистрация: 05.03.2012
Сообщений: 29
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

выброс вообще неправильный, не перебирается код
AlexSka вне форума   Ответить с цитированием
Старый 04.11.2013, 08:48   #17
petja Меню Пользователя
Резидент клуба
 
Регистрация: 20.07.2011
Сообщений: 345
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

При заливке в плату. Появляется ошибка.
Подскажите, что это за ошибка?
И как её исправить?
Удачи!
Изображения
Тип файла: jpg verify.JPG (48.7 Кб, 109 просмотров)
Тип файла: jpg upload.JPG (50.4 Кб, 77 просмотров)
petja вне форума   Ответить с цитированием
Старый 04.11.2013, 10:33   #18
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,309
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Ардуино в системе нормально определилась?Ком порт правильно выставлен?На первом и втором выводе уно ничего не установлено?
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Старый 06.11.2013, 10:58   #19
petja Меню Пользователя
Резидент клуба
 
Регистрация: 20.07.2011
Сообщений: 345
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Драйвер установил.
Arduino Nano на третъем com порте ( Com3).
А что должно быть на первом и втором выводе.
И как установить?
Удачи!
petja вне форума   Ответить с цитированием
Старый 06.11.2013, 13:04   #20
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,309
По умолчанию Re: Перехват кодировки Princeton с помощью Arduino

Нет просто бывает что например висит блютуз или трансивер на 1,2-это RX,TX USARTa и по этому не прошивается.У меня на 3 ком порте модем встрроенный висит.Можно в настройках порт переназначить на свободный.
Еше вопрос-любой скетч не прошивается или этот?
__________________
Правильно поставленный вопрос-на половину полученный ответ;)
++++++++++++++++++++++++++++++++++++++
[url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url]
DIVER_SANT вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

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

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



Текущее время: 03:41. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика