こんにちは、
私たちは イーサネットでMIMXRT1062DVL6Bし、製品を実現させてください。
まず、製品のMACアドレスを「SILICONID_ConvertToMacAddr」で実装します。「fsl_silicon_id.c」上で、NXPのOUIとシリコンIDを持つデバイスごとのユニークなMACアドレスを取得するために。
でもMACアドレスは SILICONID_ConvertToMacAddrは唯一無二ではなく、すべて同一だった。
質問があります。
「SILICONID_ConvertToMacAddr」と呼ぶ前に何か設定はありますか?
それとも、「SILICONID_ConvertToMacAddr」はNXPデバイス上で一意のMACアドレスを取得するために機能しませんか?
2026年1月4号のIMXRT1060RM.pdfでは答えが見つかりませんでした。
答えを教えていただけますか?
ありがとうございます。
やあ、アブナー
ご支援ありがとうございます。
MACアドレスを使えることは理解しましたSILICONID_ConvertToMacAddr製品に。しかし、SILICONID_ConvertToMacAddrはあくまで例であり、大量生産には使えないと理解しています。そして、OUIのMACアドレスを使わなければなりません。
よろしくお願いいたします。
茂
こんにちは、@shigeru辻田
この状況を見つけてくれてありがとうございます。SILICONID_ConvertToMacAddrはNXP MCUX SDKの例として、テスト環境でのMACアドレスの競合を減らすために使われています。同じスイッチで異なるSocsのETHに接続しています。同じシリーズのSocの状況については、ここでは触れないかもしれません。
しかし、なぜこの方法で製品のMACアドレスを生成するのかが混乱しています。まず第一に、あなたのOUIは会社のものを使うべきです。そして、ユニークIDについては、会社内に特別な定義があるはずです。
こんにちは、メイ。
SILICONID_ConvertToMacAddrは、固定のNXP OUIと3バイトのシリコンID(OCOTP->CFG0/1の一部)を使用してMACアドレスを生成すると理解しています。
ターゲット製品のOCOTP->CFG0/1を観察しました。
それらの値は以下のとおりです。
- MIMXRT1062 1個
- OCOTP->CFG0: (uint32_t)0x615c'faa4
- OCOTP->CFG1: (uint32_t)0x2a1e'61d7
- その他のMIMXRT1062
- OCOTP->CFG0: (uint32_t)0x615c'faa4
- OCOTP->CFG1: (uint32_t)0x4922'61d7
OCOTP->CFG0 の下位 3 バイトが SILICONID_ConvertToMacAddr の MAC アドレスに使用されるため、両者の MAC アドレスは類似しています。
SO、多くの製品は似たMACアドレスを持っています。(現在、数百個のプロトタイプを保有しており、すべてのMACアドレスをチェックしているわけではありませんが、54:27:8D:A4:FA:5Cとは異なるMACアドレスはまだ見つかっていません。)
ありがとう。
こんにちは@shigeru-tsujitaさん
私たちの製品にご関心を寄せ、コミュニティをご利用いただき、本当にありがとうございます。
SDK silicon_idコンポーネントが正しく統合されていると仮定すれば、MIMXRT1062のためにSILICONID_ConvertToMacAddr()を呼び出す前に追加の設定は必要ありません。
SILICONID_ConvertToMacAddr() は、MAC アドレスを生成する際に、完全な 64 ビットのシリコン ID を使用しないことにご注意ください。最初の3バイトには固定のNXP OUIを使用し、最後の3バイトにはシリコンIDから3バイトのみを使用します。
SDKコードによると:
複数のデバイスから64ビットシリコンのユニークIDを読み取り、ID値が正しく読み取られているか確認してもらえますか?また、siliconId[0]、siliconId[1]、siliconId[2]も比較してください。これらはMACアドレスを生成するために使用されるバイトです。
これらの3バイトがデバイス間で同一であれば、生成されるMACアドレスも同一になります。
よろしくお願いいたします。
5月