本人正在使用‘542的BUFFER串口,手册上只有2K BUFFER内的地址设置, 不知道这2K BUFFER是否可以在程序存贮区中任意指定?请赐教。 | |
![](http://www.dspsolution.com/image/f_smile.gif) |
’54X的BPS的ARR和AXR都是11位,其基地址可以查看相应DSP的DATA SHEET。 例如:‘542占用0800H-0FFFH,C548占用0800H-0FFFH以及1800H-1FFFH | |
|
![](http://www.dspsolution.com/image/f_question.gif) |
一般DSP串口的工作频率能不能达到其CPU的工作频率? 比如,40M的DSP,它的串口能接40M b/s的数据流吗? | |
![](http://www.dspsolution.com/image/f_smile.gif) |
我用5402时,用内部的时钟作为串行时钟输出,我测得的频率达到100MHZ, 但我并没有这样用过,我用的是外部的时钟,接ST-BUS,较慢。 | |
![](http://www.dspsolution.com/image/f_smile.gif) |
不可能。 串口速度由其时钟决定
公式:
f(pulse mode)=f(timer clock)/period register f(clock mode)=f/(2*period register)
如果是内部时钟 f(max timer clock)=f(H1)/2 如果是外部时钟 f(max timer clock)=f(H1)/2.6
注意: f(H1)并不是C3x外接的时钟频率,而是C3x的内部分频后的,c3x好象是二分频 | |
|
![](http://www.dspsolution.com/image/f_question.gif) |
mcbsp的个寄存器的sub address是什么意思?比如RCR10的地址是39H,SUB ADDRESS是02,是说地址是3902H呢?还是说把0002写到0038H,SPSA0,则0039H的SPSD0对应的就是RCR10的值,还请大虾指教! | |
![](http://www.dspsolution.com/image/f_smile.gif) |
应该是先把把0002写到0038H(SPSA0),则0039H的SPSD0对应的就是RCR10的值, | |
|
![](http://www.dspsolution.com/image/f_question.gif) |
449 5402的mcbsp能否通过232与主机通讯? | |
![](http://www.dspsolution.com/image/f_smile.gif) |
我的理解(没试过,不一定对)是不需加什么板卡,但好像得有电平转换吧?MCBSP可以模拟异步232串口,在这份文档里有:spra661 | |
|
![](http://www.dspsolution.com/image/f_question.gif) |
下述寄存器的初值k_spcr1_rs, k_spcr2_rs, K_RCR1, K_RCR2, K_XCR1, K_XCR2, K_PCR, K_SRGRX1, K_SRGRX2具体为何值? 串口初始化完成后,如何发送,接收数据,如何触发中断?具体给出一段例程.谢谢! | |
![](http://www.dspsolution.com/image/f_smile.gif) |
根据具体要求确定串口那些寄存器的值。比如:时钟和帧信号是进还是出,信号的极性, 数据格式是多帧方式还是自动缓冲方式,等等。其中的#K_SPRC_RS是一个值,该值中的某个bit位对应SPRC寄存器的复位位,通常在初始化时要先复位,再修改。对于中断,可考虑直接触发中断,但更常见的是用MCBSP口产生的事件去触发DMA,再由DMA去触发中断。 | |