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.

[参考译文] TMS320F2.8069万:TMS320F2.8069万

Guru**** 2030840 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/572480/tms320f28069-tms320f28069

部件号:TMS320F2.8069万

你好

我们的应用使用2.8069万通过SPI控制打印头@12MHz。  工作很好,但现在我们需要7个SPI @12MHz。  只是没有时间使用单个SPI发送所有数据,只是想知道使用CLA是否可能做到这一点。  也许将PWM设置为12MHz以触发CLA,这会在每个周期修改PWM信号以模拟SPI?  CLA和主CPU确实并行运行,对吗?

如果使用FPGA,这将非常简单,但2.8069万对我们正在做的一切都非常好,所以我们想来看看。

有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Stewart,

    [报价用户="Stewart Prince]可能设置一个12 MHz的PWM以触发CLA,这会在每个周期修改PWM信号以模拟SPI? [/引述]

    我不确定您是否能够使用ePWM模块模拟SPI。 我已经尝试 通过GPIO使用位冲击方法模拟SPI。 类似如下的内容:

    Stewart Prince 说:
    CLA和主CPU确实并行运行,对吗?

    当然是的!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Stewart,

    要在该芯片上获得7个SPI是很困难的。  尝试模拟SPI将会产生大量开销。  我假设您已经在芯片上使用了这两个SPI。  确保您也使用具有SPI模式的McBSP。  剩下4个要模仿。

    我的第一个想法是,使用其他串行通信复制数据会更容易,但如果您能够在每个PWM周期维修PWM,那么它应该是可以执行的。  您还需要规划一种在传输完成后停止PWM的方法。  这是另一个串行通信有益的地方。

    此致,

    克里斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有正确描述计时。 它是1个时钟信号和7个串行数据线,一个闩锁和一个频闪灯。 所有数据行共享同一时钟,没有从打印头返回数据。

    每个打印头(并行7个打印头)需要96位。 发送时钟数据位,然后发送锁存和频闪灯。

    目前,我正在使用一个12 MHz的SPI并发送6个16位字,工作正常,正如预期的那样。

    但是现在,要并行控制7个时钟数据信号,它看起来唯一的方法就是位操作。 实际上,最好的方法是一次将一个字节写入GPIO。 但是2.8069万上的CLA不能直接写入GPIO,而且没有真正的方法可以将字节写入端口,只能使用SET和CLEAR进行位操作。 另外,在90 MHz时,只有7个时钟周期,我需要再次中断CLA以执行下一个任务。

    如果我在8051上执行此操作,我会设置一个12MHz的PWM,然后每次中断都会将一个字节的数据移动到数据/地址端口,就像并行数据写入内存一样。 但在这里,无法在1个时钟周期内将整个字节的数据移动到端口,7位写入需要7个周期。 我没有时间,即使在CLA,也没有时间做任何其他事情,比如为频闪灯,LATCH设置PWM。

    我认为这是不可能的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Stewart,

    您能否向我们展示您希望完成的任务的图表或波形? 我认为这可能有助于澄清目标。

    我同意GPIO是PWM更好的解决方案。 您可能可以使用GPADAT.ALL写入来执行所需操作,但这必须通过C28x完成。 我记得在使用该路线时必须采取一些预防措施。 我会看看是否可以追踪它们。

    此致,
    克里斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然。 下面是单个打印头的时序图,其中7个与1个时钟源并联。
    但是,由于我似乎无法将图形插入此回复框,请参阅以下位置的打印说明:

    global.kyocera.com/.../controlling.html

    BTW,感谢您的帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Stewart,

    谢谢-仅供澄清。 您是否希望使用CLA和PWM,因为C28x没有足够的MIPS来处理SPI仿真(它正忙于运行应用程序)?

    此致,
    克里斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确。 进行CLA的唯一原因是要模拟7个SPI。 现在我意识到这是不可能的,我将转到2807x,它有3 SPI和2 McBSP,并尝试使用一个时钟来协调它们。 打印头也有5通道版本。

    处理器的其余部分正忙于与PC通信并控制4个电机。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,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