Jump to content

    

TORNIS

Участник
  • Content Count

    23
  • Joined

  • Last visited

Community Reputation

0 Обычный

About TORNIS

  • Rank
    Участник
  • Birthday 12/11/1970

Информация

  • Город
    Array

Recent Profile Visitors

1045 profile views
  1. Приветствую! Ищу коллег имеющие опыт работы с сабжевым датчиком. Интересует измеритель качества воздуха и предлагаемая BOSCH библиотека обработки данных BSEC. Есть вопросы по использованию выше описанной библиотеки.
  2. Разобрался. "Диверсити" причина. Подключая к прибору первую антенну, мы ухудшаем условия приема этого входа. Соответственно сигнал лучше слышала вторая антенна и туда отдавала ожидаемую мощу. Вообщем, прошелся по своим аккуратно выложенным граблям :/
  3. Приветствую! Столкнулись с проблемой. В проекте использовался чип SI4463 с ревизией B1. Получили чип с новой ревизией - C2. При запуске партии устройств выяснилось, что выходная мощность устройства не соответствует. Ревизия В1 выдает свои +20дБм. Новая ревизия только +0дБм. Цепи согласования те же. Перекидывая чипы, с С2 на В1 и обратно, на той же плате, еще раз убедился, что проблема в чипе. И видимо в конфигурации чипа. Даташит на чип ни о чем не говорит. Кто нибудь сталкивался с такой проблемой? В какую сторону копать?
  4. С большой уверенностью можно сказать, что проблемы с мощностью. Смотрите настройки выходного каскада передатчика (RFO/PA_BOOST, PA_DAC ...)
  5. Ну если чип трансивера не китайский, а таковых пока еще не видел, то в любом исполнении должны работать. :rolleyes:
  6. ;************************** ; ***** CONFIG LoRa ***** ;************************** .db RegOpMode ,RFLR_OPMODE_LONGRANGEMODE_ON | RFLR_OPMODE_ACCESSSHAREDREG_DISABLE | RFLR_OPMODE_FREQMODE_ACCESS_HF | RFLR_OPMODE_SLEEP .db RegFrfMSB ,0xd9 ; .db RegFrfMID ,0x3c ; .db RegFrfLSB ,0xc8 ; Fstep=Fosc/2^19=61.03515625 Hz, Frf=Fstep*Frf(23:0) -> Frf(23:0)=Frf/Fstep 868949700/61.0351562=14236872(0xD93CC8) .db RegPAConfig ,RFLR_PACONFIG_PASELECT_RFO | 0x7f;RFLR_PACONFIG_PASELECT_RFO | 0x7f .db RegPARamp ,RFLR_PARAMP_3400_US .db RegOCP ,RFLR_OCP_OFF | RFLR_OCP_TRIM_240_MA .db RegLNA ,RFLR_LNA_GAIN_G1 | RFLR_LNA_BOOST_LF_DEFAULT | RFLR_LNA_BOOST_HF_OFF .db RegFIFOAddrPtr ,0x00 ; SPI interface address pointer in FIFO data buffer. .db RegFifoTXBaseAddr ,0x80 ; write base address in FIFO data buffer for TX modulator .db RegFifoRXBaseAddr ,0x00 ; read base address in FIFO data buffer for RX demodulator .db RegFifoRXCurrentAddr ,0x00 ; Start address (in data buffer) of last packet received .db RegIrqFlagsMask ,0x00 ; .db RegIrqFlags ,0x00 ; .db RegModemConfig1 ,RFLR_MODEMCONFIG1_BW_10_41_KHZ | RFLR_MODEMCONFIG1_CODINGRATE_4_5 | RFLR_MODEMCONFIG1_IMPLICITHEADER_ON .db RegModemConfig2 ,RFLR_MODEMCONFIG2_SF_7 | RFLR_MODEMCONFIG2_TXCONTINUOUSMODE_OFF | RFLR_MODEMCONFIG2_RXPAYLOADCRC_OFF;ON ;| 0x03 .db RegSymbTimeoutLsb ,0x90 ; TimeOut = SymbTimeout * Ts .db RegPreambleMsbLora ,0x00 ; Preamble length MSB .db RegPreambleLsbLora ,0x08 ; Preamble Length LSB ; *** в "явном" режиме устанавливать длинну поля данных для передатчика *** .db RegPayloadLengthLora ,0x08 ; Payload length in bytes. .db RegMaxPayloadLength ,0xff ; Maximum payload length .db RegHopPeriod ,0x00 ; Symbol periods between frequency hops. .db RegFifoRxByteAddr ,0x00 ; Current value of RX databuffer pointer (address of last byte written by Lora receiver) .db RegModemConfig3 ,RFLR_MODEMCONFIG3_LOWDATARATEOPTIMIZE_OFF | RFLR_MODEMCONFIG3_AGCAUTO_OFF ; .db RegDioMapping1 ,RFLR_DIOMAPPING1_DIO0_00 | RFLR_DIOMAPPING1_DIO1_00 | RFLR_DIOMAPPING1_DIO2_00 | RFLR_DIOMAPPING1_DIO3_00 .db RegDioMapping2 ,RFLR_DIOMAPPING2_DIO4_00 | RFLR_DIOMAPPING2_DIO5_00 | RFLR_DIOMAPPING2_MAP_PREAMBLEDETECT .db REG_LR_TCXO ,RFLR_TCXO_TCXOINPUT_ON .db REG_LR_PADAC ,RFLR_PADAC_20DBM_OFF .db REG_LR_PLL ,RF_PLL_BANDWIDTH_150 ; .db RegAgcRef ,0x1c ; xx/011001, .db RegAgcThresh1 ,0x0e ; - .db RegAgcThresh2 ,0x5b ; - .db RegAgcThresh3 ,0xcc ; - .db 0xff ,0xff ; eoc Описывать нет необходимости, все и так ясно :rolleyes:
  7. Да, не сказал, что работаю с RXSINGLE! :laughing:
  8. "1" в маске маскирует запрос на соответствующее прерывание. В регистрах описывающих поведение DIO, необходимо выбрать источник ожидаемого прерывания. RXDone появляется по завершению приема пакета. Для удобства, можно читать регистр RegIrqFlags, где по битам PayloadCrcError и ValidHeader можно судить о качестве приема пакета. Следует обратить внимание на бит RxTimeout, сообщающий о ошибке ожидания приема всего пакета, всех его полей. После взведения этого флага, приемник уходит в режим STBY. Потому необходимо постоянно контролировать состояние регистра RegOpMode. У меня отдельный процесс периодично, раз в 50..100мс "пулит" этот регистр и толкает модем в режим приема. Естественно, прерывание замаскировано. Надо очень внимательно разобраться с загружаемой конфигурацией. Там много тонкостей. А так, модем в режиме LoRa, великолепно работает :santa2:
  9. Использую модуль SX1276RF1IAS, от родного кита. На сколько я правильно понял, VR PA и есть тот самый источник напряжения для питания выходного каскада. По схеме, VR PA, подпитывает RFO HF и PA BOOST, который в свою очередь подключен к "двоечному" п-контуру/фильтру. Отсюда складывается, что 100 мВт на выходе будет только в диапазоне 137-174 МГц. Меня тревожит другое, тревожит отсутсвие передачи в диапазоне 137-174 МГц! Видимо в каких-то регистрах записано некорректное значение ...
  10. Приветствую! Кто-нибудь пытался запустить модем sx1276 на двойку (137..174 МГц)? В данный момент бьюсь с конфигурацией модема на 2-х метровый диапазон. Все настройки, согласно даташиту. Статус биты описывают его рабочее состояние, захват PLL присутствует. Не выходит на частоту. На соседних частотах тоже нет, анализатор под рукой. Пока не понятна причина. На 868 МГц все в норме, кроме мощности. Не удалось завести передатчик модема с 100 мВт.
  11. Эта строка (функция) как раз то и читает калибровочное слово из памяти PIC. Если по адресу нахожднения калибровочного слова не будет инструкции RETLW, то не будет возврата из функции _READ_OSCCAL_DATA(), а это означает, что программа будет крутитьтся в начале инициализации вечно. Когда MPLAB сносит (стирает) константу, вместо RETLW там будет пустая ячейка, что интерпретируется как инструкция ADDWF. CALL 0x3ff ; get calibration value MOVWF OSCCAL ; save
  12. Дело в том, что согласно Вашему коду, PD,1 проинициализирован как выход и притянут к корпусу. Т.е. внешние подтяжки ему по-барабану. Тогда уж лучше PD,1 определить как вход и притянуть к плюсу.
  13. Я бы, все же, держал PD,1 подтянутым к плюсу - PORTD = ...|(1<<1)|...
  14. Я бы обратил внимание на то, как сконфигурирован порт PD,1. Питание тоже может сказываться, но при определенных обстоятельствах, я с этого начал пост.