stcgal/doc/zh_CN/FAQ.md
2023-06-01 18:51:13 +02:00

4.1 KiB
Raw Permalink Blame History

文档说明 Explanation

此文档翻译自FAQ.md

This document was translated from FAQ.md

最后修改时间2020年6月8日

Last modified time: June 8, 2020

常见问题

问题1是否可以从芯片中读取代码或EEPROM存储器

从设计上讲这是STC的引导加载程序协议无法实现的。 STC将此视为安全功能。目前没有已知的解决方法。有关更多详细信息和讨论请参见问题7。

问题2哪些串行接口已通过stcgal测试过

stcgal应该可以与波特率为16550的UART兼容。 但是如今基于USB模拟的UART是典型的情况。 以下是已通过stcgal成功测试的USB模拟UART接口芯片

  • FT232系列操作系统LinuxWindows
  • CH340 / CH341操作系统WindowsLinux需要内核4.10
  • PL2303操作系统WindowsLinux
  • CP2102操作系统WindowsLinuxmacOS

已知不起作用的接口:

  • Raspberry Pi Mini UART缺少奇偶校验支持请启用PL011 UART

问题3stcgal 启动失败同时显示 module 'serial' has no attribute 'PARITY_NONE' 等类似信息

PyPI软件包“ serial”数据序列库和PyPI软件包“ pyserial”stcgal所需的串行端口访问库之间存在模块名称冲突。 您必须卸载'serial'软件包(pip3 uninstall serial)并重新安装'pyserial'pip3 install --force-reinstall pyserial)才能解决此问题。 目前没有其他已知的解决方案。

问题4stcgal无法识别MCU并停留在“Waiting for MCU”中

有许多问题可能导致此症状:

  • 电气问题和错误连接。确保正确连接了RX / TXGND和VCC。 如果您不使用自动复位功能还应确保仅在stcgal启动后才接通电源因为引导加载程序仅在上电复位时被调用。
  • 通过I / O引脚供电。 即使未连接VCC也可以通过I / O引脚例如RX / TX为MCU供电。 在这种情况下,上电复位逻辑不起作用。请参阅下一个问题。
  • erial接口不兼容。由于各种原因一些基于USB的UART与STC MCU的兼容性很差。 您可以尝试使用选项-l 1200将握手波特率从标准2400波特降低到1200波特在某些情况下可以解决这些问题。

问题5如何避免MCU从I/O引脚供电

可以采取各种补救措施来避免MCU从I/O引脚供电。

  • 您可以尝试在MCU VCC和GND之间连接一个电阻<1k以使注入的电源短路并希望将电压降至欠压值以下。
  • 另一种选择是在可能注入功率的I / O线上插入串联电阻。例如在RX / TX线上尝试一个类似1k的值。
  • 还有另一种可能性是切换GND而不是VCC。 在大多数情况下,这应该是一个相当可靠的解决方案。

问题6RC频率调整失败

首先请确保指定的频率使用正确的单位。频率以kHz为单位指定安全范围约为5000 kHz-30000 kHz。 此外频率调整使用UART时钟作为时钟参考因此UART不兼容或时钟不准确也会导致频率调整问题。如果可能的话 尝试另一个UART芯片。

问题7波特率切换失败或闪存编程失败

特别是在高编程波特率,例如, 115200波特。尝试降低波特率或使用默认的19200波特率。 某些USB UART也会由于时序不正确而引起问题这可能会导致各种问题。

问题8如何使用自动重置功能

标准自动重置功能的工作原理与Arduino类似。 DTR是低电平有效信号在stcgal启动时置位500 ms然后在其余的编程序列中置为无效。 在标准USB UART上这将导致500 ms的低脉冲然后是高相位。 stcgal作者推荐以下电路

VCC --o      o-- MCU GND
      |      |
     .-.     |
     | | 1k  |
     | |     |
     '_'     |
      |      |
      |   ||-+
DTR --o --||<- BS170/BSS138
          ||-| (N-CH MOSFET)
             |
             |
GND ---------o

该电路使用一个N沟道MOSFET作为开关来切换MCU的GND。 VCC直接连接。这避免了寄生供电问题。上拉电阻可确保在DTR输入悬空时接通MCU。