Перейти к содержанию

    

Alex_Golubev

Участник
  • Публикаций

    287
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Alex_Golubev

  • Звание
    Местный

Посетители профиля

1 536 просмотров профиля
  1. NRF52832 PWM capture

    Привет. Не могу понять как лучше сделать захват PWM сигнала на nrf52832, чтобы можно было детектировать период и скважность. У nrf52832 внутри нет специализированного таймера для этого, как у stm32, но зато есть PPI с помощью которого можно объединить вход с таймером. Вот пример инициализируем, допустим pin 5 на вход. После инициализируем GPIOTE на создание двух событий роста фронта и спада. Через PPI привязываем к росту фронта Start Timer а к спаду TASKS_CAPTURE[0], а как остановить таймер? Какое еще событие создать, чтобы таймер остановился и вызвал вектор прерывания для обработки данных? Или нужно как-то по другому инициализировать таймер.
  2. Вроде уже все правильно сделал но все равно не работает зараза. На выходе GOD2 меандр с частотой 6,5 МГц. На пульт нет реакции. Статус возвращается 0x0F. int main(void) { bool erase_bonds; NRF_POWER->DCDCEN = 1; // Initialize. uart_init(); log_init(); timers_init(); buttons_leds_init(&erase_bonds); power_management_init(); ble_stack_init(); gap_params_init(); gatt_init(); services_init(); advertising_init(); conn_params_init(); NRF_LOG_INFO("Debug logging for UART over RTT started."); advertising_start(); nrf_fstorage_api_t * p_fs_api; p_fs_api = &nrf_fstorage_sd; nrf_fstorage_init(&fstorage, p_fs_api, NULL); init_button(); init_Timer_1(); // инициализация таймера 1 обработка клавиатуры NRF_SAADC->CH[0].CONFIG = (SAADC_CH_CONFIG_GAIN_Gain1_4 << SAADC_CH_CONFIG_GAIN_Pos) | (SAADC_CH_CONFIG_MODE_SE << SAADC_CH_CONFIG_MODE_Pos) | (SAADC_CH_CONFIG_REFSEL_VDD1_4 << SAADC_CH_CONFIG_REFSEL_Pos) | (SAADC_CH_CONFIG_RESN_Bypass << SAADC_CH_CONFIG_RESN_Pos) | (SAADC_CH_CONFIG_RESP_Bypass << SAADC_CH_CONFIG_RESP_Pos) | (SAADC_CH_CONFIG_TACQ_40us << SAADC_CH_CONFIG_TACQ_Pos); NRF_SAADC->CH[0].PSELP = SAADC_CH_PSELP_PSELP_AnalogInput0 << SAADC_CH_PSELP_PSELP_Pos; NRF_SAADC->CH[0].PSELN = SAADC_CH_PSELN_PSELN_NC << SAADC_CH_PSELN_PSELN_Pos; NRF_SAADC->RESOLUTION = SAADC_RESOLUTION_VAL_14bit << SAADC_RESOLUTION_VAL_Pos; NRF_SAADC->RESULT.MAXCNT = 16; NRF_SAADC->RESULT.PTR = (uint32_t)&result; NRF_SAADC->SAMPLERATE = 0x7FF | SAADC_SAMPLERATE_MODE_Timers << SAADC_SAMPLERATE_MODE_Pos; NRF_SAADC->ENABLE = SAADC_ENABLE_ENABLE_Enabled << SAADC_ENABLE_ENABLE_Pos; NRF_SAADC->TASKS_CALIBRATEOFFSET = 1; while (NRF_SAADC->EVENTS_CALIBRATEDONE == 0); NRF_SAADC->EVENTS_CALIBRATEDONE = 0; while (NRF_SAADC->STATUS == (SAADC_STATUS_STATUS_Busy <<SAADC_STATUS_STATUS_Pos)); NRF_SAADC->TASKS_START = 1; while (NRF_SAADC->EVENTS_STARTED == 0); NRF_SAADC->EVENTS_STARTED = 0; NRF_SAADC->TASKS_SAMPLE = 1; // while (NRF_SAADC->EVENTS_END == 0); // NRF_SAADC->EVENTS_END = 0; array_test[0] = 0x8a; array_test[1] = 0xa0; NRF_GPIO->DIRSET |= (1UL << SDN); NRF_GPIO->PIN_CNF[SDN] = (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos) | (GPIO_PIN_CNF_INPUT_Disconnect << GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos) | (GPIO_PIN_CNF_DRIVE_Msk) | (GPIO_PIN_CNF_SENSE_Msk); NRFX_IRQ_PRIORITY_SET(GPIOTE_IRQn, NRFX_GPIOTE_CONFIG_IRQ_PRIORITY); NVIC_EnableIRQ(GPIOTE_IRQn); NRF_GPIOTE->CONFIG[0] = (GPIOTE_CONFIG_POLARITY_HiToLo << GPIOTE_CONFIG_POLARITY_Pos) | (30 << GPIOTE_CONFIG_PSEL_Pos) | (GPIOTE_CONFIG_MODE_Event << GPIOTE_CONFIG_MODE_Pos); NRF_GPIOTE->INTENSET = GPIOTE_INTENSET_IN0_Set << GPIOTE_INTENSET_IN0_Pos; init_pin_RF(); // инициализируем порты ввода вывода cc1101 POWER_UP_RESET_CC1100(); init_RF(); // инициализация cc1101 ItStatus1 = SpiTxRxByte(0x3D); nrf_delay_ms(10); ItStatus1 = SpiTxRxByte(0x34); // Enter main loop. for (;;) { idle_state_handle(); Scan_Key();// сканирование клавиатуры } } void RESET_CC1100(void) { Low_CC1100_CSN ; while( ((NRF_GPIO->IN >> SPI_MISO_PIN) & 1UL) != 0); SpiTxRxByte(CCxxx0_SRES); //Reset command while( ((NRF_GPIO->IN >> SPI_MISO_PIN) & 1UL) != 0); Hign_CC1100_CSN; } void POWER_UP_RESET_CC1100(void) { Hign_CC1100_CSN; for(unsigned char i = 0; i < 128; i++){__NOP();} Low_CC1100_CSN ; for(unsigned char i = 0; i < 128; i++){__NOP();} Hign_CC1100_CSN; nrf_delay_ms(5); RESET_CC1100(); // Reset CC1100 } void init_pin_RF(void) { NRF_GPIO->DIRSET |= (1UL << SPI_SCK_PIN); NRF_GPIO->DIRSET |= (1UL << SPI_MOSI_PIN); NRF_GPIO->DIRSET = (0UL << SPI_MISO_PIN); NRF_GPIO->PIN_CNF[SPI_MISO_PIN] = (GPIO_PIN_CNF_DIR_Input << GPIO_PIN_CNF_DIR_Pos) | (GPIO_PIN_CNF_PULL_Pullup << GPIO_PIN_CNF_PULL_Pos); Hign_CC1100_CSN; // установка cs в еденицу } void halRfWriteReg(uint8_t reg, uint8_t value) { uint8_t buf[2]; // локальный буфер для записи в cc1101 buf[0] = reg; // регистр адреса buf[1] = value; // что записываем в регистр NRF_SPIM0->ENABLE &= ~(SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // выключаем SPI NRF_SPIM0->INTENSET = 0; // выключаем все прирывания NRF_SPIM0->PSEL.SCK = SPI_SCK_PIN; // вывод CLK NRF_SPIM0->PSEL.MOSI = SPI_MOSI_PIN; // вывод MOSI NRF_SPIM0->PSEL.MISO = SPI_MISO_PIN; // ввод MISO NRF_SPIM0->FREQUENCY = SPIM_FREQUENCY_FREQUENCY_M4; // установленая скорость 4 МГц NRF_SPIM0->RXD.PTR = NULL; NRF_SPIM0->RXD.MAXCNT = 0; NRF_SPIM0->RXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->TXD.PTR = (uint32_t)&buf; NRF_SPIM0->TXD.MAXCNT = sizeof(buf); NRF_SPIM0->TXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->CONFIG = (SPIM_CONFIG_ORDER_MsbFirst << SPIM_CONFIG_ORDER_Pos) | (SPIM_CONFIG_CPHA_Leading << SPIM_CONFIG_CPHA_Pos) | (SPIM_CONFIG_CPOL_ActiveHigh << SPIM_CONFIG_CPOL_Pos); NRF_SPIM0->ENABLE |= (SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // включаем SPI Low_CC1100_CSN; while( ((NRF_GPIO->IN >> SPI_MISO_PIN) & 1UL) != 0); NRF_SPIM0->EVENTS_ENDRX = 0; NRF_SPIM0->EVENTS_ENDTX = 0; NRF_SPIM0->EVENTS_END = 0; NRF_SPIM0->EVENTS_STARTED = 0; NRF_SPIM0->EVENTS_STOPPED = 0; NRF_SPIM0->TASKS_START = 1; // стартуем while (NRF_SPIM0->EVENTS_STARTED == 0); // ждем событие старта while(NRF_SPIM0->EVENTS_ENDTX == 0); // ждем события окончания передачи данных NRF_SPIM0->EVENTS_ENDTX = 0; Hign_CC1100_CSN; } uint8_t SpiTxRxByte(uint8_t dat) // отправка одного байта в cc1101 { uint8_t buf[1], buf_RX[1]; // локальный буфер для записи в cc1101 buf[0] = dat; // регистр адреса buf_RX[0] = 0; NRF_SPIM0->ENABLE &= ~(SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // выключаем SPI NRF_SPIM0->INTENSET = 0; // выключаем все прирывания NRF_SPIM0->PSEL.SCK = SPI_SCK_PIN; // вывод CLK NRF_SPIM0->PSEL.MOSI = SPI_MOSI_PIN; // вывод MOSI NRF_SPIM0->PSEL.MISO = SPI_MISO_PIN; // ввод MISO NRF_SPIM0->FREQUENCY = SPIM_FREQUENCY_FREQUENCY_M4; // установленая скорость 4 МГц NRF_SPIM0->RXD.PTR = (uint32_t)&buf_RX; NRF_SPIM0->RXD.MAXCNT = sizeof(buf_RX); NRF_SPIM0->RXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->TXD.PTR = (uint32_t)&buf; NRF_SPIM0->TXD.MAXCNT = sizeof(buf); NRF_SPIM0->TXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->CONFIG = (SPIM_CONFIG_ORDER_MsbFirst << SPIM_CONFIG_ORDER_Pos) | (SPIM_CONFIG_CPHA_Leading << SPIM_CONFIG_CPHA_Pos) | (SPIM_CONFIG_CPOL_ActiveHigh << SPIM_CONFIG_CPOL_Pos); NRF_SPIM0->ENABLE |= (SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // включаем SPI Low_CC1100_CSN; while( ((NRF_GPIO->IN >> SPI_MISO_PIN) & 1UL) != 0); NRF_SPIM0->EVENTS_ENDRX = 0; NRF_SPIM0->EVENTS_ENDTX = 0; NRF_SPIM0->EVENTS_END = 0; NRF_SPIM0->EVENTS_STARTED = 0; NRF_SPIM0->EVENTS_STOPPED = 0; NRF_SPIM0->TASKS_START = 1; // стартуем while (NRF_SPIM0->EVENTS_STARTED == 0); // ждем событие старта while(NRF_SPIM0->EVENTS_END == 0); // ждем события окончания передачи данных NRF_SPIM0->EVENTS_END = 0; Hign_CC1100_CSN; return(buf_RX[0]); } uint8_t SpiReadRegister (uint8_t reg) { uint8_t buf[2]; // локальный буфер для записи в cc1101 buf[0] = reg; // регистр адреса buf[1] = 0; NRF_SPIM0->ENABLE &= ~(SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // выключаем SPI NRF_SPIM0->INTENSET = 0; // выключаем все прирывания NRF_SPIM0->PSEL.SCK = SPI_SCK_PIN; // вывод CLK NRF_SPIM0->PSEL.MOSI = SPI_MOSI_PIN; // вывод MOSI NRF_SPIM0->PSEL.MISO = SPI_MISO_PIN; // ввод MISO NRF_SPIM0->FREQUENCY = SPIM_FREQUENCY_FREQUENCY_M4; // установленая скорость 4 МГц NRF_SPIM0->RXD.PTR = (uint32_t)&buf; NRF_SPIM0->RXD.MAXCNT = sizeof(buf); NRF_SPIM0->RXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->TXD.PTR = (uint32_t)&buf; NRF_SPIM0->TXD.MAXCNT = sizeof(buf); NRF_SPIM0->TXD.LIST = (SPIM_RXD_LIST_LIST_Disabled << SPIM_RXD_LIST_LIST_Pos); NRF_SPIM0->CONFIG = (SPIM_CONFIG_ORDER_MsbFirst << SPIM_CONFIG_ORDER_Pos) | (SPIM_CONFIG_CPHA_Leading << SPIM_CONFIG_CPHA_Pos) | (SPIM_CONFIG_CPOL_ActiveHigh << SPIM_CONFIG_CPOL_Pos); NRF_SPIM0->ENABLE |= (SPIM_ENABLE_ENABLE_Enabled << SPIM_ENABLE_ENABLE_Pos); // включаем SPI Low_CC1100_CSN; while( ((NRF_GPIO->IN >> SPI_MISO_PIN) & 1UL) != 0); NRF_SPIM0->EVENTS_ENDRX = 0; NRF_SPIM0->EVENTS_ENDTX = 0; NRF_SPIM0->EVENTS_END = 0; NRF_SPIM0->EVENTS_STARTED = 0; NRF_SPIM0->EVENTS_STOPPED = 0; NRF_SPIM0->TASKS_START = 1; // стартуем while (NRF_SPIM0->EVENTS_STARTED == 0); // ждем событие старта while(NRF_SPIM0->EVENTS_END == 0); // ждем события окончания передачи данных NRF_SPIM0->EVENTS_END = 0; Hign_CC1100_CSN; return(buf[1]); } void init_RF(void) { ItStatus1 = SpiReadRegister(0xf1 | 0x80); /*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 }
  3. Хочу уточнить. Нужно ждать на MISO перехода в нуль при установки cs в нуль?
  4. Прям открытие для меня какое то. А на какой вы странице в даташите прочитали, что нужно ждать логического нуля на MISO? Мне бы хотелось посмотреть временные диаграммы работы SPI в связки с cc1101.
  5. А почему программный SPI ? Аппаратный не подошел ? Почему вы ждете ? while (CC1101_MISO() != 0);
  6. Вот не знаю в чем может быть дело, вроде должно работать а не работает. Начну из далека. Хочу сделать пульт для открытия шлагбаума. Выбор пал на cc1101, но купил еще и CHJ-9921. Дождался наконец то прихода cc1101 и CHJ-9921 c али. Подключил к nrf52832 по spi, предварительно проверил SPI путем замыкания MOSI on MISO и правильность работы CS. Все работало нормально. После подключил cc1101 и тут начались проблемы, CHJ-9921 видит сигнал с пульта от шлагбаума, а cc1101 нет. Проверял выход сигнала на ножки – GDO2 осциллографом, как понимаю должен увидать на PIN – GDO2 сигнал похожий на то что выдала CHJ-9921 рис.1. А его нет. Настроил с помощью rf smart studio cc1101. Сгенерировал там код вставил в проект, но не работает. Модуляция ASK как понимаю простая азбука морзе, когда есть несущая логическая '1', когда нет логический '0'. Пробовал подключал китайский приемник CHJ-9921, он кажет сигнал на выходе рис.1. Посмотрел сигнал на SPI, тоже все нормально рис.2. Смотрел на ножках SCLK и SI. Сигнал SC есть проверял. Прикрепил схему по которой подключал cc1101. Вот последней код: void halRfWriteReg(uint8_t reg, uint8_t value) { uint8_t buf[2]; buf[0] = reg; buf[1] = value; spi_xfer_done = false; nrf_drv_spi_transfer(&spi, buf, 2, NULL, 0); while (!spi_xfer_done) { __WFE(); } } uint8_t SpiReadRegister (uint8_t reg) { uint8_t buf[2]; buf[0] = reg; buf[1] = 0; spi_xfer_done = false; nrf_drv_spi_transfer(&spi, buf, 2, buf, 2); while (!spi_xfer_done) { __WFE(); } return(buf[1]); } void init_RF(void) { ItStatus1 = SpiReadRegister(0xf1); 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 } Может, кто подскажет куда копать?
  7. Привет. Можете поделится рабочем примером для cc1101? Нужен пример настройки режима PWM-ASK. Частота 433.
  8. Вот нарисовал сам. Может кто проверит. вот дока https://www.molex.com/pdm_docs/sd/532610371_sd.pdf 1.rar
  9. Может кто поделится разъемом molex 0532610371 для p-cad 2006?
  10. Микроконтроллер nrf52832. Вот у nrf52832 корпус qfn48 c центральным pad для отвода тепла который в свою очередь подключен к GND. Раньше когда разводил платы для STM32 рисовал центральный полигон и подключал его через переходные на землю. Получалось очень удобно разводить плату. Вопрос, Можно подключить центральный pad через VIA на землю нижнего слоя? Просто боюсь, что будет утекать припой при автомонтаж через via. Хотя на другом слое будет маска которая не даст протечь припою. Размер Via 0.4x0.8. Нашел ссылку http://www.argenox.com/bluetooth-low-energ...n-qfn-or-wlcsp/ в которой показано, что можно так делать но не ясно для какого монтажа так сделано.
  11. Да вы правы Plain дежурки у меня нет для управления по i2c. нужно что-то более простое. Нашел LTC4081, но из доки не понял можно с нее получить 3В? На другом форуме подсказали: 0.8V to VBAT Output Range BAT, CHRG................................................... –0.3V to 6V Как вы думаете Plain подойдет данная микросхема, как простой зарядник акума и dc-dc преобразователь на 3В?
  12. Привет. Может кто поделится типовой схемой включения TPS65721RSNR? Просто не совсем ясно куда нужно подключить, PB_IN, HOLD_DCDC1, MODE, чтобы микросхема сразу после подачи напряжения начала работать (не важно от куда с акума или AC). Понимаю чтобы включить микросхему нужно PB_IN на землю а что делать с HOLD_DCDC1, MODE?
  13. Спасибо за ответы. magnum16 все открылось :).
  14. Привет. Привет. Скачал библиотеку микро USB .lia с сайта http://www.te.com/usa-en/product-1981568-1...p-docs-features попытался конвертировать с помощью library executive, Library\Translate, в окне Library Translate выставлял Source Format = ACCEL ASCII, Destination Format = ACCEL Binary. Но получил ошибку рис. 1. Есть инструкция https://www.snapeda.com/te/, но у меня нет altium буду благодарен если кто-то сделает конвертацию. В архиве сама .lia. 1981568_1.zip
  15. Привет. Нарисовал антенну на 433 МГц рис.1 . Использовал place polygon. Один place polygon на слое TOP другой на BOT. Объединил их VIA. Теперь не знаю как сделать один общий patern из всего этого. После хочу связать patern с symbol и сделать компонент. Есть решения?