123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732 |
- /*
- * THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND
- * (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER.
- * CONSEQUENTLY, CMOSTEK SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR
- * CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
- * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
- * CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * Copyright (C) CMOSTEK SZ.
- */
- /*!
- * @file radio.c
- * @brief Generic radio handlers
- *
- * @version 1.1
- * @date Feb 08 2017
- * @author CMOSTEK R@D
- */
-
- #include "radio.h"
- #include "cmt2300_params.h"
- #include "cmt2300_params433_100_0kbps.h"
- #include "cmt2300_params470_100_0kbps.h"
- #include "cmt2300_params490_100_0kbps.h"
- #include "cmt2300_params510_100_0kbps.h"
- #include "cmt2300_params868_100_0kbps.h"
- #include "cmt2300_params915_100_0kbps.h"
- #include "cmt2300_params433_10_0kbps.h"
- #include "cmt2300_params470_10_0kbps.h"
- #include "cmt2300_params490_10_0kbps.h"
- #include "cmt2300_params510_10_0kbps.h"
- #include "cmt2300_params868_10_0kbps.h"
- #include "cmt2300_params915_10_0kbps.h"
- #include "cmt2300_params433_200_0kbps.h"
- #include "cmt2300_params470_200_0kbps.h"
- #include "cmt2300_params490_200_0kbps.h"
- #include "cmt2300_params510_200_0kbps.h"
- #include "cmt2300_params868_200_0kbps.h"
- #include "cmt2300_params915_200_0kbps.h"
- #include "cmt2300_params433_20_0kbps.h"
- #include "cmt2300_params470_20_0kbps.h"
- #include "cmt2300_params490_20_0kbps.h"
- #include "cmt2300_params510_20_0kbps.h"
- #include "cmt2300_params868_20_0kbps.h"
- #include "cmt2300_params915_20_0kbps.h"
- #include "cmt2300_params433_2_0kbps.h"
- #include "cmt2300_params470_2_0kbps.h"
- #include "cmt2300_params490_2_0kbps.h"
- #include "cmt2300_params510_2_0kbps.h"
- #include "cmt2300_params868_2_0kbps.h"
- #include "cmt2300_params915_2_0kbps.h"
- #include "cmt2300_params433_300_0kbps.h"
- #include "cmt2300_params470_300_0kbps.h"
- #include "cmt2300_params490_300_0kbps.h"
- #include "cmt2300_params510_300_0kbps.h"
- #include "cmt2300_params868_300_0kbps.h"
- #include "cmt2300_params915_300_0kbps.h"
- #include "cmt2300_params433_50_0kbps.h"
- #include "cmt2300_params470_50_0kbps.h"
- #include "cmt2300_params490_50_0kbps.h"
- #include "cmt2300_params510_50_0kbps.h"
- #include "cmt2300_params868_50_0kbps.h"
- #include "cmt2300_params915_50_0kbps.h"
- #include <string.h>
- static EnumRFStatus g_nNextRFState = RF_STATE_IDLE;
- static uint8_t* g_pRxBuffer = NULL;
- static uint8_t* g_pTxBuffer = NULL;
- static uint16_t g_nRxLength = 0;
- static uint16_t g_nTxLength = 0;
- static uint32_t g_nRxTimeout = 0xFFFFFFFF;
- static uint32_t g_nTxTimeout = 0xFFFFFFFF;
- static uint32_t g_nRxTimeCount = 0;
- static uint32_t g_nTxTimeCount = 0;
- static int packetRssi;
- volatile cmtInt_tu getIntFlag;
- static uint8_t g_nInterrutFlags = 0;
- static uint8_t syncWord[] = {0x2D, 0xD4, 0xCC, 0xDD};
- //6表示6个频段,7表示7种波特率
- cmtParams_ts cmtParamsList433[6][7] =
- {
- {
- {
- .CmtBank = g_cmt2300CmtBank433_2_0kbps,
- .SystemBank = g_cmt2300SystemBank433_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_2_0kbps,
- .TxBank = g_cmt2300TxBank433_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_10_0kbps,
- .SystemBank = g_cmt2300SystemBank433_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_10_0kbps,
- .TxBank = g_cmt2300TxBank433_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_20_0kbps,
- .SystemBank = g_cmt2300SystemBank433_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_20_0kbps,
- .TxBank = g_cmt2300TxBank433_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_50_0kbps,
- .SystemBank = g_cmt2300SystemBank433_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_50_0kbps,
- .TxBank = g_cmt2300TxBank433_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_100_0kbps,
- .SystemBank = g_cmt2300SystemBank433_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_100_0kbps,
- .TxBank = g_cmt2300TxBank433_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_200_0kbps,
- .SystemBank = g_cmt2300SystemBank433_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_200_0kbps,
- .TxBank = g_cmt2300TxBank433_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank433_300_0kbps,
- .SystemBank = g_cmt2300SystemBank433_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank433_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank433_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank433_300_0kbps,
- .TxBank = g_cmt2300TxBank433_300_0kbps,
- },
- },
- //470频段-----------------------------------
- {
- {
- .CmtBank = g_cmt2300CmtBank470_2_0kbps,
- .SystemBank = g_cmt2300SystemBank470_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_2_0kbps,
- .TxBank = g_cmt2300TxBank470_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_10_0kbps,
- .SystemBank = g_cmt2300SystemBank470_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_10_0kbps,
- .TxBank = g_cmt2300TxBank470_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_20_0kbps,
- .SystemBank = g_cmt2300SystemBank470_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_20_0kbps,
- .TxBank = g_cmt2300TxBank470_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_50_0kbps,
- .SystemBank = g_cmt2300SystemBank470_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_50_0kbps,
- .TxBank = g_cmt2300TxBank470_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_100_0kbps,
- .SystemBank = g_cmt2300SystemBank470_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_100_0kbps,
- .TxBank = g_cmt2300TxBank470_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_200_0kbps,
- .SystemBank = g_cmt2300SystemBank470_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_200_0kbps,
- .TxBank = g_cmt2300TxBank470_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank470_300_0kbps,
- .SystemBank = g_cmt2300SystemBank470_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank470_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank470_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank470_300_0kbps,
- .TxBank = g_cmt2300TxBank470_300_0kbps,
- },
- },
- //490频段-----------------------------------
- {
- {
- .CmtBank = g_cmt2300CmtBank490_2_0kbps,
- .SystemBank = g_cmt2300SystemBank490_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_2_0kbps,
- .TxBank = g_cmt2300TxBank490_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_10_0kbps,
- .SystemBank = g_cmt2300SystemBank490_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_10_0kbps,
- .TxBank = g_cmt2300TxBank490_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_20_0kbps,
- .SystemBank = g_cmt2300SystemBank490_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_20_0kbps,
- .TxBank = g_cmt2300TxBank490_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_50_0kbps,
- .SystemBank = g_cmt2300SystemBank490_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_50_0kbps,
- .TxBank = g_cmt2300TxBank490_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_100_0kbps,
- .SystemBank = g_cmt2300SystemBank490_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_100_0kbps,
- .TxBank = g_cmt2300TxBank490_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_200_0kbps,
- .SystemBank = g_cmt2300SystemBank490_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_200_0kbps,
- .TxBank = g_cmt2300TxBank490_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank490_300_0kbps,
- .SystemBank = g_cmt2300SystemBank490_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank490_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank490_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank490_300_0kbps,
- .TxBank = g_cmt2300TxBank490_300_0kbps,
- },
- },
- //510频段-----------------------------------
- {
- {
- .CmtBank = g_cmt2300CmtBank510_2_0kbps,
- .SystemBank = g_cmt2300SystemBank510_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_2_0kbps,
- .TxBank = g_cmt2300TxBank510_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_10_0kbps,
- .SystemBank = g_cmt2300SystemBank510_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_10_0kbps,
- .TxBank = g_cmt2300TxBank510_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_20_0kbps,
- .SystemBank = g_cmt2300SystemBank510_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_20_0kbps,
- .TxBank = g_cmt2300TxBank510_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_50_0kbps,
- .SystemBank = g_cmt2300SystemBank510_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_50_0kbps,
- .TxBank = g_cmt2300TxBank510_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_100_0kbps,
- .SystemBank = g_cmt2300SystemBank510_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_100_0kbps,
- .TxBank = g_cmt2300TxBank510_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_200_0kbps,
- .SystemBank = g_cmt2300SystemBank510_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_200_0kbps,
- .TxBank = g_cmt2300TxBank510_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank510_300_0kbps,
- .SystemBank = g_cmt2300SystemBank510_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank510_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank510_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank510_300_0kbps,
- .TxBank = g_cmt2300TxBank510_300_0kbps,
- },
- },
- //868频段-----------------------------------
- {
- {
- .CmtBank = g_cmt2300CmtBank868_2_0kbps,
- .SystemBank = g_cmt2300SystemBank868_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_2_0kbps,
- .TxBank = g_cmt2300TxBank868_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_10_0kbps,
- .SystemBank = g_cmt2300SystemBank868_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_10_0kbps,
- .TxBank = g_cmt2300TxBank868_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_20_0kbps,
- .SystemBank = g_cmt2300SystemBank868_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_20_0kbps,
- .TxBank = g_cmt2300TxBank868_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_50_0kbps,
- .SystemBank = g_cmt2300SystemBank868_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_50_0kbps,
- .TxBank = g_cmt2300TxBank868_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_100_0kbps,
- .SystemBank = g_cmt2300SystemBank868_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_100_0kbps,
- .TxBank = g_cmt2300TxBank868_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_200_0kbps,
- .SystemBank = g_cmt2300SystemBank868_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_200_0kbps,
- .TxBank = g_cmt2300TxBank868_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank868_300_0kbps,
- .SystemBank = g_cmt2300SystemBank868_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank868_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank868_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank868_300_0kbps,
- .TxBank = g_cmt2300TxBank868_300_0kbps,
- },
- },
- //915频段-----------------------------------
- {
- {
- .CmtBank = g_cmt2300CmtBank915_2_0kbps,
- .SystemBank = g_cmt2300SystemBank915_2_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_2_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_2_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_2_0kbps,
- .TxBank = g_cmt2300TxBank915_2_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_10_0kbps,
- .SystemBank = g_cmt2300SystemBank915_10_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_10_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_10_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_10_0kbps,
- .TxBank = g_cmt2300TxBank915_10_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_20_0kbps,
- .SystemBank = g_cmt2300SystemBank915_20_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_20_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_20_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_20_0kbps,
- .TxBank = g_cmt2300TxBank915_20_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_50_0kbps,
- .SystemBank = g_cmt2300SystemBank915_50_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_50_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_50_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_50_0kbps,
- .TxBank = g_cmt2300TxBank915_50_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_100_0kbps,
- .SystemBank = g_cmt2300SystemBank915_100_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_100_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_100_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_100_0kbps,
- .TxBank = g_cmt2300TxBank915_100_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_200_0kbps,
- .SystemBank = g_cmt2300SystemBank915_200_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_200_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_200_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_200_0kbps,
- .TxBank = g_cmt2300TxBank915_200_0kbps,
- },
- {
- .CmtBank = g_cmt2300CmtBank915_300_0kbps,
- .SystemBank = g_cmt2300SystemBank915_300_0kbps,
- .FrequencyBank = g_cmt2300FrequencyBank915_300_0kbps,
- .DataRateBank = g_cmt2300DataRateBank915_300_0kbps,
- .BasebandBank = g_cmt2300BasebandBank915_300_0kbps,
- .TxBank = g_cmt2300TxBank915_300_0kbps,
- },
- },
- };
- void RF_Init(uint8_t type, uint8_t br)
- {
- const uint8_t *_cmt2300CmtBank;
- const uint8_t *_cmt2300SystemBank;
- const uint8_t *_cmt2300FrequencyBank;
- const uint8_t *_cmt2300DataRateBank;
- const uint8_t *_cmt2300BasebandBank;
- const uint8_t *_cmt2300TxBank;
- _cmt2300CmtBank = cmtParamsList433[type][br].CmtBank;
- _cmt2300SystemBank = cmtParamsList433[type][br].SystemBank;
- _cmt2300FrequencyBank = cmtParamsList433[type][br].FrequencyBank;
- _cmt2300DataRateBank = cmtParamsList433[type][br].DataRateBank;
- _cmt2300BasebandBank = cmtParamsList433[type][br].BasebandBank;
- _cmt2300TxBank = cmtParamsList433[type][br].TxBank;
-
- // Cmt2300_InitGpio();
- Cmt2300_Init();
-
- /* Config registers */
- Cmt2300_ConfigRegBank(CMT2300_CMT_BANK_ADDR , _cmt2300CmtBank , CMT2300_CMT_BANK_SIZE );
- Cmt2300_ConfigRegBank(CMT2300_SYSTEM_BANK_ADDR , _cmt2300SystemBank , CMT2300_SYSTEM_BANK_SIZE );
- Cmt2300_ConfigRegBank(CMT2300_FREQUENCY_BANK_ADDR , _cmt2300FrequencyBank , CMT2300_FREQUENCY_BANK_SIZE );
- Cmt2300_ConfigRegBank(CMT2300_DATA_RATE_BANK_ADDR , _cmt2300DataRateBank , CMT2300_DATA_RATE_BANK_SIZE );
- Cmt2300_ConfigRegBank(CMT2300_BASEBAND_BANK_ADDR , _cmt2300BasebandBank , CMT2300_BASEBAND_BANK_SIZE );
- Cmt2300_ConfigRegBank(CMT2300_TX_BANK_ADDR , _cmt2300TxBank , CMT2300_TX_BANK_SIZE );
- Cmt2300_SetFrequencyStep(100);
- Cmt2300_SetCrc(); //设置打开crc
- Cmt2300_SetPacketType(true); //设置数据包为可变包
- Cmt2300_SetRssiDetMode(RDS_AT_SYNC_OK);
- Cmt2300_SetGfskGsnBt(GSNBT_0_5);
- Cmt2300_SetRxPreamLengSize(PLU_8BIT, 8);
- Cmt2300_SetSyncWord(syncWord, 4);
- // Cmt2300_SetRfBandWidth(BINDWIDTH_100);//屏蔽不调用,根据配置工具自动选择接收带宽
- RF_Config();
- }
- void RF_Config(void)
- {
- #ifdef ENABLE_ANTENNA_SWITCH
- /* If you enable antenna switch, GPIO1/GPIO2 will output RX_ACTIVE/TX_ACTIVE,
- and it can't output INT1/INT2 via GPIO1/GPIO2 */
- Cmt2300_EnableAntennaSwitch(0);
-
- #else
- /* Config GPIOs */
- Cmt2300_ConfigGpio(
- CMT2300_GPIO1_SEL_INT1 | /* INT1 > GPIO1 */
- CMT2300_GPIO2_SEL_INT2 | /* INT2 > GPIO2 */
- CMT2300_GPIO3_SEL_DOUT
- );
-
- /* Config interrupt */
- Cmt2300_ConfigInterrupt(
- CMT2300_INT_SEL_TX_DONE, /* Config INT1 */
- CMT2300_INT_SEL_PKT_OK /* Config INT2 */
- );
- #endif
- /* Enable interrupt */
- Cmt2300_EnableInterrupt(
- CMT2300_MASK_TX_DONE_EN |
- CMT2300_MASK_PREAM_OK_EN |
- CMT2300_MASK_SYNC_OK_EN |
- CMT2300_MASK_NODE_OK_EN |
- CMT2300_MASK_CRC_OK_EN |
- CMT2300_MASK_PKT_DONE_EN
- );
-
- Cmt2300_EnableLfosc(false);
-
- /* Use a single 64-byte FIFO for either Tx or Rx */
- Cmt2300_EnableFifoMerge(true);
-
- //Cmt2300_SetFifoThreshold(16);
-
- /* Go to sleep for configuration to take effect */
- Cmt2300_GoSleep();
- }
- void RF_SetStatus(EnumRFStatus nStatus)
- {
- g_nNextRFState = nStatus;
- }
- EnumRFStatus RF_GetStatus(void)
- {
- return g_nNextRFState;
- }
- uint8_t RF_GetInterruptFlags(void)
- {
- return g_nInterrutFlags;
- }
- void RF_StartRx(uint8_t buf[], uint16_t len, uint32_t timeout)
- {
- // g_pRxBuffer = buf;
- // g_nRxLength = len;
- // g_nRxTimeout = timeout;
-
- // memset(g_pRxBuffer, 0, g_nRxLength);
-
- g_nNextRFState = RF_STATE_RX_START;
- Cmt2300_GoStby();
- Cmt2300_ClearInterruptFlags();
-
- // /* Must clear FIFO after enable SPI to read or write the FIFO */
- Cmt2300_EnableReadFifo();
- Cmt2300_ClearFifo();
- Cmt2300_GoRx();
- }
- void RF_StartTx(uint8_t buf[], uint16_t len, uint32_t timeout)
- {
- // g_pTxBuffer = buf;
- // g_nTxLength = len;
- // g_nTxTimeout = timeout;
-
- // g_nNextRFState = RF_STATE_TX_START;
- Cmt2300_GoStby();
- Cmt2300_ClearInterruptFlags();
-
- /* Must clear FIFO after enable SPI to read or write the FIFO */
- Cmt2300_EnableWriteFifo();
- Cmt2300_ClearFifo();
- Cmt2300_SetPayloadLength(len);
- /* The length need be smaller than 32 */
- Cmt2300_WriteFifo(buf, len);
- Cmt2300_GoTx();
- }
- int RF_GetPacketRssi(void)
- {
- return packetRssi;
- }
- EnumRFResult RF_Process(void)
- {
- EnumRFResult nRes = RF_BUSY;
-
- switch(g_nNextRFState)
- {
- case RF_STATE_IDLE:
- {
- nRes = RF_IDLE;
- break;
- }
-
- case RF_STATE_RX_START:
- {
- Cmt2300_GoStby();
- Cmt2300_ClearInterruptFlags();
-
- /* Must clear FIFO after enable SPI to read or write the FIFO */
- Cmt2300_EnableReadFifo();
- Cmt2300_ClearFifo();
-
- if(false==Cmt2300_GoRx())
- g_nNextRFState = RF_STATE_ERROR;
- else
- g_nNextRFState = RF_STATE_RX_WAIT;
-
- g_nRxTimeCount = Cmt2300_GetTickCount();
-
- break;
- }
-
- case RF_STATE_RX_WAIT:
- {
- #ifdef ENABLE_ANTENNA_SWITCH
- if(CMT2300_MASK_PKT_OK_FLG & Cmt2300_ReadReg(CMT2300_CUS_INT_FLAG)) /* Read PKT_OK flag */
- #else
- if(Cmt2300_ReadGpio2()) /* Read INT2, PKT_OK */
- #endif
- {
- getIntFlag.value = Cmt2300_ClearInterruptFlags();
- if (getIntFlag.bits.crc_ok)
- {
- g_nNextRFState = RF_STATE_RX_DONE;
- }
- }
- // if( (0xFFFFFFFF != g_nRxTimeout) && ((g_nSysTickCount-g_nRxTimeCount) > g_nRxTimeout) )
- // g_nNextRFState = RF_STATE_RX_TIMEOUT;
-
- break;
- }
-
- case RF_STATE_RX_DONE:
- {
- uint8_t variableLen=255;
- packetRssi = Cmt2300_GetRssiDBm();
- Cmt2300_GoStby();
- Cmt2300_ReadFifo(&variableLen, 1);
- /* The length need be smaller than 32 */
- Cmt2300_ReadFifo(g_pRxBuffer, variableLen);
- // memcpy(g_pRxBuffer, &g_pRxBuffer[1], variableLen);
- Cmt2300_GoSleep();
-
- g_nNextRFState = RF_STATE_IDLE;
- nRes = RF_RX_DONE;
- break;
- }
-
- case RF_STATE_RX_TIMEOUT:
- {
- Cmt2300_GoSleep();
-
- g_nNextRFState = RF_STATE_IDLE;
- nRes = RF_RX_TIMEOUT;
- break;
- }
-
- case RF_STATE_TX_START:
- {
- Cmt2300_GoStby();
- Cmt2300_ClearInterruptFlags();
-
- /* Must clear FIFO after enable SPI to read or write the FIFO */
- Cmt2300_EnableWriteFifo();
- Cmt2300_ClearFifo();
- Cmt2300_SetPayloadLength(g_nTxLength);
- /* The length need be smaller than 32 */
- Cmt2300_WriteFifo(g_pTxBuffer, g_nTxLength);
-
- if( 0==(CMT2300_MASK_TX_FIFO_NMTY_FLG & Cmt2300_ReadReg(CMT2300_CUS_FIFO_FLAG)) )
- g_nNextRFState = RF_STATE_ERROR;
- if(false==Cmt2300_GoTx())
- g_nNextRFState = RF_STATE_ERROR;
- else
- g_nNextRFState = RF_STATE_TX_WAIT;
-
- g_nTxTimeCount = Cmt2300_GetTickCount();
-
- break;
- }
-
- case RF_STATE_TX_WAIT:
- {
- #ifdef ENABLE_ANTENNA_SWITCH
- if(CMT2300_MASK_TX_DONE_FLG & Cmt2300_ReadReg(CMT2300_CUS_INT_CLR1)) /* Read TX_DONE flag */
- #else
- if(Cmt2300_ReadGpio1()) /* Read INT1, TX_DONE */
- #endif
- {
- g_nNextRFState = RF_STATE_TX_DONE;
- }
-
- // if( (0xFFFFFFFF != g_nTxTimeout) && ((g_nSysTickCount-g_nTxTimeCount) > g_nTxTimeout) )
- // g_nNextRFState = RF_STATE_TX_TIMEOUT;
-
- break;
- }
-
- case RF_STATE_TX_DONE:
- {
- Cmt2300_ClearInterruptFlags();
- Cmt2300_GoSleep();
- g_nNextRFState = RF_STATE_IDLE;
- nRes = RF_TX_DONE;
- break;
- }
-
- case RF_STATE_TX_TIMEOUT:
- {
- Cmt2300_GoSleep();
-
- g_nNextRFState = RF_STATE_IDLE;
- nRes = RF_TX_TIMEOUT;
- break;
- }
-
- case RF_STATE_ERROR:
- {
- Cmt2300_SoftReset();
- Cmt2300_DelayMs(20);
-
- Cmt2300_GoStby();
- RF_Config();
-
- g_nNextRFState = RF_STATE_IDLE;
- nRes = RF_ERROR;
- break;
- }
-
- default:
- break;
- }
-
- return nRes;
- }
|