更新&訂正しました
チップのレジスタを叩いて送信パワーを設定する場合に以前の設定ではRF送信しないことが判明しました.
試した状況からモジュールの無線はPaBoostを選択しないと出力されませんでしたのでPaBoostを選択して出力を設定するようにしました.
以前の設定ではミスってRFOを選択して設定していましたが片方向の動作で実際に送信はしていなかったので発覚しなかった...
SX1272搭載モジュールが手元にないので推測になりますが同じくPaBoostを選択するようにしてあります.
#DRAGINO Lora GPS HAT-JPの出力設定
技適マークの付いたモジュールをRSコンポーネンツで入手しました.
まずは簡単そうなsingle_chan_pkt_fwdをRPIに入れてTTNのgw構築にチャレンジしてみました.
ソースを眺めると出力を設定しているところが見当たらず、チップのデフォルト(SX1276の場合13.2dBm、SX1272の場合14dBm)になると思われます.
そこで周波数を日本向けに変更するついでに出力も設定してみましたのでメモです.
ちなみにチップはsx1276でした.
##周波数変更
uint32_t freq = 923200000;
##出力設定 (更新版)
以下main.cppに追加
// Tx Power Register
#define REG_PA_CFG 0x09
// Power Setting for Japan ARIB STD-T108
// 20mW=13dBm
////----UPDATED----SELECT PA_BOOST----////
// SX1276 RegPaConfig(0x09), Val=1.011.1011=0xbb
// bit 7 PaSelect = 1, select PA_BOOST (not RFO!)
// bit 6-4 MaxPower = 3, Pmax=10.8+0.6*3=12.6 < 13
// bit 3-0 OutputPower = 11 =b, Pout=17-(15-OutputPower)=13
int PWR_JPN_1276 = 0xbb; //3f;
// SX1272 RegPaCfg(0x09), Val=1.000.1011=0x8b
// bit 7 PaSelect = 1, select PA_BOOST (not RFO!)
// bit 6-4 n/a = 0, Pmax=2+OutputPower = 13
// bit 3-0 OutputPower = 11 = b
int PWR_JPN_1272 = 0x8b;
周波数設定の後に追加します.
// Set Tx Power for Japan
if (sx1272) {
writeRegister(REG_PA_CFG, PWR_JPN_1272);
} else {
// sx1276
writeRegister(REG_PA_CFG, PWR_JPN_1276);
}
参考:
https://github.com/tftelkamp/single_chan_pkt_fwd
SX1272のデータシート https://www.semtech.com/uploads/documents/sx1272.pdf
SX1276のデータシート https://www.semtech.com/uploads/documents/DS_SX1276-7-8-9_W_APP_V5.pdf