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

    

blox

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник

Информация

  • Город
    Челябинск

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

1 042 просмотра профиля
  1. Во общем попробовал, результат тот же
  2. Спасибо большое! попробую отпишусь.
  3. Приветствую, всех! Поиском на форуме пользовался(может плохо искал?) Столкнулся с проблемой запроса баланса на модеме SIM800C Отправляю модему AT+CSCS="GSM" получаю ОК AT+CUSD=1,"*100#",15 приходит +CUSD: 2 жду 10 секунд, но модем молчит. Если вставить симку другого оператора приходит все как надо, если эту симку вставить в телефон или в другой прибор ответ приходит полностью с балансом. Вопрос может ли оператор запретить ussd для данного модема и если да, то насколько? P.S. Да пробовал и простой вариант ATD*100#; и ATD#100#; и AT+CUSD=1,"*100#" и AT+CUSD=1,"#100#" результат +CUSD: 2 и пусто
  4. Цитата(ZZmey @ Feb 20 2018, 23:34) Разово или серийно? Важна ли "вандалостойкость" компаунда? Выпуск планируется серийно, вандалостойкость минимальна. температурный режим от -20 до +60
  5. Цитата(gte @ Feb 20 2018, 20:45) Какая цель заливки, есть внешняя оболочка или нет, есть требования к твердости компаунда? Нужно герметизировать устройство, плата помещается в пластиковый корпус без крышки, и заливается, наружу выходит лишь провод.
  6. Здравствуйте! нужен компаунд для заливки платы 100x60 мм и высотой 6-8 мм , пробовал эпоксидкой, качество хромает пузырьки видны(возможно плохо размешано ). Есть опасения что возможен отрыв smd при застывании ( хотя 2 платы после заливки работают). может есть что-то более эластичное чем эпоксидная смола?
  7. Цитата(vladec @ Dec 12 2017, 20:07) Вы бы все таки озвучили бы еще и Ваше входное напряжение Входное напряжение от 12 до 14 В ЦитатаНу, так и берите её. Если входной диапазон подходит, то самое то. Преобразователь некапризный, работает нормально. Один из самых недорогих. Согласен что не капризный и уровень пульсаций минимальный, но вдруг есть что получше Был не большой опыт с TPS563200, не понятный выход из строя, возможно разводка, может сами компоненты не ликвид, может лыжи
  8. Здравствуйте, всем! собственно вопрос в названии темы, питание не батарейное, пока выбор пал на ST1S10.
  9. AT+CSMP=17,167,0,25 кто какие параметры задает для этой команды ?
  10. Такое происходит когда отправляю несколько сообщении в течении 1-3 минут
  11. Здравствуйте! отправляю смс с модема например 1." тест 1" 2."тест 2" 3."тест 3". а на телефон приходят 1." тест 3" 2."тест 2" 3."тест 1". кто нибудь сталкивался с таким?
  12. Цитата(Baser @ Apr 3 2017, 14:59) Я не пробовал, но судя по документации, можно. См. команду AT+CIPRXGET и руководство по применению, главу 7.2 SIM800 Series_TCPIP_Application Note Огромное вам Спасибо!!! то что надо!
  13. sim800c

    Здравствуйте, уважаемые! подскажите, сам не нашел, есть ли команда для настройки индикации приема пакета от сервера когда поднято TCP соединение? сейчас при передачи данных на сервер после ответа "SEND OK" приходят данные от сервера, а возможно ли так что модуль будет сообщать что пришело сообщение с сервера( в телите можно увидеть по приему пакета в юарте увидим "SRING").
  14. sx1231 нет приёма

    Здравствуйте!!! подскажите в чем может быть проблема? нет приема сообщения, если поставить максимальную мощность по индикатору напряженности поля вижу что есть передача, а вот приема нет Код        //работа с CCxxx0 #include "sx1231portirovanieH.h"                                           #include "__DELAY_H.h" #include"Mod_UART.h" #include <p24FJ64GA002.h> unsigned char RegistersCfg[] = { // SX1231 configuration registers values     DEF_FIFO, // Left for convenience, not to be changed     DEF_OPMODE | RF_OPMODE_SEQUENCER_ON | RF_OPMODE_LISTEN_OFF | RF_OPMODE_STANDBY,                           DEF_DATAMODUL | RF_DATAMODUL_DATAMODE_PACKET | RF_DATAMODUL_MODULATIONTYPE_FSK | RF_DATAMODUL_MODULATIONSHAPING_00,                         DEF_BITRATEMSB | RF_BITRATEMSB_1200,                       DEF_BITRATELSB | RF_BITRATELSB_1200,                       DEF_FDEVMSB | RF_FDEVMSB_5000,                           DEF_FDEVLSB | RF_FDEVLSB_5000,                           DEF_FRFMSB | RF_FRFMSB_865,                           DEF_FRFMID | RF_FRFMID_865,                           DEF_FRFLSB | RF_FRFLSB_865,                           DEF_OSC1,                             DEF_OSC2,                             DEF_LOWBAT | RF_LOWBAT_OFF | RF_LOWBAT_TRIM_1835,                                                   DEF_LISTEN1 | RF_LISTEN1_RESOL_4100 | RF_LISTEN1_CRITERIA_RSSI | RF_LISTEN1_END_01,                           DEF_LISTEN2 | RF_LISTEN2_COEFIDLE_VALUE,                           DEF_LISTEN3 | RF_LISTEN3_COEFRX_VALUE,     DEF_VERSION,             // Read Only                           DEF_PALEVEL | RF_PALEVEL_PA0_ON | RF_PALEVEL_PA1_OFF | RF_PALEVEL_PA2_OFF | RF_PALEVEL_OUTPUTPOWER_11111,                               DEF_PARAMP | RF_PARAMP_40,                               DEF_OCP | RF_OCP_ON | RF_OCP_TRIM_100,                               DEF_AGCREF | RF_AGCREF_AUTO_ON | RF_AGCREF_LEVEL_MINUS80,                               DEF_AGCTHRESH1 | RF_AGCTHRESH1_SNRMARGIN_101 | RF_AGCTHRESH1_STEP1_16,                               DEF_AGCTHRESH2 | RF_AGCTHRESH2_STEP2_3 | RF_AGCTHRESH2_STEP3_11,                               DEF_AGCTHRESH3 | RF_AGCTHRESH3_STEP4_9 | RF_AGCTHRESH3_STEP5_11,                               DEF_LNA | RF_LNA_ZIN_200 | RF_LNA_LOWPOWER_OFF | RF_LNA_GAINSELECT_AUTO,                               DEF_RXBW | RF_RXBW_DCCFREQ_010 | RF_RXBW_MANT_24 | RF_RXBW_EXP_4,                               DEF_AFCBW | RF_AFCBW_DCCFREQAFC_100 | RF_AFCBW_MANTAFC_20 | RF_AFCBW_EXPAFC_3,                             DEF_OOKPEAK | RF_OOKPEAK_THRESHTYPE_PEAK | RF_OOKPEAK_PEAKTHRESHSTEP_000 | RF_OOKPEAK_PEAKTHRESHDEC_000,                             DEF_OOKAVG | RF_OOKAVG_AVERAGETHRESHFILT_10,                                       DEF_OOKFIX | RF_OOKFIX_FIXEDTHRESH_VALUE,                                       DEF_AFCFEI | RF_AFCFEI_AFCAUTOCLEAR_OFF | RF_AFCFEI_AFCAUTO_OFF,                                   DEF_AFCMSB,             // Read Only                                   DEF_AFCLSB,             // Read Only                                   DEF_FEIMSB,             // Read Only                                   DEF_FEILSB,             // Read Only                                   DEF_RSSICONFIG | RF_RSSI_FASTRX_OFF,                               DEF_RSSIVALUE,          // Read Only                               DEF_DIOMAPPING1 | RF_DIOMAPPING1_DIO0_00 | RF_DIOMAPPING1_DIO1_00 | RF_DIOMAPPING1_DIO2_00 | RF_DIOMAPPING1_DIO3_00,     DEF_DIOMAPPING2 | RF_DIOMAPPING2_DIO4_00 | RF_DIOMAPPING2_DIO5_01 | RF_DIOMAPPING2_CLKOUT_OFF,                               DEF_IRQFLAGS1,     DEF_IRQFLAGS2,                                                                     DEF_RSSITHRESH | 228,    // Must be set to (-Sensitivity x 2)                               DEF_RXTIMEOUT1 | RF_RXTIMEOUT1_RXSTART_VALUE,                               DEF_RXTIMEOUT2 | RF_RXTIMEOUT2_RSSITHRESH_VALUE,                               DEF_PREAMBLEMSB | RF_PREAMBLESIZE_MSB_VALUE,                                       DEF_PREAMBLELSB | RF_PREAMBLESIZE_LSB_VALUE,                                       DEF_SYNCCONFIG | RF_SYNC_OFF | RF_SYNC_FIFOFILL_AUTO | RF_SYNC_SIZE_4 | RF_SYNC_TOL_0,                            DEF_SYNCVALUE1 | 0x69,                               DEF_SYNCVALUE2 | 0x81,                               DEF_SYNCVALUE3 | 0x7E,                               DEF_SYNCVALUE4 | 0x96,                               DEF_SYNCVALUE5 | RF_SYNC_BYTE5_VALUE,                               DEF_SYNCVALUE6 | RF_SYNC_BYTE6_VALUE,                               DEF_SYNCVALUE7 | RF_SYNC_BYTE7_VALUE,                               DEF_SYNCVALUE8 | RF_SYNC_BYTE8_VALUE,                               DEF_PACKETCONFIG1 | RF_PACKET1_FORMAT_VARIABLE | RF_PACKET1_DCFREE_OFF | RF_PACKET1_CRC_OFF | RF_PACKET1_CRCAUTOCLEAR_ON | RF_PACKET1_ADRSFILTERING_OFF,                           DEF_PAYLOADLENGTH | 255,                                   DEF_NODEADRS | RF_NODEADDRESS_VALUE,                                           DEF_BROADCASTADRS | RF_BROADCASTADDRESS_VALUE,                                   DEF_AUTOMODES | RF_AUTOMODES_ENTER_OFF | RF_AUTOMODES_EXIT_OFF | RF_AUTOMODES_INTERMEDIATE_SLEEP,                                       DEF_FIFOTHRESH | RF_FIFOTHRESH_TXSTART_FIFONOTEMPTY | RF_FIFOTHRESH_VALUE,                               DEF_PACKETCONFIG2 | RF_PACKET2_RXRESTARTDELAY_1BIT | RF_PACKET2_AUTORXRESTART_OFF | RF_PACKET2_AES_OFF,                           DEF_AESKEY1 | RF_AESKEY1_VALUE,                                   DEF_AESKEY2 | RF_AESKEY2_VALUE,                                   DEF_AESKEY3 | RF_AESKEY3_VALUE,                                   DEF_AESKEY4 | RF_AESKEY4_VALUE,                                   DEF_AESKEY5 | RF_AESKEY5_VALUE,                                   DEF_AESKEY6 | RF_AESKEY6_VALUE,                                   DEF_AESKEY7 | RF_AESKEY7_VALUE,                                   DEF_AESKEY8 | RF_AESKEY8_VALUE,                                   DEF_AESKEY9 | RF_AESKEY9_VALUE,                                   DEF_AESKEY10 | RF_AESKEY10_VALUE,                                   DEF_AESKEY11 | RF_AESKEY11_VALUE,                                   DEF_AESKEY12 | RF_AESKEY12_VALUE,                                   DEF_AESKEY13 | RF_AESKEY13_VALUE,                                   DEF_AESKEY14 | RF_AESKEY14_VALUE,                                   DEF_AESKEY15 | RF_AESKEY15_VALUE,                                   DEF_AESKEY16 | RF_AESKEY16_VALUE,                                        DEF_TEMP1 | RF_TEMP1_ADCLOWPOWER_ON,                                         DEF_TEMP2                                 }; //***************************************************************************** unsigned char txbuff[16]; unsigned char rxbuff[16]; unsigned char LENG; //---------------------------------------------------------------------------------------------------------------------- unsigned char While_SO(void)                                                       {   unsigned int TWait;                                            TWait=512;                                                     while(SO && TWait) { Nop(); TWait--; }                   if(TWait) return 1;                                             else      return 0;                                           } //---------------------------------------------------------------------------------------------------------------------- unsigned char SPI_Byte_RW(unsigned char Data)                                     {   unsigned char  i;                                               unsigned char  Rz;                                             Rz=0;                                                           SCLK=0;                                                      Œ   for(i=0;i<8;i++)                                               {     if(Data & 0b10000000) SI=1; else SI=0;                           Rz<<=1;                                                         SCLK=1;                                                         if(SO) Rz|=0b00000001;                                           SCLK=0;                                                         Data<<=1;                                                     }   return Rz;                                                     } //---------------------------------------------------------------------------------------------------------------------- void halSpiWriteReg(unsigned char Adr,unsigned char Data)                             {   CSN=0;                                                          if(While_SO())    {      SPI_Byte_RW(Adr | 0b10000000);                                      SPI_Byte_RW(Data);                                                }   CSN=1;                                                         } //---------------------------------------------------------------------------------------------------------------------- unsigned char halSpiReadReg(unsigned char Addr)                                     {   unsigned char X;                                               CSN=0;                                                           if(While_SO())                                                   {     SPI_Byte_RW(Addr & 0b01111111);                                 X=SPI_Byte_RW(0x00);                                           }   else X=0;                                                       CSN=1;                                                         return X;                                                     } //---------------------------------------------------------------------------------------------------------------------- void halSpiStrobe(unsigned char Komm)                                                 {   CSN=0;                                                         if(While_SO())   {      halSpiWriteReg(REG_OPMODE, (RegistersCfg[REG_OPMODE] & 0xE3) | Komm);                         while ((halSpiReadReg(REG_IRQFLAGS1) & RF_IRQFLAGS1_MODEREADY) == 0x00);   }   CSN=1;                                                        ‚ } //---------------------------------------------------------------------------------------------------------------------- void halSpiWriteBurstReg(unsigned char Addr,unsigned char *Buffer,unsigned char Count) {                                                                                   unsigned char  i;                                               CSN=0;                                                           if(While_SO())                                                   {     SPI_Byte_RW(Addr | 0b10000000);                                 for(i=0;i<Count;i++) SPI_Byte_RW(Buffer[i]);                   }   CSN=1;                                                         } //---------------------------------------------------------------------------------------------------------------------- void halSpiReadBurstReg(unsigned char Addr,unsigned char *buffer,unsigned char count)   {   unsigned char  i;                                               CSN=0;                                                           if(While_SO())                                                   {     SPI_Byte_RW(Addr | 0b01111111);                                 for(i=0;i<count;i++) buffer[i]=SPI_Byte_RW(0x00);          ‚   }   CSN=1;                                                         } //---------------------------------------------------------------------------------------------------------------------- void POWER_UP_RESET_SX1231(void)                                                     {   unsigned char i;                                                 CSN=1;                                                         delay_us(1);                                                   CSN=0;   delay_us(1);                                                      CSN=1;   i=40;                                                            while(i) {delay_us(250); i--; }   halSpiStrobe(RF_STANDBY);                                     } //---------------------------------------------------------------------------------------------------------------------- void halRfWriteRfSettings(void)                                                     {   unsigned char i;                                                for(i = 1; i <= REG_TEMP2; i++)    {           halSpiWriteReg(i, RegistersCfg[i]);     }                           halSpiStrobe(RF_STANDBY); } //---------------------------------------------------------------------------------------------------------------------- void halRfSendPacket(unsigned char *txBuffer,unsigned char size)                 {   unsigned short Wait;                                            halSpiStrobe(RF_STANDBY);   halSpiWriteBurstReg(REG_FIFO, txBuffer, size);             halSpiStrobe(RF_TRANSMITTER);                                     Wait=200;                                                   //  while(Wait) //  { //   if((halSpiReadReg(REG_IRQFLAGS2)&RF_IRQFLAGS2_PACKETSENT)==0) { delay_us(100); Wait--; }   //   else break;  // Wait for GDO0 to be set -> sync transmitted //  }   while((halSpiReadReg(REG_IRQFLAGS2)&RF_IRQFLAGS2_PACKETSENT)==0);      halSpiStrobe(RF_STANDBY);   // halSpiStrobe(RF_RECEIVER); } //---------------------------------------------------------------------------------------------------------------------- unsigned char halRfReceivePacket(unsigned char *rxBuffer)   {   unsigned char  PacketLength;                                 if((halSpiReadReg(REG_IRQFLAGS2) &  RF_IRQFLAGS2_FIFONOTEMPTY))   //if((halSpiReadReg(REG_IRQFLAGS2) & RF_IRQFLAGS2_PAYLOADREADY))     {     PacketLength = halSpiReadReg(REG_FIFO);      if(PacketLength <= LENG)                                 //Read data from RX FIFO and store in rxBuffer      {       halSpiReadBurstReg(REG_FIFO,rxBuffer,PacketLength);         return (1);      }     else                                                          {        halSpiStrobe(RF_STANDBY);        halSpiStrobe(RF_RECEIVER);        return 0;                                               ‚      }    }      else      {       halSpiStrobe(RF_RECEIVER);       return 0;      }                                                  ‚ } // ----------------------------------------------------------------------------- void init_SX1231(void)   {      SO_TRIS=1;      SCLK_TRIS=0;      SI_TRIS=0;      CSN_TRIS=0;      RESET_TRIS=0;      CSN=1;      RESET_=0;      POWER_UP_RESET_SX1231();                halRfWriteRfSettings();                    halSpiStrobe(RF_RECEIVER);               // LENG=sizeof(rxbuff);   } //----------------------------------------------------------------------------- unsigned int ReadRssi(void) { // Must be called while in RX     unsigned int value;     halSpiWriteReg(REG_RSSICONFIG, RegistersCfg[REG_RSSICONFIG] | RF_RSSI_START); // Triggers RSSI measurement     while ((halSpiReadReg(REG_RSSICONFIG) & RF_RSSI_DONE) == 0x00);               // Waits for RSSI measurement to be completed     value = halSpiReadReg(REG_RSSIVALUE);                                         // Reads the RSSI result     return value; } /******************************************************************* ** ReadFei : Triggers FEI measurement and returns its value       ** ******************************************************************** ** In  : -                                                        ** ** Out : value                                                    ** *******************************************************************/ signed int ReadFei(void) { // Must be called while in RX     signed int value;     halSpiWriteReg(REG_AFCFEI, RegistersCfg[REG_AFCFEI] | RF_AFCFEI_FEI_START);   // Triggers FEI measurement     while ((halSpiReadReg(REG_AFCFEI) & RF_AFCFEI_FEI_DONE) == 0x00);             // Waits for FEI measurement to be completed     value = ((halSpiReadReg(REG_FEIMSB) << 8) | halSpiReadReg(REG_FEILSB));        // Reads the FEI result     return value; } передаю КодhalRfSendPacket((char*)&txbuff,2); принимаюКодif(halRfReceivePacket(&rxbuff))     {      Led_set(&LedState,100,0,2);       }
  15. Что-то долго мучился с проблемой, как всегда невнимательность нужно было убрать чтение RSSI и LQI в функции чтения(она написана для переменной длины пакета) получалось что пакет я уже прочитал, и пытаюсь считать еще два байта Кодunsigned char halRfReceivePacket(unsigned char *rxBuffer,unsigned char *length)   //проверка наличия пакета и его чтение {   //Defines   #define BYTES_IN_RXFIFO     0x7F   unsigned char  PacketLength;                                  //длина принятого пакета   // This status register is safe to read since it will not be updated after   // the packet has been received (See the CC1100 and 2500 Errata Note)   if((halSpiReadStatus(CCxxx0_RXBYTES) & BYTES_IN_RXFIFO))      //если в RXFIFO есть байты   {     PacketLength = halSpiReadStatus(CCxxx0_RXBYTES);                //Read length byte     if(PacketLength == *length)                                 //Read data from RX FIFO and store in rxBuffer     {       halSpiReadBurstReg(CCxxx0_RXFIFO,rxBuffer,PacketLength);  //чтение всех байт пакета       *length=PacketLength;                                     //возврат длины прочитанного пакета       return (1);                                 }     else                                                        //длина буфера приема недостаточна     {       *length = PacketLength;                                   //вернем фактическую длину пакета       halSpiStrobe(CCxxx0_SIDLE);       // Flush RX FIFO       halSpiStrobe(CCxxx0_SFRX);       return 0;                                                 //пакет не принят     }   }   else return 0;                                                //пакет не принят }