完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
上面是关于SPORT中的chained DMA的Chain Pointer Register的使用说明。但是在ADI提供例程中却没有将地址分离开来就赋值入寄存器了,具体见下面例程
对于这个问题感到很困惑,文档中写的跟例程中不一样,所以不知道各位有没有配置chained DMA的经验讨论一下。其实例程也不稳定,有时会出不来声音,或者是声音失真,出现噪音等问题。 |
||
相关推荐
8个回答
|
||
For the new SPORT external memory functionality, when writing
tests which involve the PCI bit, the external memory address should be split before writing to the chain pointer register. 启斌 梁 撰写: |
||
|
||
superwh0103 发表于 2018-12-10 14:17 你好! 下面的代码 rcv1a_tcb[4] = *pCPSP1A = ((int) rcv1a_tcb + 7) & 0x7FFFF | (1<<19); 与上一个0x7FFFF,就是把地址分开来,取低19位,然后把PCI置在19位上。 例程应该没有问题的,你需要检查一下跳线是否正确? |
|
|
|
但是如果地址超过 0x7FFFF的话那么高位不是就会被清零了?我用仿真进入到配置的这几条语句里面查看地址发现其实地址是会超过 0x7FFFF这个值的哦。 |
|
|
|
superwh0103 发表于 2018-12-10 14:49 你好! 一般的外设的DMA的chain point 寄存器,他指向的DMA的配置都是放在片上的,片上是5Mbit的空间用19bit的地址空间内的,具体你可以参看我们的 data sheet中关于片上memory的地址空间,如果是这样的情况下chain point 寄存器,内容如下 18–0 :IIx address Next chain pointer address 19 :PCI Program controlled interrupt 具体你可以参看HRM中table3-11。 SPORT而言,手册有这样的描述 For the new SPORT external memory functionality, when writing tests which involve the PCI bit, the external memory address should be split before writing to the chain pointer register. Bit Name Description 18–0 IIx address Next chain pointer address (bits 18–0 of the chain pointer) 19 PCI Program controlled interrupt 28–20 IIx address Next chain pointer (external address, bits 27–19 of the chain pointer) 具体你可以参看HRM table 3-12 |
|
|
|
海蜇pi 发表于 2018-12-10 15:01 你好! 你说的5Mbit的空间没有超过19bit这个是不是有争议呢?19bit最大不是就是0x7FFFF吗?而我从21489的datasheet上看Table 4. Internal Memory Space 里面最高的片内地址是去到 Block 3 SRAM 0x001C 0000–0x001C FFFF 这样不就超过19位了吗?还是我有什么地方理解错了? |
|
|
|
superwh0103 发表于 2018-12-10 15:12 你好! 首先所有的中断配置数据是放在internal memory的normal word-32bit的空间的,这个空间的SRAM的地址范围是在20位以内的 同时手册里面也描述到 The chain pointer registers, described inTable 3-10, Table 3-11 (generic), Table 3-12 (SPORTs), Table 3-13 (external port) and Table 3-14 (FFT) are 20 bits wide. The lower 19 bits are the memory address field. Like other I/O processor address registers, the chain pointer register’s value is offset to match the starting address of the processor’s internal memory before it is used by the I/O processor. On the SHARC processor, this offset value is 0x80000. |
|
|
|
海蜇pi 发表于 2018-12-10 15:22 这样,明白了,当初也看到这一段,不过又看了后面一段 All addresses in the index registers are offset by a value matching the processor’s first internal normal word addressed RAM location, before the I/O processor uses the addresses. For the ADSP-214xx processors, this offset value is 0x0008 0000. This internal memory offset is not applicable for the index register 然后把index register和chained register记反了。以为chained register也没有offset,但是你说的“所有的中断配置数据是放在internal memory的normal word-32bit的空间”这个程序里面似乎没有对那几个TCB数组的地址做指定,只是直接定义为全局变量数组而已。 |
|
|
|
您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!
|
|
|
|
只有小组成员才能发言,加入小组>>
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1268 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1869 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4219 浏览 2 评论
8967 浏览 1 评论
3117 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1378浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1627浏览 2评论
1579浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1268浏览 2评论
1368浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 04:37 , Processed in 0.969413 second(s), Total 92, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号