📄 init_mcasp.c
字号:
#include "essaiCSL.h"
#include <csl_mcasp.h>
MCASP_Handle hMcasp;
void initMcasp(int port)
{
/*
MCASP_SetupClk clkSetup;
MCASP_SetupHclk hClkSetup;
MCASP_SetupFsync fsyncSetup;
MCASP_SetupFormat formatSetup;
*/
/*---------------------------------------------------------------*/
/* Define structures for later use */
/*---------------------------------------------------------------*/
MCASP_ConfigRcv rcvRegs =
{
0xFFFFFFFF, //masque donn閑s
MCASP_RFMT_RMK(
MCASP_RFMT_RDATDLY_1BIT, //delay sur FS
MCASP_RFMT_RRVRS_MSBFIRST,
MCASP_RFMT_RPAD_ZERO, //pad 0, 1 ou bit
MCASP_RFMT_RPBIT_OF(0), //no du bit si pas 0 ou 1
MCASP_RFMT_RSSZ_16BITS,
MCASP_RFMT_RBUSEL_DAT, //DAT ou CFG
MCASP_RFMT_RROT_NONE), //rotation
MCASP_AFSRCTL_RMK(
MCASP_AFSRCTL_RMOD_OF(0), //nb slots, 0 si burst
MCASP_AFSRCTL_FRWID_BIT, //largeur FS
MCASP_AFSRCTL_FSRM_EXTERNAL,
MCASP_AFSRCTL_FSRP_ACTIVEHIGH),
MCASP_ACLKRCTL_RMK(
MCASP_ACLKRCTL_CLKRP_FALLING,
MCASP_ACLKRCTL_CLKRM_EXTERNAL,
MCASP_ACLKRCTL_CLKRDIV_OF(0)),
MCASP_AHCLKRCTL_RMK( //sert aux automates?
MCASP_AHCLKRCTL_HCLKRM_INTERNAL,
MCASP_AHCLKRCTL_HCLKRP_FALLING,
MCASP_AHCLKRCTL_HCLKRDIV_OF(5)),
0x1, //slot 0 actif
MCASP_RINTCTL_RMK( //interruptions
MCASP_RINTCTL_RSTAFRM_DISABLE,
MCASP_RINTCTL_RDATA_DISABLE,
MCASP_RINTCTL_RLAST_DISABLE,
MCASP_RINTCTL_RDMAERR_DISABLE,
MCASP_RINTCTL_RCKFAIL_DISABLE,
MCASP_RINTCTL_RSYNCERR_DISABLE,
MCASP_RINTCTL_ROVRN_DISABLE),
MCASP_RCLKCHK_RMK( //contr鬺e horloge
MCASP_RCLKCHK_RCNT_OF(0), //seulement lu!!!
MCASP_RCLKCHK_RMAX_OF(0xFF),
MCASP_RCLKCHK_RMIN_OF(5),
MCASP_RCLKCHK_RPS_OF(0)) //div de DSP ck
};
MCASP_ConfigXmt xmtRegs =
{
0xFFFF0000,
MCASP_XFMT_RMK(
MCASP_XFMT_XDATDLY_1BIT,
MCASP_XFMT_XRVRS_MSBFIRST,
MCASP_XFMT_XPAD_ZERO,
MCASP_XFMT_XPBIT_OF(0),
MCASP_XFMT_XSSZ_16BITS,
MCASP_XFMT_XBUSEL_CFG,//DAT ou CFG
MCASP_XFMT_XROT_NONE),
MCASP_AFSXCTL_RMK(
MCASP_AFSXCTL_XMOD_OF(2) , //0 si burst
MCASP_AFSXCTL_FXWID_BIT,
MCASP_AFSXCTL_FSXM_INTERNAL,
MCASP_AFSXCTL_FSXP_ACTIVEHIGH),
MCASP_ACLKXCTL_RMK(
MCASP_ACLKXCTL_CLKXP_RISING,
MCASP_ACLKXCTL_ASYNC_ASYNC,//attention : joue sur RCLK et RFS
MCASP_ACLKXCTL_CLKXM_INTERNAL,
MCASP_ACLKXCTL_CLKXDIV_OF(0)),
MCASP_AHCLKXCTL_RMK(
MCASP_AHCLKXCTL_HCLKXM_INTERNAL,
MCASP_AHCLKXCTL_HCLKXP_FALLING,
MCASP_AHCLKXCTL_HCLKXDIV_OF(DIV)),
0x1,
MCASP_XINTCTL_RMK(
MCASP_XINTCTL_XSTAFRM_DISABLE,
MCASP_XINTCTL_XDATA_DISABLE,
MCASP_XINTCTL_XLAST_DISABLE,
MCASP_XINTCTL_XDMAERR_DISABLE,
MCASP_XINTCTL_XCKFAIL_DISABLE,
MCASP_XINTCTL_XSYNCERR_DISABLE,
MCASP_XINTCTL_XUNDRN_DISABLE),
MCASP_XCLKCHK_DEFAULT
};
MCASP_ConfigSrctl srctlRegs =
{
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,//閠at si inactif, 3 state???
MCASP_SRCTL_SRMOD_RCV), /* SRCTL0 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL1 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL2 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL3 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL4 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL5 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL6 */
MCASP_SRCTL_RMK(
MCASP_SRCTL_DISMOD_LOW,
MCASP_SRCTL_SRMOD_INACTIVE), /* SRCTL7 */
};
MCASP_ConfigGbl globalRegs =
{
MCASP_PFUNC_RMK( //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -