PSoC 6 MCUデバイスのファームウェアを介したSPI I/Oピンの制御 - KBA226844 - Community Translated (JA)

Version 1

    Community Translated by  NoTa_4591161          Version: **

     

    質問:

    PSoC®6 MCUデバイスのSPIピン(CLKMOSIMISOSS)は、ファームウェアのランタイム中にどのような制御ができますか

     

    回答:

    SCB_SPIコンポーネントをTopDesignに配置した後、SPIマスター/スレーブ機能をその場で無効/有効にすることができます。以下のソリューションはファームウェアのピンを制御する手順を提供し、コードスニペットはAPIを使用して推奨されるソリューションを実装しています。

     

    ファームウェアのソリューション:

    一般に、ピンはファームウェアまたはハードウェアのいずれかで制御できます。デフォルトでは、すべてのSPI I/OピンはSCBハードウェアブロックによって制御されます。そのため、ファームウェアで制御できるようにするには、SCBブロックからSPIピンを切断する必要があります。

    次の手順に従って、SPI I/OピンとSPI SCB間のハードウェア接続を切断し、ファームウェアで制御を有効にします。

    1. SPI I / Oピンに対応HSIOM_PRTx_PORT_SELxレジスタのビットに「ビット0」を書きみます
    2. GPIO_PRTx_CFGレジスタを更して、SPI I / Oピンの動モドを設定します

    詳細については、 Architecture Technical Reference ManualおよびRegister Technical Reference ManualI/Oシステム(HSIOM)を参照してください。次のコードスニペットを使用して、APIを使用して推奨されるソリューションを実装できます[SPI CLKピンをP10.2にすることを検討してください。これはファームウェアで制御されます]

     

    コードスニペット:

     

    // デフォルトのSCB_SPI構成設定を格納する変数

     

    uint32 temp;

     

    // アプリケーションが必要とする新しいドライブモード設定を格納する変

    // 設定する駆動モードが高インピーダンスの場合drive_mode = 0xFFFFF0FF

     

    uint32 drive_mode;

     

    // SCB_SPIHSIOM構成を保存します

     

    temp = CY_GET_REG32(CYREG_HSIOM_PRT10_PORT_SEL0);

     

    // SPI CLKピンをファームウェアで制御されるように設定しま

     

    CY_SET_REG32 (CYREG_HSIOM_PRT10_PORT_SEL0, temp & 0xFFE0FFFF);

     

    // SPI CLKピンの駆動モードを設定しま

     

    CY_SET_REG32 (GPIO_PRT10_CFG, drive_mode);

     

    / /デフォルトのSPI機能をロードします(つまりCLKピンがSCB_SPIードウェアブロックに接続されています

     

    CY_SET_REG32 (CYREG_HSIOM_PRT10_PORT_SEL0, temp)

     

    注意:

    すべてのSCBブロックとTCPWMなどの他の周辺機器もHSIOMとドライブモードレジスタを変更することにより、ファームウェアで制御できます