ユーザプログラムに複数のOSS-ECAL(異なるMCU機能の電子部品)を組み込む方法

ユーザプログラムに複数のOSS-ECAL(異なるMCU機能の電子部品)を組み込む方法は、次の例を参考に行ってください。

例 : 電子部品ABC1 Sensor ( ADC type ), 電子部品ABC2 Sensor ( SPI type ), HAL Renesas SSP

Step1 フォルダ作成

1 OSS-ECAL用フォルダ作成(フォルダ名は自由)
2 ABC1およびABC2用フォルダ作成

Step2 ABC1ファイルのコピー

1 ABC1フォルダにABC1のファイルコピー

Step3 ABC2ファイルのコピー

1 ABC2フォルダにABC2のファイルコピー

Step4 共通ファイルのコピー

1 “oss_ecal.h” および “OSS-ECAL Terms of Use.txt” の最新版をコピー
2 ABC1の”user_setting.c” および “user_setting.c” をコピー

Step5 “user_setting.h” にABC1およびABC2のMCU設定

1 ADC_VDDをMCU VDD電圧 3.3 に設定
2 ADC_BITをMCU ADCのbit長 12 に設定
3 ADC_ABC1をABC1に用いるADC Group g_adc0 に設定
4 ADC_ABC1_CHをABC1に用いるADC Channel ADC_REG_CHANNEL_0 に設定
5 ABC2の “user_setting.h”から次のコードをコピー

// OSS-ECAL SPI components hard wiring
#define CMP_SPI_NUM             1U              // OSS-ECAL SPI components number 
#define SPI_ABC2                g_spi0          // SPI control( g_spi0 : Generated by configuration ) 
#define GPIO_ABC2_CS            g_ioport        // GPIO control( g_ioport : Generated by configuration )  
#define PIN_ABC2_CS             IOPORT_PORT_01_PIN_03   // ABC2 /CS : MCU Digital Out Pin

// SPI settings
#define SPI_RETRY               3               // Retry times

// SPI components object struct
typedef struct
{
        etCMP                   cmp;            // Components number codes
        const spi_instance_t*   obj;            // SPI object of SSP
        const ioport_instance_t* gpio;          // SPI /CS pin object of SSP
        ioport_port_pin_t       pin_cs;         // SPI /CS pin of SSP
}stSPI_SSP_OBJ;

extern const stSPI_SSP_OBJ      tblSPI[ CMP_SPI_NUM ];

6 SPI_ABC2をABC2に用いるSPI Channel g_spi0 に設定
7 GPIO_ABC2_CSをABC2の/CSに用いるGPIO Port g_ioport に設定
8 PIN_ABC2_CSをABC2の/CSに用いるGPIO Port pin IOPORT_PORT_01_PIN_03 に設定
9 SPI_RETRYをSPI通信のリトライ数 3 に設定

/*-- File Header Comment Start -----------------------------------------------*/
// File Name        : user_setting.h
// Reason for change: 01.00.00 : 15/11/'23 : New Release
// Specifications   : -
// HAL              : Renesas SSP
// Terms of Use     : OSS-ECAL Terms of Use.txt
// Nickname         : Blue Dragon
/*-- File Header Comment End -------------------------------------------------*/

// Define to prevent recursive inclusion
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#ifndef __USER_SETTING_H__
#define __USER_SETTING_H__


// Includes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include "oss_ecal.h"
#include <hal_data.h>

#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */


// Immediate definitions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADC components common setting
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define ADC_VDD                 3.3F            // MCU Vdd Configures the reference voltage [V]
#define ADC_BIT                 12U             // MCU ADC bit  Note:iADC_bit is set according to MCU

// Hardware setting by user
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// OSS-ECAL DIO hard wiring

// OSS-ECAL ADC components hard wiring
#define CMP_ADC_NUM             1U              // OSS-ECAL ADC components number
#define ADC_ABC1                g_adc0          // ADC Group control( g_adc0 : Generated by configuration )
#define ADC_ABC1_CH             ADC_REG_CHANNEL_0 // ABC1 : MCU ADC Channel

