1116216_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1116216_ja-JP

1116216_ja-JP

CANからK64ブートローダーへの移植<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

1. はじめに

MCUbootは、ほとんどのKinetisおよび i.mx RTデバイスで一般的に使用されるブートローダです。UART / USB / CAN / I2C / SPIを介したダウンロードアプリケーションをサポートできます。これにより、アプリケーション開発、最終製品製造など、製品ライフサイクル全体を通じて、Kinetisマイクロコントローラと i.mx RT MPUのプログラミングを迅速かつ容易に行うことができます。

K64は、Kinetisファミリで非常に人気のあるデバイスです。M4コア、512k以上のフラッシュ、120Mのメイン周波数、I2C / SPI / UART / CAN / USB / ENETなどの豊富なインターフェースを備えています。しかし、K64のMCUbootデモにCANが含まれていないのは少し厄介です。K64のCANはブートローダーアプリケーションをサポートできませんか?いいえもちろんそうじゃないです。ここでは、CAN機能をK64ブートローダーに移植します。

Kinetisファミリには、FlexCANとMSCANの2種類のCANペリフェラルがあります。FlexCANはMSCANよりも複雑です。K64にはFlexCANがあります。作業をスピードアップするために、FlexCANドライバと関連コードをTWR-KV46ブートローダから移植できます。

ハードウェア:

TWR-SERボード2枚

TWR-ELEV2セット

TWR-K65F150M

TWR-K64F120M

 

ソフトウェア:

MCUXpresso 11.0

MCUBoot 2.0.0 パッケージ

SDK_2.6.0_TWRのK64F120M

2. ソフトウェアの移植

ステップ1、以下のファイルをプロジェクトにコピーしますtwrk64f120m_tower_bootloader。

\drivers\fsl_flexcan.c

\drivers\fsl_flexcan.h

\ソース\ブートローダー\src\flexcan_peripheral_interface.c

 

ステップ2、FlexCANを有効にするようにプロジェクトを変更します。

  • bootloader_config.hでは、[定義BL_CONFIG_CAN 1 に変更します。
  • peripherals_MK64F12.c で、

#if BL_CONFIG_CAN

    CAN0

{.typeMask = kPeripheralType_CAN

.instance = 0 の場合、

     .pinmuxConfig = can_pinmux_config,

.controlInterface = &g_flexcanControlInterface,

     .byteInterface = &g_flexcanByteInterface,

.packetInterface = &g_framingPacketInterface }、

#endif    // BL_CONFIG_CAN

  • ピンマルチプレクサ設定。peripherals_pinmux.hでは、足す

#define BL_ENABLE_PINMUX_CAN0 (BL_CONFIG_CAN)

//!CAN ピンマルチプレクサ 構成

#define CAN0_RX_PORT_BASE PORTB

PTAグループの #define CAN0_RX_GPIO_PIN_NUM 18 PIN 13

#define CAN0_RX_FUNC_ALT_MODE kPORT_MuxAlt2 ALT モードの CAN0 RX 機能 (ピン 13)

#define CAN0_TX_PORT_BASE PORTB

PTAグループの #define CAN0_TX_GPIO_PIN_NUM 19 PIN 12

#define CAN0_TX_FUNC_ALT_MODE kPORT_MuxAlt2 ALT モードの CAN0 TX 機能 (ピン 12)

  • 時計を設定します。FlexCANクロック・ソースは、OSCERCLKまたはバス・クロックです。ここでは、48Mhzで動作するバスクロックを使用します。flexcan_peripheral.cでは、これらのコードを追加します。

定数 flexcan_timing_config_t bit_rate_table48m[] = {

    { 23, 3, 4, 4, 4 }, /* 125 kHz */

    { 11, 3, 4, 4, 4 }, /* 250 kHz */

    { 5, 3, 4, 4, 4 },  /* 500 kHz */

    { 3, 3, 4, 4, 4 },  /* 750 kHz */

    { 2, 3, 4, 4, 4 }   /* 1   MHz */

};

変更行621

FLEXCAN_SetTimingConfig((CAN_Type *)baseAddr, &bit_rate_table48m[s_flexcanInfo.baudrate]);

ステップ3、プロジェクトをコンパイルします。

 

3.機能テスト

ソフトウェアの準備

CANバス経由でブートローダーを接続するために、NXPはブリッジとしてTWR-K65を持っています。ただし、そのソースコードはK64SDKにありません。MCUBoot2.0.0 パッケージに入っています。ユーザーは https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuboot-mcu-b... からパッケージをダウンロードできます

ブリッジプロジェクトは buspal と呼ばれ、NXP_Kinetis_Bootloader_2_0_0\apps\bus_pal\MK65F18 にあります。BusPalは、blhostのコンパニオンとして利用できる組み込みソフトウェアツールです。このツールは、バストランスレータとして機能します。

UARTを介したblhostおよびI2C、SPI、またはCANを介したターゲットデバイスとの接続を確立し、blhostがUSBターゲットデバイスからのコマンドと応答を実行するのを支援します。BusPal は、一部のプラットフォームで使用できます。BusPalのソース・コードは、Kinetisブートローダ・リリースに付属しており、FRDM-KL25、TWR-KV46F150M、TWR-K65F180Mをサポートしており、他のプラットフォームで実行するようにカスタマイズできます。

pastedImage_1.png

buspalの詳細については、Kinetis blhost User's Guideの付録Cを参照してください。

 

ハードウェア接続

TWR-SERはトランシーバーとしてTJA1050されています。両方のボードでJ7を接続できます。タワーシステムを構築するときは、ユーザーは電力に注意する必要があります。パワーツリーは非常に柔軟です。設定が不適切な場合、TJA1050が機能しない場合があります。

 pastedImage_2.png

TWR-K65F180MのBuspalプロジェクトは、UART1を使用してコンピュータと接続します。ポートは TWR-SER 上にあります。接続を簡単にするために、openSDA UARTポートを共有できます。openSDA UARTはUART2を使用しており、K65タワーボード上のJ33およびJ34にUART1信号をジャンプできます。

 

pastedImage_3.png

 

テスト:

コマンド ウィンドウを開き、次のように入力します。

>blhost -p com4,57600 –buspal can,0,321,123 – get-property 10

このコマンドは、システム全体が正しく機能しているかどうかを確認できます。

その後、今すぐコードをK64にダウンロードできます。入力してください

>blhost -p com4,57600 –buspal can,0,321,123 – flash-image xxxxxx.s19 消去

Kinetis KシリーズMCU
标记 (1)
无评分
版本历史
最后更新:
‎01-05-2026 10:08 AM
更新人: