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.

[参考译文] tm4c129encpdt:QSSI:保持 SSInFss 为低电平以实现连续24位传输

Guru**** 2465890 points
Other Parts Discussed in Thread: TM4C1294NCPDT, TM4C129ENCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/663485/tm4c129encpdt-qssi-hold-ssinfss-low-for-continuous-24-bit-transfer

器件型号:TM4C129ENCPDT
主题中讨论的其他器件:TM4C1294NCPDT

使用 SPO = 0和 SPH = 0时的飞思卡尔 SPI 格式、我需要传输24位数据、并使 SSInFss 在所有24位都连续置为低电平。

数据表似乎包含一个矛盾。

第20.3.4节"SSInFSS 功能"规定:

"对于飞思卡尔格式、当 SPH = 0时、SSInFss 信号在连续传输之间置位低电平。 如果 SPH = 1、则 SSInFss 信号在连续传输之间失效(高电平)。'

但第20.3.7.3节"SPO = 0和 SPH = 0时的飞思卡尔 SPI 帧格式"规定:

"但是、在连续背靠背传输的情况下、SSInFss 信号必须在每次数据字传输之间输出高电平、因为从机选择引脚会冻结串行外设寄存器中的数据、如果 SPH 位清零、则不允许对其进行更改。 因此、主器件必须在每次数据传输之间将从器件的 SSInFss 管脚拉高、以使能串行外设数据写入。 在连续传输完成后、SSInFss 管脚在捕获到最后一位后的一个 SSInClk 周期返回到其空闲状态。"

