投稿

3月, 2023の投稿を表示しています

LMX8410LEVM  TEST2(書き込み)

イメージ
  基本動作 実際はケーブルがなくてソフトを立ち上げて動かしただけ。本来はつなげて動作を見るところからやりたい。またモニターするためにロジアナをICクリップでSCLKなどのテストポートを繋いでみておく事が良い。 TI TICSPro softwareをダウンロード(TI社のメンバーのレジストレーションは必要)してきて触ってみる。結果的にレジスタの正しい値というのはこのソフトを見るしかなく、データシートにはすべて記載されていない。 レジスター書き込みデータの準備

LMX8410LEVM  低消費電力化考察

イメージ
  ピン1は、Chip EnableになっているのでこのピンがHIGHの時、このICがEnableになる。Enableにしない時にこのICが完全に眠ってくれて消費電力をカットできる可能性がるので調べておく。 EVAキットの配線を追っていく。 ずっとビアを通じて裏面まで出ていて、R11~13に接続される事になっている。 R11~13まわりはJ13の1番ピンに接続できるようになっているが、実際はR11とR13は実装されておらずブランクになっている。そのためつながっていない。しかしこのマニュアルの回路図が不親切・・・。R11の横の〇のポストがどこに繋がっているか記載がなく、これはCEと入れておいてくれれば、レイアウト図を追わなくても済むものを・・・ その代わりに、R12を通じて電源電圧に接続されていて、プルアップされている。常時ONの状態。 6層からなる基板で途中の層で3.3Vが電源電圧として、R12に接続されている事が確認できる。 外からこのCEのピンを有効にするときには、本来はR12の抵抗をはずして、R11の位置につけなおしプルダウンしてしまう。それでR13の位置に抵抗1kΩ程度の抵抗を入れてやる。 そのためにランドがR11も用意されていている。 横着する方法で、R12はそのままにして、R13にゼロΩを入れるという手もあるように思われる。GPIOがHIHGのときは、同電位になるので、CEピンはHIGH。GPIOをLOWにすると、R12の所で電圧降下して、CEピンはLOWになる。この場合は欠点はマイコン側のGPIOのHIGHの時の電圧が、この評価ボードよりやや高い時に電源電圧全体が変動する。 R12をはずして、R11側でGNDにした場合は電源から切り離されるので、ONオフしても他に影響がでにくい。 試してみる事:R12をはずして、R11の位置に付け替え。R13の位置に1kΩ程の抵抗を入れてやる。それで放置した時にチップが暖かくなっていなければ正解。

LMX8410LEVM  TEST1

イメージ
テスト回路の形成 LMX8410LEVMの評価ボードを手にする機会があったので触ってみる。 まず、 評価ボードのマニュアル を見て配線がどうピンに引き出されているかを確認する。   キーのある方を写真のように下にした時、左下が1番ピン。回路図からCS、SDI(MOSI)、SCK、さらにGNDのピンがどこに出ているかを確認する。 一般的にMISOに対応するピンは、Mux_outとシルク印刷されているTP6に出てくるのでここはICクリップで摘まむ。このMux_outがJ13のピンに出てていてくれていれば・・・ STM32F103との配線を行う。先に答えをいうと PA4-CS PA5-SCK PA6-Mux_out PA7-SDI に接続する。あとGNDも共通にとっておく。 電源はSMAのコネクタの端子から5Vの電源に接続。SMAのコネクタの先がワニ口クリップになっているケーブルを用いて接続。(上の電源、電圧値は正しいが電流は正しくない) 初期状態でどうなっているかわからないので、テストするまでは5Vの供給は止めておいて、マイコンを走らせてから出力させるようにした。 コーディング設定

FreeStyle Libre

イメージ
 FreeStyle Libre

nRF Timer

