ショ和このソフトウェアは、米国で915MHz ISMバンドRegalで送信するデフォルトです。このバンドでの送信は、あなたの国では合法ではないかもしれません。
コンパイルする方法
$ git clone --recurse-submodules https://github.com/jpaximadas/YeeNet.git
$ cd YeeNet
$ git config core.hooksPath git-hooks # Only necessary if you plan on contributing
$ export YEENET_BOARD=BLUEPILL_F103
$ make -C libopencm3
$ make -C src
古いgitを持っている場合、または自分より先に進んでスキップした場合、 --recurse-submodules git submodule update --init (これは1回だけ必要です)
STM32「青い錠剤」以外の開発委員会をターゲットにしている場合は、それに応じてYeenet_boardを変更します。サポートされているボードのリストについては、サポートされているボードを参照してください
ソースファイルへの後続の変更は、 make -C srcのみを必要とします
アップロードする方法
このリポジトリは、STLINKオープンソースSTM32 MCUプログラミングツールセットを使用しています:https://github.com/stlink-org/stlink
- リセット後にボードがメモリを消去するようにboot0が設定されていないことを確認してください
- SWDIO、SWCLK、およびGNDがMCUに接続されていることを確認します(プログラマーからボードに電力を供給する場合のみ3.3Vを接続します)
- チップをプログラムします:
OpenOCDはSTLINKの代替品ですが、 make uploadではサポートされていません。
デバッグする方法
バイナリがアップロードされたら、SRCディレクトリで以下を実行します。
- GDBサーバーを起動します
- 別の端末 - SRCのスティル - GDBを開始して構成します
$ gdb yeenet_router_firmware.elf
$ set processor armv7
$ target remote localhost:4242
$ load yeenet_router_firmware.elf
STMの読み取りに関するさらなるGDB:
https://www.st.com/resource/en/user_manual/dm00613038-stm32cubeide-stlink-gdb-server-stmicroelectronics.pdf
このPDFは、STMCUBE GDBサーバーではなく、STMCube GDBサーバーを使用していることに注意してください。ただし、GDBクライアントの観点からは、違いはありません。 PDFの6/15ページは、ブレークポイントとウォッチポイントの使用方法を示しています。
シリアルインターフェイスの使用方法
ここには、https://github.com/jpaximadas/yeenet-router-driver-pythonのシリアルドライバーがあります
ディレクトリ
- SRCにはプログラムが含まれています
- 共有には、libopencm3の共有ファイルが含まれています
サポートボード
Yeenetは、容易に利用可能で低コストのSTM32開発ボードをターゲットにすることを目指しています。サポートされているターゲットの表と対応するyeenet_board値については、以下を参照してください。
| ボード | yeenet_board |
|---|
| ブルーピルSTM32F103 | bluepill_f103 |
| ブラックピルSTM32F411 | blackpill_f411 |
他のボードのサポートはplatform/で適切なプラットフォーム定義を作成し、それに応じてyeenet.mkを更新することで追加できます。
ブレッドボードのセットアップ
次の表は、サポートされている開発ボードのピンをSX127Xに、USBにUARTに接続する方法を示しています。これをブレッドボードにしようとする前に、セクションの最後の警告を読んでください。
| 関数 | 青い丸薬/黒いピルピン |
|---|
| シリアルTX | PA9 |
| シリアルRX | PA10 |
| IRQ | PA0 |
| モシ | PA7 |
| 味噌 | PA6 |
| SCK | PA5 |
| CS/SS | A1 |
| RST | B9 |
| アドレスビット0 | B10 |
| アドレスビット1 | B11 |
- シリアルTX/RXは、USB/UARTチップに接続する必要があります。
- IRQは、SX127XのDIO0に接続する必要があります。 (ブレイクアウトボードでD0またはG0と呼ばれる場合があります)
- MOSI、MISO、SCK、およびSSは、開発ボードからSX127Xブレイクアウトの適切なピンに接続する必要があります。
- RSTは、開発ボードからSX1276Xブレイクアウトの適切なピンに接続する必要があります。
- アドレスビット0および1は、開発ボードから3.3Vまたはグランドに実行する必要があります。
ショ和複数の電圧源からボードに電力を供給しないでください。これにより、PCBのレギュレーターが損傷します。
ショ和3.3ボルトのみでSX127XまたはSX127X DEVボードに電力を供給します。上記のピンのレイアウトは、SX127Xから5ボルトの許容範囲ではない青色のピンに合図をルートします。 AdaFruit SX127Xブレイクアウトは、5ボルトのロジック信号を5ボルトのロジック信号を発し、5ボルトから電力を供給するとブルーピルが損傷します。
ボードに電力を供給するための推奨方法
- USBからUARTまでの5ボルトからブルーピルに電力を供給します。 Bluepillは、独自の使用のためにこれを3.3ボルトに制御します。あるいは、BluePillには、USB上のレギュレータからUARTまで3.3ボルトで搭載される場合があります。
- まともな3.3ボルトレギュレータからSX127Xを電源に入れます。 Bluepillの3.3ボルトレギュレーターは、タスクには十分ではありません。 USBのものを使用して、存在する場合はuartを使用します。
- 切断されたSTリンクプログラマに3.3ボルトを残します。
トト
- パケットハンドラーの作業
- ACKが遅れて到着したら、障害モードを改善します
- ACKSは、梱包されていないパケットを使用する際のパケットハンドラーにどのように影響しますか
- TXスヌーズ機能は機能しますか?
- packet_handlerが、rx 'nackを設定した直後にtx_pkt null pointerをreferenceしないようにしますか?
- Packet_handlerでRX_PKTポインターの位置を移動するためのより高いレイヤー機能を提供する
- パケットルーターを書きます
- USBを実装し、UART機能を保持します
- ドキュメントを書きます
- パケット_handlerのbackoff_rngを改善するように、エントロピープールを迅速に排出しない
- ハードウェアのセットアップの組織を改善します
- ユーザーインターフェイスのリポジトリを開始します(dear imguiを使用)
- sx127x fsk機能をmodem_xl.cに追加します
ブレイクアウトボードの取得
Adafruit Breakout Boardは、すべてのピンにアクセスするにはあまりにも多くのスペースを占有でき、高価になる可能性があります。ここで裸のブレイクアウトボードを入手できます:
RFM95無線モジュールは、AliexpressまたはBanggoodから5ドル未満で入手できます。
メモ
SX127Xノート
- Adafruit Breakout Boardのリセットピンは、Adafruit Webサイトの指示に反して、デバイスが機能するために低く保持する必要があります。
- MCUが再起動するときにデバイスをリセットするために、リセットピンを瞬間的に低く引く必要があります。これにより、レジスタは元の状態にリセットされます。これを行わないと、奇妙な動作を引き起こす可能性があります。
- IRQフラッグレジスタをクリアするには、ゼロをSPIで2回記述する必要があります。これはハードウェアのバグです。
- SX127XをLORAモードにするときは、最初にスリープモードに入れる必要があります。スタンバイやその他のモードではありません。
- SPIマスターは、スタンバイモード以外でFIFOに書き込むことはできません
- FIFOは、モードの変更中に常にクリアされるとは限りません。 FIFOが自動的にクリアされていると仮定しないでください
- SF = 6の明示的なヘッダーモードは機能しません。このソフトウェアの自動変調構成関数は、その変調構成を拒否しません。
- このコードは、LORAがパケットを自動的に拒否できる「同期単語」バイトに触れていません。
Bluepill Devボードノート
- 「Bluepill」開発ボードにLEDがLEDされているのは、アノードが3.3ボルトに結び付けられており、PC13に結ばれたカソードです(何らかの理由で)。これは、LEDをオンにするためにPC13を低く引っ張る必要があることを意味します。
- Bluepillの3.3ボルトの供給からSX127Xを強化しようとしないでください。オンボードレギュレーターは、RXまたはTXの間にタスクを達成できません。 SX127Xはブラウンアウトしてリセットされます。
USBからUARTノート
- CH430 USBを使用してArduinoボードを使用してUSTからUARTデバイスとしてUARTチップを使用することは、簡単なタスクではありません。 PCBでTXとしてラベル付けされているもの(ただし、実際にはArduinoの観点からはRXです)は、開発ボードの5ボルト許容範囲のTXピンに入れることができます。ここに難しい部分があります。 PCBのRXとしてラボール化されているもの(実際にはArduinoの観点からのTX)は、開発ボードのRXピンに接続するだけでは機能しません。 CH430チップに直接はんだ付けする必要があります。データシートを参照して、CH430のTXピンがどこにあるかを見つけてください。 「CH430」の終わりにある手紙は非常に重要です。
yee:https://youtu.be/iepv31_e__4
