使用例
送信と同じデータ数の受信が完了すると通信を停止する
[GUI設定例]
シリアルペリフェラルインタフェース |
||||
RSPI0 |
使用する | |||
機能設定 |
SPI動作(4線式)マスタ送信/受信機能 | |||
RSPCKA端子 |
PC5 (A) | |||
MOSIA端子 |
PC6 (A) | |||
|
|
|
MISOA端子 |
PC7 (A) |
|
|
Rspi4WireMethod_TransmitReceive_Master0 |
|
使用する |
|
|
|
バッファサイズ |
64 ビット(バッファへのアクセスサイズはワード) |
|
|
|
パリティビット |
送信データパリティビットを付加しない 受信データのパリティチェックを行わない |
|
|
|
ベースビットレート |
1000(kbps)(実際の値: 1000 エラー: 0%) |
|
|
|
SSL信号アサート開始からRSPCK 発振までの期間(RSPCK 遅延) |
1 RSPCK |
|
|
|
最終RSPCK エッジ送出からSSL信号ネゲートまでの期間(SSL ネゲート遅延) |
1 RSPCK |
|
|
|
転送終了後のSSL信号の非アクティブ期間(次アクセス遅延) |
1 RSPCK + 2 PCLK |
|
|
|
MOSIアイドル値(マスタモード時SSLネゲート期間のMOSI出力値) |
前回転送した最終データ |
SSLA0端子 |
使用しない | |||
|
|
|
SSLA1端子 |
PC0 (A) (アクティブLow) |
SSLA2端子 |
使用しない | |||
SSLA3端子 |
使用しない | |||
RSPI端子制御設定(マスタ時のRSPCK SSLA MOSI / スレーブ時のMISO) |
CMOS出力 | |||
ループバックモード |
通常モード | |||
転送データ処理 |
割り込みサービスルーチンで処理する | |||
SPTI0 優先順位 |
レベル15 | |||
SPRI0 優先順位 |
レベル15 | |||
|
|
|
エラー割り込み許可(SPEI0) |
使用する |
|
|
|
SPEI0 |
SPII0 優先順位 (グループAL0) |
|
|
|
送信完了 |
使用する |
|
|
|
受信完了 |
使用する |
|
|
|
エラー検出 |
使用する |
|
|
|
コマンドの数、フレーム数 |
コマンド数: 1 転送フレーム数: 1 |
|
|
|
<Command0> |
|
|
|
|
ビット長 |
8ビット |
|
|
|
フォーマット |
MSBファースト |
|
|
|
RSPCK位相 |
奇数エッジでデータ変化、偶数エッジでデータサンプル |
|
|
|
RSPCK極性 |
アイドル時のRSPCKがLow |
|
|
|
ビットレート |
ベースのビットレートの8分周 |
|
|
|
SSLアサート信号 |
SSL0 |
|
|
|
SSLネゲート動作 |
転送終了時に全SSL信号をネゲート |
|
|
|
RSPCK遅延 |
1RSPCK |
|
|
|
SSLネゲート遅延 |
1RSPCK |
|
|
|
次アクセス遅延 |
1RSPCK + 2CLK |
[API設定例]
r_cg_main.c
/* Start user code for global. Do not edit comment generated here */
extern volatile uint32_t g_rspi0_tx_buf[4];
extern volatile uint32_t g_rspi0_rx_buf[4];
/* End user code. Do not edit comment generated here */
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
/* Start the RSPI0 module operation */
R_RSPI0_Start();
/* Send and receive RSPI0 data */
R_RSPI0_Send_Receive((uint32_t *)g_rspi0_tx_buf, 4U, (uint32_t *)g_rspi0_rx_buf);
while (1U)
{
;
}
/* End user code. Do not edit comment generated here */
}
r_cg_rspi_user.c
/* Start user code for global. Do not edit comment generated here */
volatile uint32_t g_rspi0_tx_buf[4];
volatile uint32_t g_rspi0_rx_buf[4];
/* End user code. Do not edit comment generated here */
void R_RSPI0_Create_UserInit(void)
{
/* Start user code. Do not edit comment generated here */
g_rspi0_tx_buf[0] = 0x000000FF;
g_rspi0_tx_buf[1] = 0x0000FF00;
g_rspi0_tx_buf[2] = 0x00FF0000;
g_rspi0_tx_buf[3] = 0xFF000000;
/* End user code. Do not edit comment generated here */
}
static void r_rspi0_callback_receiveend(void)
{
/* Start user code. Do not edit comment generated here */
/* Stop the RSPI0 module operation */
R_RSPI0_Stop();
/* End user code. Do not edit comment generated here */
}