イメージ
  Timerのペリフェラルを使ってみる。 Timer0...4までの32ビットのタイマーが5つ搭載されている。 ヘッダーファイル //To use Timer  #include "nrf_drv_timer.h" インスタンス const nrf_drv_timer_t Mytimer0 = NRF_DRV_TIMER_INSTANCE(0); おまじない的にincludeの下に配置する。 タイマーを例えば3つ使う場合は、 const nrf_drv_timer_t Mytimer0 = NRF_DRV_TIMER_INSTANCE(0); const nrf_drv_timer_t Mytimer1 = NRF_DRV_TIMER_INSTANCE(1); const nrf_drv_timer_t Mytimer2 = NRF_DRV_TIMER_INSTANCE(2); タイマーの設定 nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG; タイマーの設定する構造体 ここではtimer_cfgと名前をつけてやる。 設定は、NRF_DRV_TIMER_DEFAULT_CONFIGと記載する。 途中まで入力すると候補が出てくるので選択する。 NRF_DRV_TIMER_DEFAULT_CONFIGの定義を見にいくと・・ NRFX_TIMER_DEFAULT_CONFIG_FREQUENCYなどに設定されているのが確認できる。 このNRFX_TIMER_DEFAULT_CONFIG_FREQUENCYとかは、sdk_configファイルの中で設定できる。 まずはデフォルトの数字のまま進めるが、各チェックの内容を確認しておく。 タイマーの初期化 uint32_t err_code; err_code = nrf_drv_timer_init(&Mytimer0, &timer_cfg, timer_event_handler); APP_ERROR_CHECK(err_code); エラー変数を宣言してあげて、nrf_drv_timer_initで初期化する。 第一引数は、上で宣言したインスタンスをポインタで 第二引数は、先ほど設定した設定構造体を指定、次

nRF SAADC

イメージ
ADCの基礎をやってみる。  nRF52840のADC 単なるADCといわずSAADCと呼ぶらしい。 https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.1.pdf Analogピンとして使えるピンはどれでもという訳ではない。 576ページにあるがAIN7  Analog inputと書かれているピンで AIN0 P0.02 AIN1 P0.03 AIN2 P0.04 AIN3 P0.05 AIN4 P0.28 AIN5 P0.29 AIN6 P0.30 AIN7 P0.31 XAIOを使っている場合は、取り出しされているのは、AIN0 P0.02、AIN1 P0.03、AIN4 P0.28、AIN5 P0.29の4つのピンになる。 コーディング UART、NRF_LOGが使えるTemplateからスタート。コピーをとってという所は毎回同じ。 インクルードファイル //To use SAADC #include "nrf_drv_saadc.h" AD変換チャンネルの設定 今回はメインの中に、Templateを使っていると、NRF_LOGのイニシャライズ等はした後に、   ret_code_t err_code;     //define config struct and pin assign     nrf_saadc_channel_config_t channel_config =     {     .resistor_p = NRF_SAADC_RESISTOR_DISABLED,   ///< Resistor value on positive input.     .resistor_n = NRF_SAADC_RESISTOR_DISABLED,   ///< Resistor value on negative input.     .gain       = NRF_SAADC_GAIN1_6,             ///< Gain control value.     .reference  = NRF_SAADC_REFERENCE_INTERNAL,  ///< Reference control value.     .acq_ti

nRF NFCをやってみる 2

イメージ
  XAIOのNFC端子にアンテナをつけてNFCを触って遊んでいる。 https://wiki.seeedstudio.com/XIAO-BLE-Sense-NFC-Usage/ にXAIOでNFC通信する構成として”NFC Antenna"としか書いていなくて、どんなアンテナつければええんじゃい!という問題の続き。 前回は、手元にあったNFCリーダーを分解して使っていたが何をどうしたのやら動かなくなった・・・ので今度は、NFCモジュールを調達して転用してみた。今回購入したのは下のようなもの。アマゾンで一番目につくもの。 https://www.amazon.co.jp/gp/product/B088FLF8MC/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1 この基板、NXP社のICであるMRFC-522が搭載されている事になっているが、IC上にはマークが全くなかったので正規のICではないだろう・・・。とは言え、データシートからピンの配置を確認する。 基板の配線を追っていって、どこからnRF52840のNRFの信号を入れてやればよいかを読み解く。 MRFC-522の信号が出てくるピン2つ、XAIOのNFCのパットとを差し替えてやるのが方針。 本来は、この TX1,TX2から出る信号が、基板裏面(赤)を通って、インダクタ(L1,L2)の入り口に、インダクタ出口で分岐(緑)していて、一方は、コンデンサ(C4,C5)を介してGNDに。他方は、アンテナに接続される。C5付近のビアからGNDが分岐してアンテナのとの間のマッチング用のコンデンサになっている構成。 購入したばかりだがこの基板には改造に付き合ってもらう。 https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf インダクタの信号が入ってくる側にワイヤーを半田してつける。ここがランドが大きいので半田しやすい。GNDにも接続してやる。 ひっくり返して、裏面で本来信号が入ってくる所で、信号線をカットしてやる。 これカットしないと、大きなスタブに見えるらしく共振しないので動作しない!!実際最初半田しただけでは動かなかった!結構な距離を基板で引き回ししているのでスタブとして十分動作しているもよう。カッターで作業す