This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好
我们的应用使用2.8069万通过SPI控制打印头@12MHz。 工作很好,但现在我们需要7个SPI @12MHz。 只是没有时间使用单个SPI发送所有数据,只是想知道使用CLA是否可能做到这一点。 也许将PWM设置为12MHz以触发CLA,这会在每个周期修改PWM信号以模拟SPI? CLA和主CPU确实并行运行,对吗?
如果使用FPGA,这将非常简单,但2.8069万对我们正在做的一切都非常好,所以我们想来看看。
有什么想法?
您好,Stewart,
要在该芯片上获得7个SPI是很困难的。 尝试模拟SPI将会产生大量开销。 我假设您已经在芯片上使用了这两个SPI。 确保您也使用具有SPI模式的McBSP。 剩下4个要模仿。
我的第一个想法是,使用其他串行通信复制数据会更容易,但如果您能够在每个PWM周期维修PWM,那么它应该是可以执行的。 您还需要规划一种在传输完成后停止PWM的方法。 这是另一个串行通信有益的地方。
此致,
克里斯
您好,Stewart,
两个注释:
如果F2807x的CLA不能直接访问GPIO数据寄存器,则F2807x具有此功能。 这可能会使您希望的实现变得可行,仅使用CLA和GPxDAT寄存器的位击功能。
如果尝试同步多个SPI/McBSP,我建议将一个外围设备配置为主设备,并将其他外围设备配置为从属设备。 我相信这将允许所有内容同步-当你想让每个人都发送时,只需向主控制器写入数据。
谢谢!
Brett
Brett
我还没有试过McBSP,因为我是在Matlab/embedded coder中做这件事,而且他们不支持McBSP模块。 但是我尝试了你们的建议,把SPIA当主人,把尖顶当奴隶,它把时钟连接在一起。 我每个字加载了8个字,当主(SPIA)发送时,从属(spb)开始发送时 ,它们完全同步,仅关闭3个时钟周期,或关闭约37纳秒。
但在12 MHz时,SPI时钟看起来很可怕……各种振铃,几乎没有一个方波。 数据只是稍微好一点,我必须达到20MHz。
您好,Stewart,
从内存中,内部上拉状态可能会对输出质量(GPxPUD)产生一些影响。 我认为禁用内部拉拔通常更好(这在逻辑上也是有意义的)。
另请注意,信号质量将随负载而变化-特别是根据数据表,您接近GPIO可输出的最大频率。
谢谢!
Brett