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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13111|回复: 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,$ b) H- c* y3 x- b" C
input mcasp_ahclkx,
' R$ V* @$ T8 J8 d: Z$ W# B) ^input mcasp_aclkx,2 ^/ n4 ~8 G9 Y8 M2 u
input axr0," S3 e5 n0 d+ a7 H) l5 O- C1 I
3 Y' i* T" y  G4 y0 x
output mcasp_afsr,
( B5 X/ `# E9 H2 F' U% joutput mcasp_ahclkr,
" |9 E& P: c0 |7 {( V8 {output mcasp_aclkr,! S- c. L: _0 ^# ^$ D; m
output axr1,
7 z$ o: x6 ~9 n. C; n% r4 l: Q9 o
assign mcasp_afsr = mcasp_afsx;! x0 U6 Q) V7 e( X- e+ g
assign mcasp_aclkr = mcasp_aclkx;2 ?" R& M5 C' ^7 B  y( w. \! \9 g. s
assign mcasp_ahclkr = mcasp_ahclkx;
8 |! t( @- E& [! g7 O& g3 Jassign axr1 = axr0;

9 v! X$ S2 E% h1 {7 R2 p2 B% S2 ^: p
在OMAPL138这端,通过axr0接口发固定的数,axr1接收。
在配置MACASP的时候,发送全部取内部时钟,接收全部取外部时钟。
一直循环发送,但是接收不到。在FPGA端也没有看到时钟和信号的波形。
部分代码如下,关于edma3的部分未做变化。

: Q- q0 H* Q! X
static void McASPI2SConfigure(void), ~0 O' {$ d# L1 z
{1 a6 v$ F, T1 G( R
McASPRxReset(SOC_MCASP_0_CTRL_REGS);  G. h: H2 u0 g- a! B! R/ v
McASPTxReset(SOC_MCASP_0_CTRL_REGS);
/* Enable the FIFOs for DMA transfer */5 S2 S% B% t+ r
McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);  D4 T- ]* r5 ^: B9 `
McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 1, 1);
/* Set I2S format in the transmitter/receiver format units */
: y+ u" |' i! H( f. E+ D0 A9 HMcASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
6 ^% R8 C5 W. Z! _MCASP_RX_MODE_DMA);
( G- z# G5 v3 c1 Z; }* l9 @McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,8 G7 q6 b  B$ q  }: v9 _
MCASP_TX_MODE_DMA);
/* Configure the frame sync. I2S shall work in TDM format with 2 slots */
' }6 W! E9 j. o& X: p" oMcASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_RX_FS_WIDTH_WORD, # u& b1 _3 V7 E/ @2 B
MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);$ \0 N% b. `& o  O' `& I& w
McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 2, MCASP_TX_FS_WIDTH_WORD, 9 B1 _- z( z5 }
MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);
/* configure the clock for receiver */3 z0 a- P/ l3 [3 {* `
McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);
* X0 P6 C' _. s2 E4 ^+ pMcASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);
* M( M( E# Y9 fMcASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,4 e. Z5 }( k6 N7 i% p
0x00, 0xFF);
/* configure the clock for transmitter */
, i6 T, G6 z, r4 I/ o6 G( s$ R2 sMcASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL, 11, 1);2 W0 M( W+ y5 G4 u8 p
McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
/ Y9 k( t) ]: R% |% M" X1 V  ]McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
$ s2 E- `. N  ]0x00, 0xFF);
, W, n1 K+ q: K
2 d; L/ I. J9 h2 ^4 M/* Enable synchronization of RX and TX sections */ 9 B% ~, y7 o2 T7 l
McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);
/* Enable the transmitter/receiver slots. I2S uses 2 slots */
# E/ o: l) P2 r2 R6 L+ Q% lMcASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
) Q# A" f0 f9 b2 o8 E9 `1 h) mMcASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
/*+ `9 T# Q2 X; s' |- J
** Set the serializers, Currently only one serializer is set as
# ]7 c! C% s1 \, ~, k. W** transmitter and one serializer as receiver.
8 b. i0 O  ]% e- w1 M*/7 R$ ^# {1 L$ @! C. r, b
McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX);2 z! r& S  K8 P( {
McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX);
/*; U) d% e2 b7 J% Q, U
** Configure the McASP pins 5 A/ J5 ~; Z* U2 r) {
** Input - Frame Sync, Clock and Serializer Rx
8 H3 i* y' v/ f1 c* N** Output - Serializer Tx is connected to the input of the codec : J- |" ]+ C8 u2 O, i0 [) u: A
*/
" _  d4 t+ g5 R8 \McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);
3 z- i8 m( u' wMcASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS,MCASP_PIN_AXR(MCASP_XSER_TX));$ Z" v. E, _) ]5 y
McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSX
' U3 ^  _. i  h3 L8 d| MCASP_PIN_ACLKX
$ e" m) ^5 {( {  M1 U| MCASP_PIN_AHCLKX
! S( {5 k& `8 t+ \0 D4 T; I; m" f| MCASP_PIN_AXR(MCASP_XSER_RX));
/* Enable error interrupts for McASP */: A* ?" m  C5 _; U, z
McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR 7 e6 I, @7 B, F) b$ D
| MCASP_TX_CLKFAIL $ S1 j8 ^+ |; M, F1 |
| MCASP_TX_SYNCERROR: Y+ V( V' M7 ]# u
| MCASP_TX_UNDERRUN);
McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
3 A" M% u' W$ p$ N9 h| MCASP_RX_CLKFAIL
4 ]# F$ `* `6 S& ~| MCASP_RX_SYNCERROR 2 Y3 o6 `3 D4 M* Y8 K
| MCASP_RX_OVERRUN);
# l, c) G7 V, g+ n2 u}
static void I2SDataTxRxActivate(void)
% \, F' U8 R: C- T. a' P{
" ~3 ~7 W/ Q1 C3 z+ ?3 W' \/* Start the clocks */
* H9 k! Z: P. X9 i+ WMcASPRxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL);
9 D$ ?/ \5 k9 Y* d- q: JMcASPTxClkStart(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_INTERNAL);
/* Enable EDMA for the transfer */
( u# i: W  c) F; t( s" Q3 tEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_CHA_MCASP0_RX,4 s; I3 C! u* V
EDMA3_TRIG_MODE_EVENT);
0 G9 H) p! ?$ y' D7 N( BEDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, ) Z2 Q5 k9 a) O; g) h+ p2 k- C
EDMA3_CHA_MCASP0_TX, EDMA3_TRIG_MODE_EVENT);
/* Activate the serializers */
8 q: q+ S5 t; ^/ `3 EMcASPRxSerActivate(SOC_MCASP_0_CTRL_REGS);
! a. m2 B( w+ X& u( \$ O1 L6 D" EMcASPTxSerActivate(SOC_MCASP_0_CTRL_REGS);
/* make sure that the XDATA bit is cleared to zero */
3 C5 P9 z# W& B* x* [while(McASPTxStatusGet(SOC_MCASP_0_CTRL_REGS) & MCASP_TX_STAT_DATAREADY);
/* Activate the state machines */
/ t4 a5 Q, x- n4 F7 FMcASPRxEnable(SOC_MCASP_0_CTRL_REGS);) Q% ?1 }2 G6 z5 ^; k8 b
McASPTxEnable(SOC_MCASP_0_CTRL_REGS);
; e, F. B/ C. A8 O" ], ^) l}

4 u1 b, L- G' A+ o# m
请问:问题出在哪了,时钟按照这样配是否有错。
另外我看XDATA一直是0,接收的rxbuf0,1,2里有一般全是FFFF一半全是0.

# U$ \' w/ R4 O* L' v( ?8 ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-25 16:32 , Processed in 0.046243 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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