哪一项是正确的? 如何使 SSInFSS 在整个24位传输中保持低电平?

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

    同意您在 MCU 手册中对(明显)冲突的评估。 技术写作人员  的描述中似乎有点"不清楚"。

    我可以报告、这里有几个这样24位 SPI 传输的"成功"、但如果存储器提供服务、在大多数"全部"情况下、FSS 功能是手动控制的!   (即未使用专用 SPInFSS 引脚-而是使用一个简单的 GPIO 来执行 FSS 功能。)

    实际上、这"打破了(自动) SPI 传输目标"、但"完成 SPI 24位传输任务"。    您对论坛搜索功能关键字"16-24位 SPI"的使用应会产生多个"命中次数"。

     是否可以通过订购24位 SPI 传输并观察 SPInFSS 引脚的行为来收集"快速/脏污的手动说明"?   (在 SPI 配置为"自动"FSSn 模式时...)

    我不认为 (两种)"quad or Bi" SPI 传输出现在" 过去的论坛搜索结果"中。   (我的意思是、"24 位 SPI 传输"(如此处所述)最有可能描述"单位传输"-而不是"双或四"位传输...)

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

    感谢您的意见。

    我可以将 SS 线路"手动"切换为 GPIO。 这消除了我所希望的"发射后不管" SPI 传输、这是烦人的、但不是世界的尽头。

    但是...

    这似乎是一个更大的问题。 我们要与之通信的部件是 MAX11100 SPI ADC。 它使用 SPI 时钟信号来计时其采集和转换过程、并移出产生的位。 我在其数据表中向您介绍了以下声明:“频率、占空比或时钟信号形状的其他方面的变化会导致失调电压的变化。” 因此、我们需要一个非常好的时钟。 遗憾的是、查看示波器上的时钟信号、我可以告诉您、在每个8位传输结束时、一个时钟脉冲被拉伸。 这将导致不可接受的性能。 我必须确保我们获得一个适合所有24位的良好时钟。

    根据本论坛中各篇文章的信息、假如发送帧结束后 Tx FIFO 中还有额外的数据、SSI 外设应继续作为连续的背靠背传输进行传输; 此外、如果代码填充 Tx FIFO 的速度不够快、因此一个数据字在下一个数据字出现在 Tx FIFO 中之前完全移出、这将导致传输结束、然后开始新的传输。

    我们可以通过手动解决 SS 问题、但我们无法实现时钟拉伸。 我们寻找了一种方法来禁用发送器并填充 Tx FIFO、然后启用发送器、但该外设似乎不支持此类操作。 因此、我们决定尝试使用 DMA、看看突发传输是否足够快地到达 Tx FIFO。

    如果不起作用... 嗯、让我们希望它能够工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    乌什-魔鬼真的在你新提供的细节中深深地闪着。 因为 Max Chip 供应商"施加了这样的限制"-有一个疑问、"他们如何建议无电用户?"

    您不能成为"唯一的"攻击此问题的人-该公司的 FAE 似乎是最有价值的目的地。

    您是否可以澄清主题行中出现的"QSSI"的用法。   是您的"双通道或四通道"SPI 传输-我的感觉是否定的。

    祝您好运-我从未遇到过这样(奇怪的)要求使用设备的情况...

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

    [引用 USER="CB1_MOBILE"]

    乌什-魔鬼真的在你新提供的细节中深深地闪着。 因为 Max Chip 供应商"施加了这样的限制"-有一个疑问、"他们如何建议无电用户?"

    您不能成为"唯一的"攻击此问题的人-该公司的 FAE 似乎是最有价值的目的地。

    您是否可以澄清主题行中出现的"QSSI"的用法。   是您的"双通道或四通道"SPI 传输-我的感觉是否定的。

    祝您好运-我从未遇到过这样(奇怪的)要求使用设备的情况...

    [/报价]

    也许我应该先提到这些细节。 但我不是因为我不想用大量多余的细节来把事情都混在一起--当时我不知道时钟拉伸会在第9位和第18位发生。

    要回答您的问题:我们在传统模式、Freescale SPI 模式、主模式、不带高级/双/四通道模式下使用 SSI 外设。 我在主题行中使用 QSSI 的唯一原因是与数据表中为该外设指定的名称相匹配。

    如果我们能够获得正确的波形、也许我们需要使用高级模式。 我已经在数据表中阅读了很多细节、以至于我的头正在旋转、但我似乎还记得我们使用了传统模式、因为 Advanced 不会为此目的提供正确的波形。

    DMA 没有帮助。 我本来希望(根据我在论坛其他地方看到的内容)使用 DMA 突发传输 比外设解压更快地填充 Tx FIFO、这可能会改善这种情况。 但看看我们得到的波形。 这些是带有 DMA 的-但是它看起来与没有 DMA 的情况完全一样:

    SSI3Fss:

    更重要的是、这就是最重要的 SSI3Clk 信号的样子:

    请注意那些拉伸的第9个和第18个时钟。 这没用。

    作为一个能够从语法课程中获益的好朋友、经常说"它不起作用"。

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

    我继续认为、"SPI 芯片供应商"肯定会在这个问题上具有"更丰富的经验"、这是一项可能的资产。

    由于您正受到 MCU SPI 的"困扰"(很明显)(字节后"重新分组")-可能很简单、"位拆裂"会启用更一致的"数据计时"。 (然后、您可以控制数据速率-并且可能(大大减少)任何"扩展时钟"。)

    另一个诊断项目值得考虑-是否所有示波器都是"盲点 SPI 传输?"的结果    您不希望(但不太可能)从"云化"我们的分析中发现任何"外部因素"。。   (虽然 SPI 不是 I2C (通常会发生时钟拉伸)、但潜在地启用任何混乱的外部干扰是毫无意义的...)

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

    是的、数据表在该部分中措辞不好、我注意到了这种不一致性、因为我同意它的编写不好。

    现在、关于您的问题、可以尝试回答一些问题并提供帮助...

    如果您使用 GPIO 作为 SS 线路、则 SPI 时钟是否仍然存在间隙?
    差距有多大?
    您的 SPI 时钟速度与 CPU 速度之间的关系是什么?
    您是否在发送前尝试将所有24位加载到 FIFO 中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ralph、

    我们喜欢您的逻辑来指导、"在 SPI 传输之前预加载所有24位"。   也就是说、iirc "Bob"也提出了类似的建议(在另一个 SPI 帖子中)、并且仍然出现了"不需要的扩展时钟脉冲"、就像这里所说的...

    由于"位拆裂"是非常"机械"的-一种方法"确保正常工作"将采用"外部24位值、"并行输入-串行输出"移位寄存器。"    这里的关键是24个数据位的独立"加载"之后是"高度一致的 MCU 定时器输出"、 非常适合(要求过高)外部器件!    (MCU 到目前为止还没有!)  

    移位寄存器被放置在级联中-简化了设计。   (公司/我已经通过 FPGA 完成了"仅此"操作、已编程以实现64位移位器。)

    虽然"亵渎"(此处)-"独立 MCU "并不总是被视为"最佳方法"。    有时、" MCU 与"专用器件的结合"-提供最佳(即使是唯一的)解决方案...

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

    是的、我真的怀疑这种情况仍会发生、但根据对扩展脉冲的耐受度、我只是在寻找想法、帮助我们的朋友、如果他想要避免咬人。 我在 Amit 的另一篇文章中发现、该帖子指出差距的大小部分是由于 SPI 与系统时钟速度的关系、因此除了其他问题之外、这也是该问题的产生原因。 我曾想过、可以缩小足够大的间隙、使其适用于从器件。

    不过、我当然同意位拆裂最终会起作用、如果无法通过按摩外围设备来达到预期的效果、那么这需要成为首选解决方案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ralph、

    谢谢您-我们应该注意到、"SPI"引起的"吸引力"很大、是由于推定的"时钟串行数据(包括输入和输出)的易用性和稳健性"、并且 SPI 时钟上强制使用"严格且保持的频率"是罕见的(几乎从来没有)!    该时钟的目的是 "避开"魔鬼、"时序需求"-异步传输所需...  (RS232/485等)

    外部器件供应商"打破新的和不需要的接地"-在这种对 MCU (否则)高性能 SPI 外设模块的新需求中。    (请注意 CB1 (有时)被归类为 "高/中等功能"、但仅当"发现/服用药丸..."时)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ralph、您提出了一个非常有趣的问题:您问我在传输前是否尝试将所有24位加载到 FIFO 中。 我想完全做到这一点! 问题是、如何?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到 Amit 的一篇帖子、建议在发送完一个字后、如果 Tx FIFO 中有额外的数据、则下一个字将作为连续传输的一部分进行传输; 但是、如果 Tx FIFO 为空、则事务结束、SS 变为高电平等、导致我在上面的示波器照片中显示的 SS 和 CLK 现象。 好的、我想暂停发送器、填充 Tx FIFO、然后取消暂停发送器-希望得到所需的波形! 如果您知道如何做到这一点、请给我启迪!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    要回答 Ralph 的问题:

    系统时钟为120MHz。 SPI 时钟为4MHz。

    为了解决 SS 问题、我们切换到使用该引脚作为 GPIO、而不是让外设控制 SS。 SPI 时钟仍然每8位有间隔。 在4MHz 时、CLK 周期时间应为250ns、示波器显示完全是这样;然而、在两个间隙处、它更像是1us。

    我认为代码加载 Tx FIFO 的速度可能不够快、因此我在突发传输中实现了 DMA。 输出波形看起来完全相同。 不变。 由于24位(3个字节)小于一个完全突发传输(4个字节)、我尝试使用 DMA 加载4个字节。 这没有什么不同(除了现在我们发送的是32位、存在所有相同的问题)。

    代码:

    静态 uint8_t DummyByte = 0xff;
    静态 uint8_t Read[3];
    
    
    静态内联空 AssertChipSelect (void){MAP_GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0);}
    静态内联空 DeassertChipSelect (void){MAP_GPIOPinWrite (GPIO_PORTF_BASE
    
    
    
    
    
    
    )、GPIO_PIN_GPIO2_GPIOSDTRIP、GPIO_P100_INSDK_POINEST_GPIOST_IN_GPIOSDTRIP、GPIO_P32_INSDK_POIN_INEST_GPIOST_INSDTRIP_IN_IN_INEST_GPIOST_GPIOST_IN_INSDTRIP_IN_INESH}
    
    GPIO_PIN_TYPE_STD);
    
    //启动 SSI 外设
    MAP_SysCtlPeripheralDisable (SYSCTL_Periph_SSI3);
    MAP_SysCtlPeripheralReset (SYSCTL_Periph_SSI3);
    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_SSI3);
    while (MAP_SSIP_PIN_SSIP_PHIN3)
    
    
    
    
    
    
    
    
    / GPIO3*(配置 GPIO_PHIP_PHIP_PHIN_PHIL_PHIL_PHIL_PHIL_PHIL_PHIL_PHIL_PHIL_0)
    ;//将 GPIOPENTRIP_PIN_SSIP_PIN_SSIP_PIN_SSIP_PHIL_PHIL_PHIL_PHIL_PIN_PHILIN*引脚配置为 GPIP3 (针对 GPIO0*引脚/SSIP_PHIP_SSIP_PIN_PHIL_PIN_PHIL_PHIL_SSIP3);//配置 GPIOPENTRIP_PHIP_PHIP_PHIP_PHIP_PIN_PIN_PHIL_PIN_PHIP
    
    //为 SPI 主控模式
    MAP_SSIConfigSetExpClk (SSI3_base、Global. SysClockFreqHz、SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、4000000、 8);
    
    //启用 SSI 模块
    MAP_SSIEnable (SSI3_base);
    
    //在使用
    前确保 Rx FIFO 为空(MAP_SSIDataGetNonBlocking (SSI3_base、&DummyRead){
    }
    
    //将适当的 DMA 通道连接到选定的 SSI
    MAP_uDMAChannelMap (USSI3_base、&dma_durtage_dma
    
    
    )|
    属性14 (USSIq_durt_dma_dma_dma_durtag_dma_durt_dma_dr_dma);|禁用 UCC_uTR_dma_uTR_uTR_dma_r_uSDK_dma3r_uTR_uTS_uTR_uTR_uTR_uTR_uTR_uSDK_dma_uTR_dma_uTR_uTR_uTR_uTR_uSDK_dma_uTR_uTR_uTR_uTR_uTR
    
    //设置 Rx DMA 主控制结构:
    //-数据大小8位
    //-源地址不递增; 始终指向 SSI Rx 数据寄存
    器//-目标地址增量为8位
    //-仲裁大小为4以匹配 SSI Rx FIFO 触发阈
    值//-如果可能,DMA 将使用4帧突发传输来实现效率
    MAP_uDMAChannelControlSet (
    UDMA_CH14_SSI3RX | UDMA_PRI_SELECT、
    UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | UDMA_ARB_4
    );
    
    //确保不需要的 Tx 通道 DMA 属性为 MAP_uDMAChannelAttributeDisable
    (UDMA_CH15_SSI3TX、UDMA_ATTR_ALTSELECT | UDMA_TR_USTR_PRI/
    
    启用 UDMA_TR_TR_TR_USTR_TR_TR_TR/从
    高优先级传输到高优先级的 UDMA_RESTAM_TR/瞬时启用 UDMA_TR_TR_TR_TR_TR_TR_TR_TR_TR_TR_TR_TR_
    MAP_uDMAChannelAttributeEnable (UDMA_CH15_SSI3TX、UDMA_ATTR_USEBURST);
    
    //设置 Tx DMA 主控制结构:
    //-数据大小8位
    //-源地址不递增;我们始终发送相同的虚拟数据
    //-目标地址不递增; 始终指向 SSI Tx 数据寄存
    器//-仲裁大小为4以匹配 SSI Tx FIFO 触发阈值
    MAP_uDMAChannelControlSet (
    UDMA_CH15_SSI3TX | UDMA_PRI_SELECT、
    UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_NONE | UChipARC_4
    );
    
    
    
    
    =
    
    
    === 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 0 = 1
    
    
    //设置 Rx DMA 主控结构传输参数:
    //-模式设置为基本(不是乒乓)。
    //-源是 SSI 数据寄存器
    //-目标是接收存储器缓冲
    区//-传输大小设置为与缓冲区的大小匹配
    //
    map_uDMAChannelTransferSet (
    UDMA_CH14_SSI3RX | UDMA_PRI_SELECT、
    UDMA_MODE_BASIC、
    (void *)(SSI3_base + SSI_O、
    void
    3
    )、读取*(void *)
    
    //启用通道,因为它在每次传输完成
    时被禁用 map_uDMAChannelEnable (UDMA_CH14_SSI3RX);
    
    //在 SSI 侧启用 DMA
    MAP_SSIDMAEnable (SSI3_base、SSI_DMA_RX);
    
    
    //将 DMA 设置为写入3个字节
    //========================================================================================================1.
    
    //设置 Tx DMA 主控制结构传输参数:
    //-模式必须设置为基本(不是乒乓),因为外设正在发出请求。
    //-源发送存储器缓冲区
    //-目标为 SSI 数据寄存器
    //-传输大小设置为缓冲
    区 map_uDMAChannelTransferSet (
    UDMA_CH15_SSI3TX | UDMA_PRI_SELECT、
    UDMA_MODE_BASIC、
    (void *)&DummyByte、
    (void *)(SSI3_base + SSI3TX
    
    
    
    )、因为 UDMA_TRANSFORT_SDK_PRI_SELECT、UDR_BASIC 已禁用/ USDK_MODE_BASIC、(USDK_TO_PRIS
    3)通道完成);(USDK_TRANSFORT_SDK_TO_SDK_ENCH)
    
    //在 SSI 侧启用 DMA
    //告知 SSI 外设启用 DMA
    MAP_SSIDMAEnable (SSI3_base、SSI_DMA_TX);
    
    
    //等待 DMA 完成
    //===========================
    
    while (MAP_uDMAChannelModeGet (UDMA_CH14_SSI3RX | UDMA_PRI_SELECT)!= UDMA_MODE_STOP){
    }
    
    DeassertChipSelect ();
    
    返回((READ[1]& 0xff)<< 8)|(READ[2]& 0xff);
    }
    

    有什么建议?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    要回答 CB1关于 SPI 传输位拆裂的问题:我真的希望避免这种情况。 我能够使用其他 MCU 中的 MAX11100等器件、这些器件应该保持无名称、但可以进行32位 SPI 传输。 我从数据表中阅读并理解的所有内容(如果我完全理解任何内容)都告诉我、我应该能够获得我需要的一致的波形... 问题是、我的安装程序会阻止它成功工作吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="12ve12pm"]问题是,我的安装程序阻止它成功运行是什么?

    我"不确定"您是否确定了正确的问题!"    在这里没有(其他)-报告说有相同的"不合规" (答案是:他们有!) 因此他们不太可能采用" 您的设置!"    或者您"造成"此类问题!

    [引用 user="12ve12pm]"数据表告诉我、我应该能够获得我需要的一致的波形... [/报价]

    你在哪里看到它?   (我们不... 您是否"很可能"看到"轻松绘制/生成"重复计时-而不是"交错"@字节间隔?)

    正如我所写的(为了使其静音)、SPI 的"时钟数据"旨在证明比(旧的)异步方法更加稳健。   我不能忘记、(任何)严格一致性是"强制使用 SPI 时钟"(正常/习惯"设置/保持时间除外)。   您似乎没有向外部设备供应商提出挑战-他们肯定会遇到这种(相当提出的)问题、远远超过这些问题-在这里!

    就像您一样-我的公司使用(其他) ARM MCU -我们注意到、(一些)生产"您需要的常规输出时钟"、而其他公司则不需要!    (太棒了!)

    设法"规避"此类限制 (使用该外设和其他外设)-我的公司已将此类功能迁移到 PCB (FPGA)上的"选择性填充"器件、该器件提供了最有用的 "性能普及-增强各种 ARM MCU 的使用"、 简化并增强"向客户交付价值...    

    决定尝试、"淘汰"-这种"通常预期行为"(来自"耐受设备"(此处))-是"一条路线"-但我们怀疑这证明了"最佳路线..."   (交货时钟正在计时...)

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

    嗯、我可能已经把脚卡在我的嘴里了一点:事先加载 FIFO。 我已经尝试了各种措施、甚至就 DRM 而言也是如此(我们应该在 TivaWare 可用时避免使用这些措施!) 并且没有幸运地摆脱字节之间的恼人的周期。

    我只能通过尝试一些我后来发现的东西来获得某种程度的“sceed”(我说*非常松散*),这些东西不仅违反了 DS 规范,而且还应该使 TivaWare 尖叫错误出现在我身上... 为什么 MCU 不会自动退出、而是实际执行我错误地问的操作并不清楚、尽管它没有从最深的端出来、但如果有某种变通办法、我会思考这一事实。 明天我将深入挖掘、尝试跟随那微弱的细光、但我不敢相信我对那里真正可行的任何东西都犹豫不决。

    目前、我认为问题是寄存器 QSSI 控制0施加的限制因素、它将允许的最大 QSSI 数据大小设置为0xF -即16位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Ralph Jacobi]12时12分、

    嗯、我可能已经把脚卡在我的嘴里了一点:事先加载 FIFO。 我已经尝试了各种措施、甚至就 DRM 而言也是如此(我们应该在 TivaWare 可用时避免使用这些措施!) 并且没有幸运地摆脱字节之间的恼人的周期。

    我只能通过尝试一些我后来发现的东西来获得某种程度的“sceed”(我说*非常松散*),这些东西不仅违反了 DS 规范,而且还应该使 TivaWare 尖叫错误出现在我身上... 为什么 MCU 不会自动退出、而是实际执行我错误地问的操作并不清楚、尽管它没有从最深的端出来、但如果有某种变通办法、我会思考这一事实。 明天我将深入挖掘、尝试跟随那微弱的细光、但我不敢相信我对那里真正可行的任何东西都犹豫不决。

    目前、我认为问题是寄存器 QSSI 控制0施加的限制因素、它将允许的最大 QSSI 数据大小设置为0xF -即16位。

    [/报价]

    我非常感谢你在这一问题上的帮助。

    我将对您发现的不符合规格的内容感兴趣。

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

    [引用 USER="CB1_MOBILE"]

    正如我所写的(为了使其静音)、SPI 的"时钟数据"旨在证明比(旧的)异步方法更加稳健。   我不能忘记、(任何)严格一致性是"强制使用 SPI 时钟"(正常/习惯"设置/保持时间除外)。   您似乎没有向外部设备供应商提出挑战-他们肯定会遇到这种(相当提出的)问题、远远超过这些问题-在这里!

    [/报价]

    为此表示歉意。 这是无意的。 我将告诉您我发现了什么...

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

    crüe -(过于苛刻、"死机一致"、SPI 时钟3)的"行为人"是否确实听到了这个问题/投诉"并不十分清楚-比这里的"行为人"要频繁得多?

    拉尔夫已经做出了巨大的努力-但如果他必须诉诸"扭曲规则"-则不能/零地保证(任何)未来的进程将会使"魔法"继续下去!    那么呢?    (房卡-有人吗?)   

    我们有时会受到虚拟货币公司的参与、他们会指示我们"寻找此类规则条款"、并拒绝那些"游戏系统..."的人   (风险登记为"太高了!")

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

    [引用 USER="CB1_MOBILE"]

    crüe -(过于苛刻、"死机一致"、SPI 时钟3)的"行为人"是否确实听到了这个问题/投诉"并不十分清楚-比这里的"行为人"要频繁得多?

    拉尔夫已经做出了巨大的努力-但如果他必须诉诸"扭曲规则"-则不能/零地保证(任何)未来的进程将会使"魔法"继续下去!    那么呢?    (房卡-有人吗?)   

    我们有时会受到虚拟货币公司的参与、他们会指示我们"寻找此类规则条款"、并拒绝那些"游戏系统..."的人   (风险登记为"太高了!")

    [/报价]
    是的。 我们昨天与"犯罪者"联系,正在等待答复。 希望从"mott crüe "了解相关知识的人很快就会联系到我们。 我将告诉您我们学到的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    员工/我"渴望"这样的"热情"。 (这是一个很好的收获- 12平方...)
    我建议您"注意" Maxi's crüe í a 所提出的"异常要求"-强制使用 TM4C 的无电 SPI 时钟机制-
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我设法在 TM4C129XN 上的整个24位帧内保持 FSS 信号为低电平。 您的风险是 SSIAdvFrameHoldEnable()上的注释:“SSI 高级运行模式的可用性随使用的 Tiva 部件和 SSI 而变化。 请查阅使用中的器件的数据表、以确定是否提供此支持"

    我不知道要在数据表中查看什么。 您可以尝试我的代码。 如果它能正常工作,它就能正常工作!

    /*
    main.c
    */
    
    #include 
    #include 
    
    //propabaly 不需要其中的大多数包括
    #include 
    #include 
    #include 
    #include 
    
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    
    
    #include "inc/hw_gpio.h"
    #include "inc/hw_ints.h"
    #include "inc/hw_memmap.h"
    #include "inc/hw_sysctl.h"
    #include "inc/hw_types.h"
    #include "driverlib/debug.h"
    #include "driverlib/gpio.h"
    #include "interrupt/driverlib"#include "intrupt.id.h"
    
    
    
    
    //设置25MHz 系统时钟
    uint32_t SYSCLK = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、25000000);
    
    SysCtlPeripheralEnable (SYSCTL_Periph_SSI1);
    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
    while (!SysCtlPeripheralReady (SYSCTL_Periph_SSI1));
    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOB));
    while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOE));
    
    
    GPIOPinConfigure (GPIO_PB4_SSI1FSS);
    GPIOPinTypeSSI (GPIO_PORTB_BASE、GPIO_PIN_4);
    GPIOPinConfigure (GPIO_PB5_SSI1CLK);
    GPIOPinTypeSSI (GPIO_PORTB_BASE、GPIO_PIN_5);
    GPIOPinConfigure (GPIO_PE4_SSI1XDAT0);
    GPIOPinTypeSSI (GPIO_Porte _BASE、GPIO_PIN_4);
    
    
    SSIConfigSetExpClk (SSI1_base、SYSCLK、SSI_FRF_MOTO_MOTO_0、SSI_MODE_MASTER、19200、 8);
    
    SSIAdvFrameHoldEnable (SSI1_base);
    SSIAdvModeSet (SSI1_base、SSI_ADV_MODE_WRITE);
    
    必须先配置//接口,然后才能启用
    SSIEnable (SSI1_base);
    
    //delay 循环、在示波器上显示 FSS 高电平
    int i;
    对于(i = 0;i < 50000;i++);
    
    SSIDataPut (SSI1_base、0xff);
    SSIDataPut (SSI1_base、0x55);
    SSIAdvDataPutFrameEnd (SSI1_base、0x64);
    
    while (1);
    }
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的示波器电容器将证明、如果它显示(预期) SPI 时钟的"偏差"(或不显示)(以"字节间隔"表示)、并且证明这会破坏"12-12"的独特需求、"会更有用"。

    问题是"FSS "的"不"-这是 SPI 时钟的偏差-如(上面)所述...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Peter、

    很棒的发现!! 数据表中没有描述 SSI 的任何高级模式使我认为它对这一点有用的内容、不知道它能够做到这一点。 在数据表中提到了高级 SSI、该器件在12ve12pm 正在被使用。

    我继续确认您的方法也适用于 TM4C1294NCPDT、因此这是问题的解决方案。

    使用 LSA 测量的 CB1、时钟为我完美分配、任何字节之间完全没有间隙、SS 线路的行为也无需将其分配给 GPIO。 范围不显示谎言。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TivaWare API 破坏了我的安全。 有时根本不查看数据表...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哇哦!

    尊敬的 Peter:

    非常感谢您的参与! 我已经过测试、时钟间隙确实已消除。

    也许我应该从现在开始忽略数据表,只需转至 TivaWare 调用:-)

    下面是我所做的:我基本上在调用 SSIEnable()之前将这两个调用添加到了代码中:

    MAP_SSIAdvFrameHoldEnable (SSI3_base);
    MAP_SSIAdvModeSet (SSI3_base、SSI_ADV_MODE_READ_WRITE);
    

    来消除 SPI 时钟波形中的间隙!

    不过、还有一些注意事项。

    我仍在以 GPIO 的形式手动控制 SSI3FSS 引脚。

    原因如下:

    我们在系统中有很多中断。 如果我拨打以下电话:

    SSIDataPut (SSI1_base、0xff);
    SSIDataPut (SSI1_base、0x55);
    SSIAdvDataPutFrameEnd (SSI1_base、 0x64);
    

    然后、它们之间很可能发生中断、这会导致 Tx FIFO 在所有数据都就绪之前耗尽、这随后会导致(相对)非常长的时钟间隔。 我没有看到"暂停发送器"的方法、因此我可以在空闲时填充 Tx FIFO、然后在准备就绪时开始传输。 (如果有办法,请给我启迪!)

    当然、我可以使用 IntMasterDisable()和 IntMasterEnable()暂停中断、但我可以避免这种情况。

    因此,由于我已经按照之前的帖子中描述的那样使用 DMA 实施了代码来填充 SSI Tx FIFO,所以我保持了该代码不变,增加了对 SSIAdvFrameHoldEnable()和 SSIAdvModeSet()的调用,并观察了它们对时钟信号的影响:

    即、不再存在缝隙!

    之前的间隔长度约为4个时钟周期、因此它们清晰可见。

    但是! DMA 有一个警告:

    使用 DMA 时、我看不到任何方法可以在 SSI 的 CR1.EOM 位中置1来指示停止帧。 DMA 只能重复填充一个外设寄存器、即数据寄存器(Tx FIFO)。 正如我看到的、EOM 位于不同的寄存器中、必须在放置最后一个字节之前置位、因此我不能等待 DMA 完成中断执行此操作。

    这似乎对 SPI 时钟波形没有任何影响。 但它确实影响了 SSI3FSS、因为就 SSI 外设而言、帧永远不会结束、因此它永远不会使 SSI3FSS 无效。

    (哦、我还在看它!) EOM 描述为:"当 MODE 设为"高级"、"双 SSI 或"四 SSI "时、该位适用。 QSSI 模块将该位插入 TXFIFO 数据输入的第12位。"

    我想、嗯、如果我将 DMA 设置为16位传输而不是8位、并将0x00ff、0x00ff、0x10ff 填入 Tx FIFO、该怎么办? 但遗憾的是、这不起作用。 我想、当使用高级模式强制8位传输时、这些高8位被某种程度的屏蔽。 因此、除非有人告诉我另一个很酷的技巧、否则我会继续将片选线路作为 GPIO 进行控制。

    消除时钟间隙后、我很高兴能吃到猪圈。

    感谢大家的慷慨帮助:CB1、Ralph 和 Peter。

    代码:

    void InitMAX11100 (void)
    {
    uint32_t DummyRead;
    
    //为 SPI 芯片选择设置端口和引脚
    MAP_GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2);
    MAP_GPIOPadConfigSet (GPIO_PORTF_BASE、GPIO_PIN_2、GPIO_FORMENT_4mA、GPIO_FORMENT_4mA GPIO_PIN_TYPE_STD);
    
    MAP_SysCtlPeripheralDisable (SYSCTL_PERIPH_SSI3);
    MAP_SysCtlPeripheralReset (SYSCTL_PERIPH_SSI3);MAP_SysCtlPeripheralEnable (SYSCTL_PERIPH_SSI3
    );
    while (MAP_SysCtlSysCtlPeripheralReady (SYSCT1_SSIP_PHI));将 GPIP_GPIO_PIN_SSIP3
    引
    
    
    
    
    
    
    脚配置为 GPIO_SSIP3引脚和 GPIO3引脚;将 GPIO_PIN_GPIO0_GPIO3引脚配置为 US_PIN_SSIP_GPIO_TRIP_TRIP_PHI 引脚
    
    
    //为 SPI 主控模式
    MAP_SSIConfigSetExpClk (SSI3_base、Global. SysClockFreqHz、SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、4000000、 8);
    
    //启用高级模式以允许连续传输三个字节
    //无时钟间隙。
    //
    //注意事项:
    // 1. 由于我们使用的是 DMA、因此似乎无法加载
    SSI CR1寄存器的 EOM (结束//消息)位。 这意味着芯片选择
    //永远不会被取消置位。 因此、我们必须将芯片选择控制为
    // GPIO。
    // 2. 这仅在 SPI 模式为 SSI_FRF_MOTO_MODE_0时有效!!
    MAX11100就是//情况、但其他 SPI IC 可能不同。
    MAP_SSIAdvFrameHoldEnable (SSI3_base);
    MAP_SSIAdvModeSet (SSI3_base、SSI_ADV_MODE_READ_WRITE);
    
    //启用 SSI 模块
    MAP_SSIEnable (SSI3_base);
    
    //在使用
    前确保 FIFO 为空,同时(MAP_SSIDataRead_Rx);//
    
    
    
    
    将 SSI3DR_Rx 分配到适当的通道;//
    
    //确保不需要的 Rx 通道 DMA 属性为 map_uDMAChannelAttributeDisable (
    UDMA_CH14_SSI3RX、UDMA_ATTR_ALTSELECT | UDMA_ATTR_USEBURST | UDMA_ATTR_HIGH_PRIORY | UDMA_TR_REQMASK);
    
    // UDMA_REST4_TR_DMA_TR_USECC_8
    
    
    
    | UDMA_TR_DMA_TR_TR_DMA_RESTR_TR_TR_USECC_TR_TR_TR_TR_TRIGGAL;// UCC_UCC_4 | UDMA_TR_DMA_TR_TR_TR_DMA_TR_TR_USTR_DMA_TR_TRIGG_UCC_UCC_TR
    
    //确保不需要的 Tx 通道 DMA 属性不在
    MAP_uDMAChannelAttributeDisable (UDMA_CH15_SSI3TX、UDMA_ATTR_ALTSELECT | UDMA_ATTR_HIGH_PRIORY | UDMA_ATTR_REQMASK)范围内;
    
    //启用 USEBURST 以强制 Tx 通道 DMA 在
    从 SSI 传输到突发缓冲区时始终使用。
    MAP_uDMAChannelAttributeEnable (UDMA_CH15_SSI3TX、UDMA_ATTR_USEBURST);
    
    //设置 Tx DMA 主控制结构
    MAP_uDMAChannelControlSet (
    UDMA_CH15_SSI3TX | UDMA_INC_SELECT、
    UDMA_SIZE 8 | UDMA_INC_INC_READ
    8)
    
    
    
    | UDMA_INT_INT_INT_INT_INTR_0
    
    | UDIAT_INT_INT_INT_INT_INT_INTR_INT_INT_INT_INT_INT_INT_INT_8 | UDIOT_INT_INT_INT_INT_INT_INT_INT_INT_INT_INT_INT_8 | UART_INT_INT_INT_INT_INT_INT_INT_INT_INT_INT_INT_8 | UINT_INT_INT_INT_INT_
    
    
    
    
    
    //将 DMA 设置为读取3个字节
    MAP_uDMAChannelTransferSet (
    UDMA_CH14_SSI3RX | UDMA_PRI_SELECT、
    UDMA_MODE_BASIC、
    (void *)(SSI3_base + SSI_O_DR)、
    (void *) READ、
    3
    );
    
    //启用通道、因为它在 SSIM_DR_SI_SS 上完成时被禁用
    
    
    
    ;SSIM_SSIM_SSIM_BASE (SSIM_SSIM_ENABLE_DR_SSIM_ENCH)
    
    //将 DMA 设置为写入3个字节
    MAP_uDMAChannelTransferSet (
    UDMA_CH15_SSI3TX | UDMA_PRI_SELECT、
    UDMA_MODE_BASIC、
    (void *)&DummyByte、
    (void *)(SSI3_base + SSI_O_DR)
    、3
    );
    
    //通道、因为它已禁用
    、并且在 SSIM_DMA_TRANSI_SDK_SDK_ENCH 上启用
    
    (
    在 SSIM_SDK_SDK_SDK_TOP/ SSIM_SDK_ENCH 3上启用 SSIM_SDK_ENCH;在 SSIM_SDK_SDK_SDK_SDK_SDK_SDK_ENCH;(在 SSIM_SDK_SDK_SDK_PR
    
    //等待 DMA 完成
    while (MAP_uDMAChannelModeGet (UDMA_CH14_SSI3RX | UDMA_PRI_SELECT)!= UDMA_MODE_STOP){
    }
    
    //取消置位芯片选择
    MAP_GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、GPIO_PIN_2、GPIO_PIN_STOP)(
    
    0x2和0xFF](RETURN)(读)(0x2)和0x2)(0x2)(读)(< 0x8)|(< 0x2)
    
    
    

    这在 TM4C129ENCPDT 上。

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

    [引用 USER="CB1_MOBILE]Staff /I "aspire"来表示这种"出色"。 (这是一个很好的收获- 12平方...)
    我建议您"注意" Maxi's crüe í a 所提出的"异常要求"-强制使用 TM4C 的无电 SPI 时钟机制-

    [/报价]

    我喜欢这个名字12平方! 也许我应该给自己打12分

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

    向海报 Peter、 Ralph 和(尤其是)"12-12"致敬、因为(真的)精彩的叙述-和示波器帽-以及"您如何根据"手头的事实"进行的宝贵描述。

    由于 Peter 的示波器上限(压缩)数据时钟-我担心他可能错过了中心问题。    他也不是!   好的、Peter。    (脚踢了我的后部确信...)

    我认为(仍然)请求供应商的 Ralph 联系负责 MCU SPI 实施的小组是有价值的-了解以下内容将证明您感兴趣:

    • SPI 时钟的意外"扩大"(在重复的"字节间隔"中注明) 是否"是其预期 SPI 实现机制的故意部分?"
    • 并且-根据该响应-即使在-特别是在-新芯片修订和/或工艺调整到达时、这种"修复"是否有可能(得到保证、甚至更强)"保持"?

    正如12月12日和我的团队所注意到的(是多家供应商的 ARM MCU 的用户)、某些其他 MCU 表现出这种时钟偏差、而其他 MCU 则不会!   (多么愉快)

    虽然"所有(看起来)都很好"(目前)-我们在这种"特殊模式"(可能)表现出"移动行为"方面拥有第一手经验、这是由于芯片修订和/或(不可避免)流程调整所致。   哦!

    至(最后一次...哈!) 击败"死马"-了解"外部芯片供应商提供的指导-强制实施此(不需要的) SPI 时钟限制..."仍将是值得关注的问题。

    并对12-12表示称赞、"精确安装24个 SPI 时钟-并填充示波器的宽度 (甚至可以看到"小 Stevie Wonder")-这样做!    非常注重细节-你(甚至)感谢你(但为彼得)无 crüe…  (只有一个 crüe 成员"解决了"这一难题-尽管我们的 FPGA 方法肯定会起作用-并且 MCU 是不可知的!   如果/当您"追逐大美元!"时需要)

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

    您好、12月12日下午、

    密钥并不像在 FIFO 已满时停止发送那样重要、因为它同时执行该操作并使 SS 运行... 我可以加载具有良好延迟的字节、以模拟进入 FIFO 的中断、在发送 SSIEnable 之前、中断不会发送 TX、但在这段时间内、SS 线路决定它希望已经处于低电平。 考虑到 SSIEnable/Disable API 不应以我想的方式使用、这并不令人惊讶、但它确实会使该方法无效。 预加载 FIFO 似乎没有其他方法。

    就 DMA 而言、我目前还没有找到方法让 DMA 执行离开手动 SS 所需的操作。

    正在被执行的停止帧的关键不是将位12载入到 TX FIFO 中、而是将报文结束的寄存器标志置1:

    HWREG (ui32Base + SSI_O_CR1)|= SSI_CR1_EOM; 

    这就是 FrameEnd 函数为确保 SS 线路变为高电平而执行的操作。 我搜索了 driverlib、但在两个高级模式帧结束 SSI 函数之外没有找到正在使用的 SSI_CR1_EOM 变量的任何跟踪。

    唯一可以解决此问题的方法是、不仅使用直接寄存器调用、而且了解如何添加、以便仅在 UDMA 剩余1个字节发送时进行设置... 鉴于当前解决方案的复杂性、我认为这不值得追求。 我想我们已经达到了 TM4C 厨房灌电流能力的极限。

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

    您好 CB1、

    请求声音响亮、清晰、但不幸的是、可能难以跟进。 不确定是谁拥有该部分、但由于设备已经存在很长时间并且早已设计... 可能很难从马口直接获得信息、因为马口处理了这种精确的实施。 尽管我从整个线程中记下了大量注释、以供我们内部参考。

    从我对这一点的深入探讨中、我可以说这两个方面都按预期工作。 高级模式功能旨在添加标准 SSI 模块实现方案不提供的附加功能。 这包括提供一个显式设置来强制 SS 线路为低电平、而 SSI 模块没有此设置。 基于这一点、假设 SSI 模块在其标准实现中的每个字节之间具有 SS 脉冲是合理的、因此即使 SS 被从其控制中移除、 状态机的逻辑仍在加载下一个字节之前等待该脉冲。

    如果我对所有这些都很正确、 然后、这两种模式都应在所有具有支持帧结束功能的高级 SSI 的器件中继续工作、因为这一功能似乎是在器件中非常有意设计的、以涵盖 SS 脉冲不起作用的情况、例如在12ve12pm 的情况下。

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

    您好、12月12日下午、

    还有一件事我不想说了!! 由于我们现在讨论的是 SSI 的高级模式... 请小心避免将 HEAD 首先送入勘误表 SSI#03 (http://www.ti.com/lit/er/spmz850g/spmz850g.pdf):)

    注意:Peter 似乎是一个向导、因为他的设备也应该受到影响...

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

    幸运的是、该特定的 SSI 通道位于 SSI3上、不受该勘误表的影响。

    但是,我*只*开始处理下一个使用 SSI1的 SSI 任务。 希望我们不需要高级模式。

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

    [引用 USER="CB1_MOBILE"]

    并对12-12表示称赞、"精确安装24个 SPI 时钟-并填充示波器的宽度 (甚至可以看到"小 Stevie Wonder")-这样做!    非常注重细节-你(甚至)感谢你(但为彼得)无 crüe…  (只有一个 crüe 成员"解决了"这一难题-尽管我们的 FPGA 方法肯定会起作用-并且 MCU 是不可知的!   如果/当您"追逐大美元!"时需要)

    [/报价]

    我很高兴您喜欢它!

    几年前、我花了相当多的时间来学习 FPGA 和 CPLD、因为我们最终以另一种方式完成了一个项目、但我相信在我们的最终将来会有 FPGA。

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

    您好 Ralph、

    再次感谢您、您已远远超出了要求。

    确实- TM4C (IS)"显示其年龄"。   这里(有些)可能会感应到(有时)... 也许... "新设备(可能出现)在地平线上!"    

    "继这条线程"是否不会证明它"有用"、以便(赦免)"过去的罪孽"不会"侵犯新器件 的未来?"    (海报 Peter 可能无法(仍然)用于"重复"救援...)

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

    [引用 USER="CB1_MOBILE"]

    确实- TM4C (IS)"显示其年龄"。   这里(有些)可能会感应到(有时)... 也许... "新设备(可能出现)在地平线上!"    

    "继这条线程"是否不会证明它"有用"、以便(赦免)"过去的罪孽"不会"侵犯新器件 的未来?"    (海报 Peter 可能无法(仍然)用于"重复"救援...)

    [/报价]
    请不要给他们任何关于年龄的想法! 或者,作为一个必然结果,关于(主禁止)废除这个家庭。
    出于技术原因和其他原因、我们选择了 TM4C 系列 作为我们的新产品。 这意味着从另一家供应商和完全不同的 MCU 系列进行了昂贵的迁移、基本上需要重写我们的软件、这相当大、已经花费了几个月、但尚未完成。 是的、我们有独立于处理器的高级代码、该代码与低级螺母和螺栓代码分离、 但是、这是一个嵌入式系统、具有严格的实时要求、您不能避免大量低级代码与 MCU 紧密关联、并且必须准确工作。 以这个时钟间隔问题为例。 如果我们切换 MCU 系列、我们必须再次解决这个问题(以及其他数千个问题)。 不用说、我们对 TM4C 做出了巨大的承诺、并在成本、时间、工作量等方面进行了大量投资
    来自每个供应商的每个 MCU 都有其特点和缺点、而 TM4C 有其自身的一些惊喜、到目前为止、它似乎做得很好。 我相信、我们已经选择了最适合我们新产品的 MCU 系列。
    话虽如此,如果有新的 MCU 在制造中,我确实有一个(长)愿望清单:-)
    不要废弃这个!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 CB1、

    [引用 USER="CB1_MOBIST"]是否不会证明"有用"、"继电器这个线程"、以便(赦免)"过去的罪孽"不会"侵犯新器件 的未来?"[/QUERPLET]

    因此,我对以下问题的看法:

    [引用 user="Ralph Jacobi"]尽管我从整个主题中记下了大量注释,以供我们内部参考。

    此外、12点12分、无需担心、TM4C 不会出现任何问题!! 我相信,您一定会对设计选择感到满意:)

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

    不知怎么说、"记录此类注释以供内部参考"不如"传播整个线程"那样"有效"-这"确保"设计团队获得此(非常)活动线程的"完整且完整的风格"。

    作为 "这样一个设计团队"的过去成员、我们最常寻求"完整和未过滤的故事"(以及个人笔记)、那就是 "组合... "-这证明是最有益和最有启发性的...   (注(单独)不能提供该主题的"ebb & flow"、也不能报告数据表的"强度和弱点"(此处详述)、并且 /容易受到"个人解释"的影响。)