完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,所有,我正在与一个自定义板的特点是PIC32 MX795F512L。它是一个板的替代,是基于一个8085使用8257 DMA控制器来交换数据与8086的基础板在下一个插槽在背板上一个16位复用地址和数据总线。这是通过使用保持信号来停止相邻卡上的处理器,而我们的板读或写消息到特定区域的存储器。我们选择了PIC32,因为它有一个内部DMA,795的L变型有所有的引脚通过PMP来访问一个16位总线。电路板已经被设计,并且我已经编写了一些测试代码来确保它全部工作。我在PMP端口上使用地址自动增量设置遇到了一个问题,在MPIDE中编写了一个简短的测试草图来设置PMP,然后在另一个卡上写入和读取内存。PMP是用16位复用数据和地址BU在主模式1上建立的。16位数据模式和地址自动增量被禁用。我的测试草图中的代码概要如下:设置2个10字的uint16数组(源和目的地)用值0-9填充源,使处理器在另一个卡上(通过输出引脚)将数据从源数组写入到另一个ca中使用PMPMasterWriteWordBlock的RD内存使用PMPMasterReadBlockPrint将数据从其他卡的内存读回目标数组,使用PMPMasterRead将数据从目标数组打印出来,一次直接从其他卡的内存1字中打印出值(递增每次循环时地址是2)释放HOLD行。源数组中的值是:我在目标数组中看到的值(使用PMPMasterWriteWordBlock写到另一个板,使用PMPMasterReadWordBlock读回):当我直接使用P读取内存时看到的值MPMasterRead和手动将地址增加2是:(另一块板将此内存块初始化为零)。我理解PMP块字读写库函数临时启用PMP地址自动增加功能,以提高效率。在我看来,当PMP被设置为使用16位多路复用加法器和数据总线模式时,它期望正在写入的设备上的地址以字为单位递增,即,如果写入16位字,则在每次操作之后将地址递增1,而不是2。不幸的是,即使8086是16位处理器,它仍然使用面向字节的寻址。这是我必须接受的PMP接口的一个特性吗(即,忽略PMP库函数,并使用我自己的读写函数,每次都使地址增加一倍)在PMP设置中,我使用这个问题?此外,这会对DMA传输产生和我假设通过PMP进行DMA还需要启用地址自动增量相同的影响吗?
|
|
相关推荐
1个回答
|
|
从数据表:“13.3.1.7 AUTO-INCRE./DECRE.”可以看出,当PMP模块在主模式之一中运行时,INCM<1:0>位(PMMODE<12:11>)控制地址值的行为。在每次读写操作完成之后,PMADDR寄存器中的地址可以自动递增或递减1,而不管传输数据宽度如何,并且BUSY位(PMMODE<15>)变为“0”。
|
|
|
|
只有小组成员才能发言,加入小组>>
5160 浏览 9 评论
1998 浏览 8 评论
1927 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3170 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2225 浏览 5 评论
727浏览 1评论
612浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
501浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
626浏览 0评论
524浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:02 , Processed in 1.179869 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号