// OSS-ECAL SPI components hard wiring
#define CMP_SPI_NUM             1U              // OSS-ECAL SPI components number
#define SPI_ABC2                g_spi0          // SPI control( g_spi0 : Generated by configuration )
#define GPIO_ABC2_CS            g_ioport        // GPIO control( g_ioport : Generated by configuration )
#define PIN_ABC2_CS             IOPORT_PORT_01_PIN_03   // ABC2 /CS : MCU Digital Out Pin


// OSS-ECAL I2C components hard wiring

// OSS-ECAL Wake-up components hard wiring


// Communication setting by user
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SPI settings
#define SPI_RETRY               3               // Retry times



// Typedef definitions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADC components object struct
typedef struct
{
        etCMP                   cmp;            // Components number codes
        const adc_instance_t*   obj;            // ADC object of SSP
        adc_register_t const    pin;            // ADC channel of SSP
}stADC_SSP_OBJ;

// SPI components object struct
typedef struct
{
        etCMP                   cmp;            // Components number codes
        const spi_instance_t*   obj;            // SPI object of SSP
        const ioport_instance_t* gpio;          // SPI /CS pin object of SSP
        ioport_port_pin_t       pin_cs;         // SPI /CS pin of SSP
}stSPI_SSP_OBJ;


// External constants data
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
extern const stADC_SSP_OBJ      tblADC[ CMP_ADC_NUM ];
extern const stSPI_SSP_OBJ      tblSPI[ CMP_SPI_NUM ];


// Exported global variables
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Exported public functions
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#if defined(__cplusplus)
}
#endif /* __cplusplus */

#endif /* __USER_SETTING_H__ */

Step6 “user_setting.c” にABC2の情報追加

1 #include パス変更
2 ABC2の#include追加
3 ABC2の “user_setting.c”から次のコードをコピー

const stSPI_SSP_OBJ     tblSPI[ CMP_SPI_NUM ] =
{
        { eABC2      , &SPI_ABC2      , &GPIO_ABC2_CS     , PIN_ABC2_CS     }
};
/*-- File Header Comment Start -----------------------------------------------*/
// File Name        : user_setting.c
// Reason for change: 01.00.00 : 15/11/'23 : New Release
// Specifications   : -
// HAL              : Renesas SSP
// Terms of Use     : OSS-ECAL Terms of Use.txt
// Nickname         : Blue Dragon
/*-- File Header Comment End -------------------------------------------------*/

// Includes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include "ABC1/oABC1.h"

#include "ABC2/oABC2.h"

// Static variables declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Global variables declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Static constants data declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Global constants data declaration
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HAL GPIO object table for components

// HAL ADC object table for components
const stADC_SSP_OBJ tblADC[ CMP_ADC_NUM ] =
{
        { eABC1    , &ADC_ABC1        , ADC_ABC1_CH      }
};

// HAL SPI object table for components
const stSPI_SSP_OBJ     tblSPI[ CMP_SPI_NUM ] =
{
        { eABC2      , &SPI_ABC2      , &GPIO_ABC2_CS     , PIN_ABC2_CS     }
};

// HAL I2C object table for components


// Private functions prototypes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Public functions prototypes
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


// Functions program
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Step7 oABC1関数およびoABC2関数の追加

1. ユーザプログラムのヘッダファイルにABC1およびABC2のヘッダをインクルードする。

// user program header
#include "../oABC1.h"
#include "../oABC2.h"

2. ABC1の”sample.c” を参考にAPI関数をアプリケーションに追加

// user application program
    etSTS sts = oABC1( eCMD_START_READ, &vgPHY1 );

または、コマンド型API関数を追加

// user application program
    etSTS sts = oABC1_START_READ( &vgPHY1 );

3. ABC2の”sample.c” を参考にAPI関数をアプリケーションに追加

// user application program
    etSTS sts = oABC2( eCMD_START_READ, &vgPHY2 );

または、コマンド型API関数を追加

// user application program
    etSTS sts = oABC2_START_READ( &vgPHY2 );
OSS-ECAL Japanese
error: コンテンツは保護されている