Привет. Хочу сделать брелок для открытия шлагбаума. Частота 433 МГц. Модуляция PWM-ASK показал на рисунки (если назвал не правильно то поправьте). Снял осциллограмму с брелка который открывает шлагбаум с помощью приемника CHJ-9921 купленного на алиэкспрес. Увидал, что кодировка похожа на pwm-ask (?) т.е. кодировка '0' и '1' происходит с помощью скважности, период сигнала остается тем же. Плюс в начале преамбула.
Вот думаю, можно такой же сигнал сделать с помощью cc1101 от ti?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Спасибо. Всю нужную информацию по cc1101 узнал. Теперь осталось разобраться с настройками данного модуля. Хотел еще спросить. Вот мне надо две несущей частоты 433 и 868 МГц. Для решения можно пойти тремя путями (которые я вижу): 1. Применить две микросхемы cc1101. 2. Применить мультиплексор для коммутации. 3. Поставить одну антенну (допустим на 433) и просто переключать частоту в сс1101. Тогда получается на 868 будет большее затухание. Как бы вы решили?
Можно попросить дать ссылку на pcb антенны 433 и 868 МГц?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
За один клик это не делается. В правой части экрана студио видны регистры настройки чипа. Для их изменения нужно кликнуть на регистр мышкой. Описание регистров приведено в ДШ на чип. Какие места в ДШ читать я указал выше. Для настройки функций пинов см. описание регистров IOCFG.
Не понял в каком регистре меняется мощность передатчика? Создавал два проекта в smart rf studio с разными мощностями передатчика. В одном случаи ставил 0 db в другом 10 db, другие параметры не трогал. Увидал, что сгенерированный код в одном случаи и в другом одинаковый.
halRfWriteReg(IOCFG0,0x0d); //GDO0 Output Pin Configuration halRfWriteReg(FIFOTHR,0x47); //RX FIFO and TX FIFO Thresholds halRfWriteReg(SYNC1,0x00); //Sync Word, High Byte halRfWriteReg(SYNC0,0x00); //Sync Word, Low Byte halRfWriteReg(PKTLEN,0x00); //Packet Length halRfWriteReg(PKTCTRL0,0x32);//Packet Automation Control halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control halRfWriteReg(FSCTRL0,0x00); halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte halRfWriteReg(FREQ1,0xB0); //Frequency Control Word, Middle Byte halRfWriteReg(FREQ0,0x71); //Frequency Control Word, Low Byte halRfWriteReg(MDMCFG4,0xA7); //Modem Configuration halRfWriteReg(MDMCFG3,0x32); //Modem Configuration halRfWriteReg(MDMCFG2,0x30); //Modem Configuration halRfWriteReg(MDMCFG1,0x22); halRfWriteReg(MDMCFG0,0xF8); halRfWriteReg(DEVIATN,0x40); //Modem Deviation Setting halRfWriteReg(MCSM2,0x07); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM1,0x30); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration halRfWriteReg(FOCCFG,0x16); //Frequency Offset Compensation Configuration halRfWriteReg(AGCCTRL2,0x04);//AGC Control halRfWriteReg(AGCCTRL1,0x00);//AGC Control halRfWriteReg(AGCCTRL0,0x92);//AGC Control halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control halRfWriteReg(FREND1,0xB6); //Front End TX Configuration halRfWriteReg(FREND0,0x11); //Front End TX Configuration halRfWriteReg(FSCAL3,0xE9); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration halRfWriteReg(TEST2,0x81); //Various Test Settings halRfWriteReg(TEST1,0x35); //Various Test Settings halRfWriteReg(TEST0,0x09); //Various Test Settings
На ножки GDO0 в момент передачи с пульта информации, сигнала не обнаружено. Смотрел осциллографом. Канал SPI проверял, подавал команды на ножку GDO0 CLK_XOSC/n все работали.
Проверьте соответствие частот и методов модуляции передатчика и приёмника. Другого на расстоянии, не видя кода, схемы, и всего проекта в целом, мне трудно что-то советовать.
модуляция ASK как понимаю простая азбука морзе, когда есть несущая логическая '1', когда нет логический '0'. Пробовал подключал китайский приемник CHJ-9921, он кажет сигнал на выходе рис.1. Посмотрел сигнал на SPI, тоже все нормально рис.2. Смотрел на ножках SCLK и SI. Сигнал SC есть проверял. Вот последней код: Спойлер
halRfWriteReg(IOCFG2,0x0d); //GDO0 Output Pin Configuration //ItStatus1 = SpiReadRegister(IOCFG2); halRfWriteReg(FIFOTHR,0x07); //RX FIFO and TX FIFO Thresholds halRfWriteReg(SYNC1,0x00); //Sync Word, High Byte halRfWriteReg(SYNC0,0x00); //Sync Word, Low Byte halRfWriteReg(PKTLEN,0x00); //Packet Length halRfWriteReg(PKTCTRL0,0x32);//Packet Automation Control halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control halRfWriteReg(FSCTRL0,0x00); halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte halRfWriteReg(FREQ1,0xB0); //Frequency Control Word, Middle Byte halRfWriteReg(FREQ0,0x71); //Frequency Control Word, Low Byte halRfWriteReg(MDMCFG4,0xAC); //Modem Configuration halRfWriteReg(MDMCFG3,0x22); //Modem Configuration halRfWriteReg(MDMCFG2,0x30); //Modem Configuration halRfWriteReg(MDMCFG1,0x22); halRfWriteReg(MDMCFG0,0xF8); halRfWriteReg(DEVIATN,0x40); //Modem Deviation Setting halRfWriteReg(MCSM2,0x07); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM1,0x30); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration halRfWriteReg(FOCCFG,0x16); //Frequency Offset Compensation Configuration halRfWriteReg(AGCCTRL2,0x04);//AGC Control halRfWriteReg(AGCCTRL1,0x00);//AGC Control halRfWriteReg(AGCCTRL0,0x92);//AGC Control halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control halRfWriteReg(FREND1,0xB6); //Front End TX Configuration halRfWriteReg(FREND0,0x11); //Front End TX Configuration halRfWriteReg(FSCAL3,0xE9); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration halRfWriteReg(TEST2,0x81); //Various Test Settings halRfWriteReg(TEST1,0x35); //Various Test Settings halRfWriteReg(TEST0,0x09); //Various Test Settings }
Вроде уже все правильно сделал но все равно не работает зараза. На выходе GOD2 меандр с частотой 6,5 МГц. На пульт нет реакции. Статус возвращается 0x0F. Спойлер
/*halRfWriteReg(IOCFG0,0x2E); //GDO0 Output Pin Configuration halRfWriteReg(IOCFG2,0x0d); //GDO0 Output Pin Configuration ItStatus1 = SpiReadRegister(IOCFG2 | 0x80); halRfWriteReg(FIFOTHR,0x07); //RX FIFO and TX FIFO Thresholds halRfWriteReg(SYNC1,0x00); //Sync Word, High Byte halRfWriteReg(SYNC0,0x00); //Sync Word, Low Byte halRfWriteReg(PKTLEN,0x00); //Packet Length halRfWriteReg(PKTCTRL1,0x00);//Packet Automation Control halRfWriteReg(PKTCTRL0,0x32);//Packet Automation Control halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control halRfWriteReg(FSCTRL0,0x00); halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte halRfWriteReg(FREQ1,0xB1); //Frequency Control Word, Middle Byte halRfWriteReg(FREQ0,0x3b); //Frequency Control Word, Low Byte halRfWriteReg(MDMCFG4,0xAC); //Modem Configuration halRfWriteReg(MDMCFG3,0x22); //Modem Configuration halRfWriteReg(MDMCFG2,0x30); //Modem Configuration halRfWriteReg(MDMCFG1,0x22); halRfWriteReg(MDMCFG0,0xF8); halRfWriteReg(DEVIATN,0x40); //Modem Deviation Setting halRfWriteReg(MCSM2,0x07); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM1,0x30); //Main Radio Control State Machine Configuration halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration halRfWriteReg(FOCCFG,0x16); //Frequency Offset Compensation Configuration halRfWriteReg(AGCCTRL2,0x04);//AGC Control halRfWriteReg(AGCCTRL1,0x00);//AGC Control halRfWriteReg(AGCCTRL0,0x92);//AGC Control halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control halRfWriteReg(FREND1,0xB6); //Front End TX Configuration halRfWriteReg(FREND0,0x11); //Front End TX Configuration halRfWriteReg(FSCAL3,0xE9); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration halRfWriteReg(TEST2,0x81); //Various Test Settings halRfWriteReg(TEST1,0x35); //Various Test Settings halRfWriteReg(TEST0,0x09); //Various Test Settings*/
halRfWriteReg(IOCFG2,0x0D); //GDO2 Output Pin Configuration halRfWriteReg(IOCFG0,0x2E); //GDO0 Output Pin Configuration halRfWriteReg(FIFOTHR,0x47); //RX FIFO and TX FIFO Thresholds halRfWriteReg(SYNC1,0x7A); //Sync Word, High Byte halRfWriteReg(SYNC0,0x0E); //Sync Word, Low Byte halRfWriteReg(PKTLEN,0x14); //Packet Length halRfWriteReg(PKTCTRL0,0x32);//Packet Automation Control halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte halRfWriteReg(FREQ1,0xB0); //Frequency Control Word, Middle Byte halRfWriteReg(FREQ0,0x8A); //Frequency Control Word, Low Byte halRfWriteReg(MDMCFG4,0xAC); //Modem Configuration halRfWriteReg(MDMCFG2,0x30); //Modem Configuration halRfWriteReg(DEVIATN,0x40); //Modem Deviation Setting halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration halRfWriteReg(FOCCFG,0x16); //Frequency Offset Compensation Configuration halRfWriteReg(AGCCTRL2,0x43);//AGC Control halRfWriteReg(AGCCTRL1,0x49);//AGC Control halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control halRfWriteReg(FREND0,0x11); //Front End TX Configuration halRfWriteReg(FSCAL3,0xEA); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration halRfWriteReg(TEST2,0x81); //Various Test Settings halRfWriteReg(TEST1,0x35); //Various Test Settings halRfWriteReg(TEST0,0x09); //Various Test Settings
Алекс, я сейчас в отезде до выходных. По приезду будет время - сконфигурирую свой чип на асинхронный приём. Странно, что статус 0х0F даже в режиме приёма. А на приёме-ли он вообще? Без этого на выходе точно ничего не будет.
Вроде получилось принять данные с пульта на 433.92 МГц. Но мне не понятно почему статус возвращается 0x0F. Вот пример: При старте, во основной функцие main: Спойлер
Код:
#define CCxxx0_SNOP 0x3D // No operation. May be used to pad strobe commands to two POWER_UP_RESET_CC1100(); ItStatus1 = SpiReadRegister(CCxxx0_SNOP); // возврат 0x0f?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения