MCASP自环配置。 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12299|回复: 0
打印 上一主题 下一主题

[未解决] MCASP自环配置。

[复制链接]

6

主题

12

帖子

1216

积分

金牌会员

Rank: 6Rank: 6

积分
1216
跳转到指定楼层
楼主
发表于 2018-11-7 13:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我项目上用OMAPL138的板子MCASP的引脚都是链接的FPGA,所以在FPGA这端设置的MCASP自环。把axr0接收到的通过axr1发回去。
部分代码如下
input mcasp_afsx,
& a, ]4 G3 x3 ^, xinput mcasp_ahclkx,
$ w+ v( b9 F" c8 m; X# kinput mcasp_aclkx,: {( n' h& q- Q- {
input axr0,8 R' ?7 w/ t+ h* @* Z' Q1 ?% d
' h+ Y& s9 q( h4 }
output mcasp_afsr,* Y0 W9 N& Z9 a3 u4 T5 X2 V
output mcasp_ahclkr,
9 D: M9 K1 Y8 ?1 c7 W& Z7 F9 uoutput mcasp_aclkr,
: l* O! j# L, G8 n, f" T( M2 ?' @: doutput axr1,
% n1 ?" Z4 A4 e. D* O
assign mcasp_afsr = mcasp_afsx;# G0 p( m& q8 D7 U$ I
assign mcasp_aclkr = mcasp_aclkx;
5 Z: A% y% [1 x2 sassign mcasp_ahclkr = mcasp_ahclkx;( H+ H" J# ~# c" D
assign axr1 = axr0;
0 ?  R: C! f% q4 m, l4 l
9 Q7 H* J& O3 }# K8 c
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

. u6 a. B9 n8 k) N, A
static void McASPI2SConfigure(void)
  R0 V, B4 s) M  d( g{
7 B2 ~" `1 B$ w1 `8 hMcASPRxReset(SOC_MCASP_0_CTRL_REGS);
. `5 z( h3 ^5 f2 v3 F, b6 GMcASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */
# \# o) p" S% j) z& ^* F' N2 gMcASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
7 w  ^' R4 o6 `4 N; Q# tMcASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
5 ?8 v- ]# [: H  d' B, lMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
( P  f6 z7 i* U9 z0 z) `. HMCASP_RX_MODE_DMA);
) G( R2 V2 V" m+ L. b) ~McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,# u3 M5 M  {, G" H9 X4 U
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
0 s  u6 x/ l) v) f  oMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, 0 e" d- C4 u. }
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
% Y) J4 u1 N. B7 c. {McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD,   z) R7 x$ @0 M* |
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */; b( _: i: X8 y. f, _
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
# @2 {% C; m  f# E4 {% H9 \McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE); ) E' ]( ?  t- q) q) E+ Q
McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,9 v: R* E: H$ J6 N' K/ D, X+ Q& Y" s
0x00, 0xFF);
/* configure the clock for transmitter */
& G9 @: ?% i( j1 BMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);8 A! B, i6 V5 C
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE); ! M9 A' J# v; b$ b
McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,# ^( N2 V/ t7 j
0x00, 0xFF);- Y, C$ e0 S3 F2 y( P8 D5 G: p
) H5 k8 i! N* I# T; w
/* Enable synchronization of RX and TX sections */ ) S( r4 }' l) g/ e( h& r  ]
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */) C& V! ^* [6 E; c& W
McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
- I  h9 G( ~4 c' l3 EMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*
$ [( W# X8 k9 W/ x- |# ^** Set the serializers, Currently only one serializer is set as
4 M, ~: o, m% P, s** transmitter and one serializer as receiver.
0 m" Y0 S7 C: m1 B  ~# x*/
3 D+ d+ |2 V5 A! b& q) ~McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);
+ X( i) s5 w+ M- fMcASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*
# _; B$ K1 K0 f  ?** Configure the McASP pins
0 |/ ~$ h& J; l$ x** Input - Frame Sync, Clock and Serializer Rx5 [% x& \+ D2 z: B
** Output - Serializer Tx is connected to the input of the codec
3 ~2 r" V, D9 \  n/ w*/
/ {: @7 O/ c  w* g: cMcASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);% s1 X3 m% Y9 @6 J* W
McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));
( N- {1 Q) Y5 AMcASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX: I2 _7 n4 b1 @7 F
| MCASP_PIN_ACLKX
5 T" R) H) t# \% W) s8 f! Z' ]| MCASP_PIN_AHCLKX! z$ Y* [3 a6 @: ~' U
| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */& f! m/ U+ {- n- l7 ?+ t. [6 m
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 0 e6 S2 q3 X# K+ z) g) S4 U
| MCASP_TX_CLKFAIL
2 G' d. g( X) }# r9 n) f- w| MCASP_TX_SYNCERROR  [% k5 }% {: d* H
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
1 R7 ?& q/ d/ W| MCASP_RX_CLKFAIL
9 p, \. @* W0 m& R" _' L| MCASP_RX_SYNCERROR
+ w* L& @" ~  e( B| MCASP_RX_OVERRUN);1 `* f2 ]( [& R
}
static void I2SDataTxRxActivate(void), a2 M7 I' W8 ~+ ~8 J4 E! h
{
2 N, M; V" P; y, o6 F/* Start the clocks */& f1 p1 o' `/ U1 d! ?) b9 U( l
McASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);( ^. |# K) D; z7 u! J; G
McASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
& c. V6 u7 Q' O' z) v+ r2 k) wEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,4 @/ ?6 `0 B1 n# u
EDMA3_TRIG_MODE_EVENT);
5 z# E! [8 E5 c$ P7 g: [* r. d; NEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS,
& x+ D: G) j/ l/ v) IEDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
% U9 I$ r# C: I$ D; g6 KMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
# K3 b* q5 |" f! L' Z" sMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
$ D3 T5 u# S, E" cwhile(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
1 i0 M& b9 ]  [$ S3 |McASPRxEnable(SOC_MCASP_0_CTRL_REGS);) r9 v6 l- F* S5 q, U* w
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
8 Z$ @5 e' d; h' i}

: J7 K) s" x/ D& `- x
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.
. n9 V- k( |' C* ?5 b3 X0 `% @- W7 n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-4 11:52 , Processed in 0.042600 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表