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.
Ashraf、
我将需要几天的时间来咨询 MW 团队有关上述内容的意见、尤其是关于对 SPI 进行分区以读取外部 ADC 的正确方法。
我可以评论与采样率相关的错误、我假设 MW 允许您为此输入一个免费的表单编号。 但是、SPI 将脱离主 CPU 时钟(200MHz)计时、并具有相关的预分频器等、因此您的采样率最终需要是其的整数。 我需要挖掘公式来得出这种轻松的结果。
我还需要从 MW 团队中更好地了解阻塞模式的确切作用。
最棒的
Matthew
您好 MatthewRate、
感谢您的回复、我正在等待您的回答
我只想再添加一些注释
1) 1)我能够使用我的模型读取5个外部 ADC。 在型号上稍微更改一下后、"内存不足..." 错误消失(请参阅图1)。 在图1中、使用了4个外部 ADC。
2)实际上,我需要运行整个系统(3个 ADC 引脚读取3个 ADC 值,Matlab 函数写入我的算法,SPI_C (仅使用1个 GPIO)发送一些值,SPI_A (使用5个 GPIO)读取5个外部 ADC),具有0.00013。 请注意、SPI_C 从"Matlab 函数"块获取其输入值、因此我在"Matlab 函数"块中设置其采样时间。 SPI_A 采用特定的值来确定我们每次需要读取哪个 ADC 通道、因此、我在"常量"块和"SPI_A 接收块"中设置其采样时间。 通过使用 SPI_A 和 SPI_B (6 GPIO)、占空比(或采样时间)(使用示波器测量)会大幅降低(大约800us)。 因此、我尝试通过使用 SPI 的"所需波特率"来提高占空比值。 我注意到、当我减小"所需波特率"值时、占空比会变得更好(接近我所需的时间0.00013)、但当它大幅减小时、从外部 ADC 读取的数据的误差百分比会变得非常高、请参阅图2和图3、 占空比从420us 降低到317us、但仍然不是我所需要的(请注意、我将所有 Simulink 块内的采样时间增加到了0.00001、从而使 Simulink 模型缓慢工作)。
我的主要关注点是将图2和图3中的占空比设为0.00013 (130us)。
3)在"Clocking"选项中、我认为当我将"振荡器时钟频率(OSCCLK)的值从10降低到8时、占空比会更好、但我得到了以下误差
"执行外部模式 MEX 文件'ext_comm'时出错:
无法连接到目标。 等待目标的连接响应时发生超时。 超时的可能原因:
a)目标未开启。
b)目标未连接到您的主机。
c)模型的应用程序未在目标上运行。 您可能已单击"停止"按钮。 如果“Run (运行)”按钮未变暗,请单击它。 否则、请单击"构建"按钮、该按钮会在目标上下载并运行您的应用程序。"
非常感谢
Ashraf、
查看您计划执行的任务、可能很难在130us 内完成。
我建议您计算读取8个通道(1个 ADC)所需的时间,并查看所需的时间。
请参阅以下链接、使用自定义代码块测量代码执行时间:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/943879
上面计算的时间有助于确定在当前设计的130us 内读取5个 ADC 是否可行。
如果您认为需要任何支持、最好联系我们的支持渠道。 当我们收到支持请求时、我们的内部流程使我们能够让合适的人员参与解决此问题、我们将立即与您联系、以便更详细地了解案例。
请通过以下地址联系我们:
https://www.mathworks.com/support.html
此致、
RAM ALA。