HN 日本語サマリー

← 一覧へ戻る
プログラミング

MCU搭載、NFCエネルギーハーベスティング基板の名刺

NFC Energy-Harvesting PCB Business Card with an MCU (wilsonharper.net)

46 pointsby WilsonHarper3 コメント

要約

この記事は、NFCのエネルギーを利用して21個のLEDを点灯させる名刺を開発したプロジェクトについて詳述しています。著者はKiCadとPCB設計を学ぶためにこのプロジェクトを開始し、エネルギーハーベスティング、チャーリープレキシングによるLED制御、アンテナ設計、PCBレイアウトなど、多くの技術的課題を克服しました。最終的な製品は、バッテリー不要でインタラクティブな機能を持つ、シンプルで安価な名刺となりました。

全文翻訳

ほとんどの名刺と同様に、私の名刺にはバッテリーがありません。しかし、電話にかざすと、NFCからの電力だけで21個のLEDがアニメーションを開始します。このプロジェクトは約3ヶ月前に、より複雑な設計に入る前にKiCadを簡単に学ぶ方法として始まりました。「簡単」は長くは続きませんでした。この最終製品は、PCBプロセスのあらゆる側面について、予想以上に多くのことを私に教えてくれ、結果は想像以上に良いものになりました。リポジトリ全体はこちらです。お使いのブラウザはvideoタグをサポートしていません。PCBで作られた名刺は様々なものを見てきました。私がこれまで見たもののほとんどは、シルクスクリーンと、おそらく露出した銅線を使用して連絡先情報やQRコードを含んでいます。これらは非常にクールですが、電気工学よりもグラフィックデザインの要素が強いです。他のものには、ディスプレイ、バッテリー、入力などのより複雑な機能が含まれていますが、これらは非常にクールですが、高価で厚みがあります。私はシンプルで安価なものを作り、人々に配れるようにしたいと思っていました。最終的に、NFC名刺というコンセプトに出会いました。このコンセプトは完璧でした。バッテリー不要で、基本的なRFエンジニアリング、そして安価なBOM(部品表)で実現できます。特定のNFCチップを探し始めると、NXP NTAG I2C PlusやSTMicro ST25DV-KCのように、他のコンポーネントのためにNFCエネルギーをハーベストする能力を持つものさえあることに気づきました。NFCの仕組みを説明しましょう。あなたの電話は常に小さな磁場を放出しています。NFCカードはその磁場を拾い、あなたの電話を小さなワイヤレス充電器のように機能させます。カードは実際には電話にメッセージを送信しません。代わりに、磁場から吸収するエネルギー量を変更し、電話はその電力の変動を検出し、それをバイナリデータに変換します。ほとんどのNFCタグは、このハーベストされたエネルギーを内部回路を実行するためだけに利用しますが、一部のNFCチップは、余分なDC電圧を取り出して外部ハードウェアにルーティングすることができます。この名刺は、その最後の機能を使用しています。理論はそれほど複雑ではないように思えました。KiCadですぐに回路図を作成しました。ATtiny412マイクロチップは、そのコンパクトなサイズ、十分なGPIO、そして非常に低い消費電力要件から、簡単な選択でした。LEDは、ダイオード固有の一方向電流の流れを利用した、チャーリープレキシングと呼ばれる技術を使用して接続されています。Wikipediaの記事はそれを理解するための素晴らしいガイドですが、重要なのは、トリステートロジックを使用して、少数のGPIOで多数のLEDを制御できることです。具体的には、式は y = x⋅(x-1) となり、yは独立して制御できるLEDの数、xはGPIOの数を示します。主な欠点は、一度に1つのLEDしか点灯できないことですが、PWMを使用し、デューティサイクルを複数のLEDに分散させることでこれを軽減できます。この最初のドラフトでは、4つのGPIO(GPIO_AからGPIO_D)を使用して12個のLEDを制御しました。システムアーキテクチャ当初はATtiny412 MCUを選択しましたが、いくつかの理由で最適ではないことに気づきました。GPIOは5つしかなく、QFNパッケージではなくスルーホール/リード付きピンパッケージのみで提供されるため、PCBからより高く突き出します。夏の間、大学から離れていたため、PCBを組み立てる方法がなく、JLCPCBに組み立てを依頼する必要がありました。また、これらの名刺を人々に渡すことを計画していたので、鉛を含めたくありませんでしたし、大学に戻っても鉛フリーの電子機器作業スペースにはアクセスできません。JLCPCBは完全なRoHS準拠をサポートしているため、簡単な選択でした。どうせプロに組み立ててもらうのであれば、ATtiny412にはない、はるかに小さいQFNパッケージを選ぶのが良いと思いました。いくつかの調査の後、ATtiny816を見つけました。これはATtiny412に似ていますが、17個のGPIOと、より薄い3mm×3mmのパッケージを備えています。これで、6つのGPIOをLEDに割り当てることができ、20個のチャーリープレキシングされたLEDと、GPIOからGNDに接続されるシンプルなインジケータLEDを搭載できるようになりました。また、より近距離で高出力のNFC標準をサポートするNXP NTAG I2C Plus NFCチップに切り替えました。NTAG I2C Plusのデータシートを読んでいると、VOUTに220 nFを超える静電容量を接続しないように指定されていることに気づきました。それ以上の静電容量は電圧レールを低下させ、電源が入らない発振ループを引き起こす可能性があるからです。しかし、私は220 nFよりも大きな静電容量を使いたかったので、この回路を作成しました。下部にある大きな10 µFのコンデンサはVCCを平滑化するのに役立ちますが、起動時に過剰な電流を引き込みます。R3は突入電流をわずか数mAに制限します。コンデンサが充電されると、R3はコンデンサの動作を遅くしすぎます。MOSFETのQ1はスイッチとして機能します。120ミリ秒後、C3は完全に充電されます。MCUはGATEを低く引き込み、コンデンサに低インピーダンスパスを提供して電圧降下を平滑化します。R2は、最初の120ミリ秒間GATEを高く保つためのプルアップ抵抗です。これにより、データシートを無視することなく、大きなコンデンサの利点を持つ回路が作成されます。チャーリープレキシングされた各トレースに100 Ωの抵抗を使用することにしました。電流は1つのGPIOから流れ出し、抵抗を通り、LEDを通り、そして別の抵抗を通る必要があるため、合計抵抗は実質的に倍増します。また、100 Ωの抵抗が過剰な電流を許容しすぎる場合は、LEDを高周波数でPWMできることにも気づきました。10 µFのコンデンサがあれば、これらのパルスは安定した電流に平滑化され、VOUTの崩壊を防ぐことができます。1 kHzのリフレッシュレートと20%のデューティサイクルでは、計算上VOUTは約0.2 V低下します。アンテナの作成STMのアンテナインダクタンスツールを使用して、アンテナの寸法と特性を決定しました。名刺のスペース全体をアンテナに占有させたかったので、うまくいく組み合わせが見つかるまで、ターン数、トレース幅、トレース間隔を調整しました。13.56 MHzでNTAGの内部50 pFコンデンサと共振するために、約2.75 µHのインダクタンスが必要でした。これはうまくいきました。このインダクタンスはわずかに低いため、正確な周波数に調整する能力が得られます。もしすでに正確に2.75 µHであれば、並列にコンデンサを追加して共振周波数を下げることはできますが、それを上げる方法はありません。1.5 pFのコンデンサを搭載し、必要に応じて周波数を下げられるようにしました。PCBの配線に進みました。KiCadには組み込みのアンテナまたはコイル生成ツールがなく、試したプラグインは長方形のスパイラルに対応できなかったことに驚きました。KiPythonスクリプトが解決策でした。LLMがスクリプトの作成を支援し、数分間の会話で動作するようになりました。これは、SMT計算機に入力した数値に一致する、単純な長方形スパイラルトレースを生成します。リポジトリに.pyファイルを同梱しました。これは他の人にとっても非常に役立つものになると思います。その後、手作業で角を丸めました。この変更は、囲まれた領域をわずか数パーセント変更しました。レイアウトICと受動部品をすべてPCBの左側の1/4に配置すると、見た目が美しくなると考えました。LEDのトレースを約6回ルーティング、削除、再ルーティングしましたが、このデザインに落ち着きました。トレースを平均トレース長が短くなるようにルーティングすることも可能ですが、完全なループを作成することは避けたいと考えました。また、ループ面積を最小限に抑えたかったのです。完全なループでは、トレースがNFCフィールドと結合し、破壊的な渦電流を発生させる可能性があります。ループの中央上部にギャップを残すことで、電流が形成されなくなり、アンテナはマクロスケールRF干渉の影響を受けなくなります。ネットの色分けにより、どのトレースがどこに行くのかを理解するのが(そして楽しく)容易になりました。リボントポロジーは、メインループとは別の効果として、各トレース間に閉じ込められた電流を依然として作成します。トレース間隔と幅を最小限に保つことで役立ちました。裏面のデザイン裏面にはすべてのトレースを表示することにしました。シンプルなブロック図とICのBOMも作成しました。トレースをB.Silkscreenレイヤーにコピーするために、F.CuとB.Cuを.SVGとしてプロットし、B.Silkscreenにインポートして、目視で位置を合わせました。ルーティングは多くの点で珍しく、経験豊富な電気技師であれば変更すべき点に気づくだろうと思います。多くの人がこれを読んで「なぜグラウンドプレーンを使わなかったのか?」と考えているに違いありません。グラウンドプレーンは...