読者です 読者をやめる 読者になる 読者になる

SH7125でシリアル通信

SH7125でシリアル通信ができたので,自分用にメモを取っておきます.
あくまで自分用なので,お見苦しい点が多々あります.

/**************************************************************************/
/*                                                                                          */
/*  FILE        :sh7125.c                                                              */
/*  DATE        :Thu, Jul 29, 2010                                                                   */
/*  DESCRIPTION :Main Program                                                   */
/*  CPU TYPE    :SH7125                                                                         */
/*                                                                                                                       */
/*  This file is generated by Renesas Project Generator (Ver.4.16).   */
/*                                                                                                                       */
/*************************************************************************/

//#include "typedefine.h"
#include "iodefine.h"
#ifdef __cplusplus
//#include <ios>                        // Remove the comment when you use ios
//_SINT ios_base::Init::init_cnt;       // Remove the comment when you use ios
#endif

void main(void);

#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif

void main(void)
{
    CPG.FRQCR.BIT.IFC    = 1;             // Iφ / 4 = 50MHz
    CPG.FRQCR.BIT.BFC    = 3;           // Bφ / 2 = 25MHz
    CPG.FRQCR.BIT._PFC    = 3;         // Pφ / 2 = 25MHz
    CPG.FRQCR.BIT.MPFC    = 3;        // MPφ / 2 = 25MHz
   
    /* SCI0 Module Stanby Mode Disable */
    STB.CR3.BIT._SCI1 = 0;

    /* PIN設定 */
    PFC.PEIORL.BYTE.L    = 0xFF;
    PFC.PACRL2.BIT.PA4MD = 1;        // TXD1 Output
    PFC.PACRL1.BIT.PA3MD = 1;        // RXD1 Input
   
    /* SCI設定 */
    SCI1.SCSMR.BIT.CA    = 0;            // 調歩同期式
    SCI1.SCSMR.BIT.CHR    = 0;        // 8 Bit Data
    SCI1.SCSMR.BIT._PE    = 0;         // Perity Disable
    SCI1.SCSMR.BIT.STOP    = 0;      // 1 Stop Bit
    SCI1.SCSMR.BIT.MP    = 0;           // Multi Prosessor Mode Disable
    SCI1.SCSMR.BIT.CKS    = 0;        // Not Frequency Divided

    SCI1.SCBRR            = 19;              // 38400bps

    SCI1.SCSCR.BIT.TIE     = 1;        // Send Data Empty Interrupt Enable
    SCI1.SCSCR.BIT.RIE    = 1;        // Receive Data Empty Interrupt Enable
    SCI1.SCSCR.BIT.TE    = 1;          // Send Enable
    SCI1.SCSCR.BIT.RE    = 1;         // Receive Enable
    SCI1.SCSCR.BIT.TEIE = 1;         // Send End Interrupt Enable

    while( !SCI1.SCSSR.BIT.TDRE )
    {
        PE.DRL.BYTE.L = 0xFF;
    }

    SCI1.SCTDR = 'A';
    SCI1.SCSSR.BIT.TDRE = 0;


    while( 1 );
}

#ifdef __cplusplus
void abort(void)
{

}
#endif


FDTの設定は以下の通りにする.
4c89a131.jpeg







59f503bb.jpeg







TeraTermの設定も以下のようにする.
47ecfe6e.jpeg







4aab4dee.jpeg







2個目のはあまり関係がないかも.
TeraTermで上の設定は保存することができる.ただし,最初にポートを指定してあげる必要がある.

c4765ac9.jpeg