Added Chine documentation
This commit is contained in:
parent
a6b791b089
commit
717af49b16
68
README-zh_CN.md
Normal file
68
README-zh_CN.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
文档说明 Explanation
|
||||||
|
-------------------
|
||||||
|
此文档翻译自README.MD
|
||||||
|
|
||||||
|
This document was translated from README.MD
|
||||||
|
|
||||||
|
最后修改时间:2020年6月8日
|
||||||
|
|
||||||
|
Last modified time: June 8, 2020
|
||||||
|
|
||||||
|
|
||||||
|
stcgal - 用于STC MCU的ISP闪存工具
|
||||||
|
===============================
|
||||||
|
|
||||||
|
stcgal是用于[STC MCU Ltd]的命令行闪存编程工具。
|
||||||
|
兼容8051微控制器。
|
||||||
|
|
||||||
|
|
||||||
|
STC微控制器具有基于UART / USB的引导加载程序(BSL)。
|
||||||
|
它采用系统内编程,即基于数据包的协议通过串行链路刷新代码存储器和IAP存储器。
|
||||||
|
BSL还用于配置各种设备选项。
|
||||||
|
不幸的是,该协议没有公开记录,STC仅提供(粗略的)Windows GUI应用程序进行编程
|
||||||
|
|
||||||
|
|
||||||
|
stcgal是STC的Windows软件的功能全面的开源替代品。
|
||||||
|
它支持多种MCU,非常便携,适合自动下载。
|
||||||
|
|
||||||
|
特点
|
||||||
|
--------
|
||||||
|
|
||||||
|
* 支持STC 89/90/10/11/12/15/8/32系列
|
||||||
|
* UART和USB BSL支持
|
||||||
|
* 显示信息
|
||||||
|
* 确定工作频率
|
||||||
|
* 程序闪存
|
||||||
|
* 程序IAP / EEPROM
|
||||||
|
* 设置设备选项
|
||||||
|
* 读取唯一的设备ID(STC 10/11/12/15/8)
|
||||||
|
* 设置RC振荡器频率(STC 15/8)
|
||||||
|
* 自动电源(使用DTR切换或自定义Shell命令循环)
|
||||||
|
* 自动UART协议检测
|
||||||
|
|
||||||
|
快速开始
|
||||||
|
----------
|
||||||
|
|
||||||
|
安装stcgal(可能需要root /管理员权限):
|
||||||
|
|
||||||
|
pip3 install stcgal
|
||||||
|
|
||||||
|
呼叫stcgal并显示的用法:
|
||||||
|
|
||||||
|
stcgal -h
|
||||||
|
|
||||||
|
更多的信息
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
[安装方法](doc/zh_CN/INSTALL.md)
|
||||||
|
|
||||||
|
[如何取使用](doc/zh_CN/USAGE.md)
|
||||||
|
|
||||||
|
[常见问题](doc/zh_CN/FAQ.md)
|
||||||
|
|
||||||
|
[支持的MCU型号](doc/zh_CN/MODELS.md)
|
||||||
|
|
||||||
|
执照
|
||||||
|
-------
|
||||||
|
|
||||||
|
stcgal是根据MIT许可发布的。
|
@ -22,7 +22,7 @@ suitable for automation.
|
|||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
* Support for STC 89/90/10/11/12/15/8 series
|
* Support for STC 89/90/10/11/12/15/8/32 series
|
||||||
* UART and USB BSL support
|
* UART and USB BSL support
|
||||||
* Display part info
|
* Display part info
|
||||||
* Determine operating frequency
|
* Determine operating frequency
|
||||||
|
84
doc/zh_CN/FAQ.md
Normal file
84
doc/zh_CN/FAQ.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
文档说明 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系列(操作系统:Linux,Windows)
|
||||||
|
* CH340 / CH341(操作系统:Windows,Linux需要内核4.10)
|
||||||
|
* PL2303(操作系统:Windows,Linux)
|
||||||
|
* CP2102(操作系统:Windows,Linux,macOS)
|
||||||
|
|
||||||
|
已知不起作用的接口:
|
||||||
|
|
||||||
|
* Raspberry Pi Mini UART(缺少奇偶校验支持,请启用PL011 UART)
|
||||||
|
|
||||||
|
### 问题3:stcgal 启动失败同时显示 `module 'serial' has no attribute 'PARITY_NONE'` 等类似信息
|
||||||
|
|
||||||
|
PyPI软件包“ serial”(数据序列库)和PyPI软件包“ pyserial”(stcgal所需的串行端口访问库)之间存在模块名称冲突。
|
||||||
|
您必须卸载'serial'软件包(`pip3 uninstall serial`)并重新安装'pyserial'(`pip3 install --force-reinstall pyserial`)才能解决此问题。
|
||||||
|
目前没有其他已知的解决方案。
|
||||||
|
|
||||||
|
### 问题4:stcgal无法识别MCU,并停留在“Waiting for MCU”中
|
||||||
|
|
||||||
|
有许多问题可能导致此症状:
|
||||||
|
* 电气问题和错误连接。确保正确连接了RX / TX,GND和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。
|
||||||
|
在大多数情况下,这应该是一个相当可靠的解决方案。
|
||||||
|
|
||||||
|
### 问题6:RC频率调整失败
|
||||||
|
首先,请确保指定的频率使用正确的单位。频率以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。
|
24
doc/zh_CN/INSTALL.md
Normal file
24
doc/zh_CN/INSTALL.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
文档说明 Explanation
|
||||||
|
------------------------
|
||||||
|
此文档翻译自INSTALL.md
|
||||||
|
|
||||||
|
This document was translated from INSTALL.md
|
||||||
|
|
||||||
|
最后修改时间:2020年6月8日
|
||||||
|
|
||||||
|
Last modified time: June 8, 2020
|
||||||
|
|
||||||
|
安装说明
|
||||||
|
============
|
||||||
|
|
||||||
|
stcgal需要Python 3.2(或更高版本),pyserial 3.0或更高版本以及TQDM 4.0.0或更高版本。
|
||||||
|
USB支持是可选的,并且需要pyusb 1.0.0b2或更高版本。如果已经安装了依赖项,则可以使用包含的
|
||||||
|
```stcgal.py``` 脚本直接运行stcgal。
|
||||||
|
|
||||||
|
永久安装有几种选择:
|
||||||
|
|
||||||
|
* 使用Python3和```pip```。运行```pip3 install stcgal```
|
||||||
|
在系统上全局安装最新版本的stcgal。
|
||||||
|
这可能需要管理员/ root用户权限才能进行写到系统目录。
|
||||||
|
|
||||||
|
* 使用setuptools。运行`./setup.py build`来构建,并运行'sudo ./setup.py install`'来安装stcgal。
|
51
doc/zh_CN/MODELS.md
Normal file
51
doc/zh_CN/MODELS.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
文档说明 Explanation
|
||||||
|
------------------------
|
||||||
|
此文档翻译自MODELS.md
|
||||||
|
|
||||||
|
This document was translated from MODELS.md
|
||||||
|
|
||||||
|
最后修改时间:2020年6月8日
|
||||||
|
|
||||||
|
Last modified time: June 8, 2020
|
||||||
|
|
||||||
|
支持的MCU型号
|
||||||
|
====================
|
||||||
|
|
||||||
|
stcgal理论上完全支持STC 89/90/10/11/12/15/8系列MCU。
|
||||||
|
|
||||||
|
到目前为止,stcgal已使用以下MCU模型进行了测试:
|
||||||
|
|
||||||
|
89/90系列
|
||||||
|
* STC89C52RC (BSL 版本: 4.3C/6.6C)
|
||||||
|
* STC90C52RC (BSL 版本: 4.3C)
|
||||||
|
* STC89C54RD+ (BSL 版本: 4.3C)
|
||||||
|
|
||||||
|
STC12C系列
|
||||||
|
* STC12C2052 (BSL 版本: 5.8D)
|
||||||
|
* STC12C2052AD (BSL 版本: 5.8D)
|
||||||
|
* STC12C5608AD (BSL 版本: 6.0G)
|
||||||
|
* STC12C5A16S2 (BSL 版本: 6.2I)
|
||||||
|
* STC12C5A60S2 (BSL 版本: 6.2I/7.1I)
|
||||||
|
* STC12C5204AD (BSL 版本: 6.6H)
|
||||||
|
|
||||||
|
10/11系列价格
|
||||||
|
* STC10F04XE (BSL 版本: 6.5J)
|
||||||
|
* STC11F02E (BSL 版本: 6.5K)
|
||||||
|
* STC11F08XE (BSL 版本: 6.5M)
|
||||||
|
|
||||||
|
STC15系列
|
||||||
|
* STC15F104E (BSL 版本: 6.7Q)
|
||||||
|
* STC15F204EA (BSL 版本: 6.7R)
|
||||||
|
* STC15L104W (BSL 版本: 7.1.4Q)
|
||||||
|
* STC15F104W (BSL 版本: 7.1.4Q)
|
||||||
|
* IAP15F2K61S2 (BSL 版本: 7.1.4S)
|
||||||
|
* STC15L2K16S2 (BSL 版本: 7.2.4S)
|
||||||
|
* IAP15L2K61S2 (BSL 版本: 7.2.5S)
|
||||||
|
* STC15W408AS (BSL 版本: 7.2.4T)
|
||||||
|
* STC15W4K56S4 (BSL 版本: 7.3.4T, UART and USB mode)
|
||||||
|
|
||||||
|
STC8系列
|
||||||
|
* STC8A8K64S4A12 (BSL 版本: 7.3.9U)
|
||||||
|
* STC8F2K08S2 (BSL 版本: 7.3.10U)
|
||||||
|
|
||||||
|
欢迎提供兼容性报告,无论是负面的还是正面的。
|
22
doc/zh_CN/PyPI.md
Normal file
22
doc/zh_CN/PyPI.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
文档说明 Explanation
|
||||||
|
------------------------
|
||||||
|
此文档翻译自PyPI.md
|
||||||
|
|
||||||
|
This document was translated from PyPI.md
|
||||||
|
|
||||||
|
最后修改时间:2020年6月8日
|
||||||
|
|
||||||
|
Last modified time: June 8, 2020
|
||||||
|
|
||||||
|
stcgal - 用于STC MCU的ISP闪存工具
|
||||||
|
===============================
|
||||||
|
|
||||||
|
stcgal是用于[STC MCU Ltd](http://stcmcu.com/)的命令行闪存编程工具。 兼容8051微控制器。
|
||||||
|
|
||||||
|
STC微控制器具有基于UART / USB的引导加载程序(BSL)。
|
||||||
|
它采用系统内编程,即基于数据包的协议通过串行链路刷新代码存储器和IAP存储器。
|
||||||
|
BSL还用于配置各种设备选项。 不幸的是,该协议没有公开记录,STC仅提供(粗略的)Windows GUI应用程序进行编程
|
||||||
|
|
||||||
|
stcgal是STC的Windows软件的功能全面的开源替代品。 它支持多种MCU,非常便携,适合自动下载。
|
||||||
|
|
||||||
|
[有关更多信息,请参见GitHub页面。](https://github.com/grigorig/stcgal).
|
238
doc/zh_CN/USAGE.md
Normal file
238
doc/zh_CN/USAGE.md
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
文档说明 Explanation
|
||||||
|
------------------------
|
||||||
|
此文档翻译自USAGE.md
|
||||||
|
|
||||||
|
This document was translated from USAGE.md
|
||||||
|
|
||||||
|
最后修改时间:2020年6月8日
|
||||||
|
|
||||||
|
Last modified time: June 8, 2020
|
||||||
|
|
||||||
|
使用方法
|
||||||
|
=====
|
||||||
|
|
||||||
|
使用 ```-h``` 调用stcgal以获取使用信息。('//'后面是翻译,实际使用过程中没有后面内容)
|
||||||
|
|
||||||
|
```
|
||||||
|
usage: stcgal.py [-h] [-a] [-r RESETCMD]
|
||||||
|
[-P {stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto}]
|
||||||
|
[-p PORT] [-b BAUD] [-l HANDSHAKE] [-o OPTION] [-t TRIM] [-D]
|
||||||
|
[-V]
|
||||||
|
[code_image] [eeprom_image]
|
||||||
|
|
||||||
|
stcgal 1.5 - an STC MCU ISP flash tool
|
||||||
|
(C) 2014-2018 Grigori Goronzy and others
|
||||||
|
https://github.com/grigorig/stcgal
|
||||||
|
|
||||||
|
positional arguments:
|
||||||
|
code_image code segment file to flash (BIN/HEX) //代码段文件刷新
|
||||||
|
eeprom_image eeprom segment file to flash (BIN/HEX) //EEPROM段文件刷新
|
||||||
|
|
||||||
|
optional arguments:
|
||||||
|
-h, --help show this help message and exit //显示此帮助消息并退出
|
||||||
|
-a, --autoreset cycle power automatically by asserting DTR//断言DTR自动重启电源
|
||||||
|
-r RESETCMD, --resetcmd RESETCMD
|
||||||
|
shell command for board power-cycling (instead of DTR //用于板上电重启的shell命令(而不是DTR断言)
|
||||||
|
assertion)
|
||||||
|
-P {stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto}, --protocol {stc89,stc12a,stc12b,stc12,stc15a,stc15,stc8,usb15,auto}
|
||||||
|
protocol version (default: auto) //协议版本(芯片系列)(在默认状态为auto)
|
||||||
|
-p PORT, --port PORT serial port device //串口设备
|
||||||
|
-b BAUD, --baud BAUD transfer baud rate (default: 19200) //传输波特率(默认值:19200)
|
||||||
|
-l HANDSHAKE, --handshake HANDSHAKE
|
||||||
|
handshake baud rate (default: 2400) //握手波特率(默认值:2400)
|
||||||
|
-o OPTION, --option OPTION
|
||||||
|
set option (can be used multiple times, see//设置选项(可以多次使用,请参阅文档)
|
||||||
|
documentation)
|
||||||
|
-t TRIM, --trim TRIM RC oscillator frequency in kHz (STC15+ series only)//RC振荡器频率(kHz)(仅STC15 +系列)
|
||||||
|
-D, --debug enable debug output //启用调试输出
|
||||||
|
-V, --version print version info and exit //打印版本信息并退出
|
||||||
|
```
|
||||||
|
|
||||||
|
最重要的是, ```-p``` 设置用于编程的串行端口。
|
||||||
|
|
||||||
|
### 通讯协议与规定
|
||||||
|
|
||||||
|
STC MCU对BSL使用各种相关但不兼容的协议。协议可以用```-P``` 标志来指定。
|
||||||
|
默认情况下,使用UART协议自动检测。协议与MCU系列的对应关系如下:
|
||||||
|
|
||||||
|
* ```auto``` 自动检测基于UART的协议(默认)
|
||||||
|
* ```stc89``` STC89/90 系列
|
||||||
|
* ```stc12a``` STC12x052 系列和其他类似系列
|
||||||
|
* ```stc12b``` STC12x52 系列, STC12x56 系列和其他类似系列
|
||||||
|
* ```stc12``` 多数 STC10/11/12 系列
|
||||||
|
* ```stc15a``` STC15x104E 和 STC15x204E(A) 系列
|
||||||
|
* ```stc15``` 多数 STC15 系列
|
||||||
|
* ```stc8``` STC8 系列
|
||||||
|
* ```usb15``` 支持USB的STC15W4系列
|
||||||
|
|
||||||
|
doc / reverse-engineering子目录中的文本文件提供了BSL使用的反向工程协议的概述。
|
||||||
|
有关更多详细信息,请阅读源代码。
|
||||||
|
|
||||||
|
### 获取MCU信息
|
||||||
|
|
||||||
|
调用stcgal而不编写任何文件。它将转储有关MCU的信息,例如:('//'后面是翻译,实际使用过程中没有后面内容)
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./stcgal.py -P stc15
|
||||||
|
Waiting for MCU, please cycle power: done //等待MCU,请重启电源
|
||||||
|
Target model:
|
||||||
|
Name: IAP15F2K61S2
|
||||||
|
Magic: F449
|
||||||
|
Code flash: 61.0 KB
|
||||||
|
EEPROM flash: 0.0 KB
|
||||||
|
Target frequency: 10.046 MHz //单片机频率
|
||||||
|
Target BSL version: 7.1S //单片机BSL版本
|
||||||
|
Target wakeup frequency: 34.771 KHz //单片机唤醒频率
|
||||||
|
Target options:
|
||||||
|
reset_pin_enabled=False //复位引脚启用状态
|
||||||
|
clock_source=internal //时钟来源
|
||||||
|
clock_gain=high
|
||||||
|
watchdog_por_enabled=False //看门狗状态
|
||||||
|
watchdog_stop_idle=True
|
||||||
|
watchdog_prescale=256 //看门狗预分频系数
|
||||||
|
low_voltage_reset=True //低电压复位
|
||||||
|
low_voltage_threshold=3
|
||||||
|
eeprom_lvd_inhibit=True
|
||||||
|
eeprom_erase_enabled=False
|
||||||
|
bsl_pindetect_enabled=False
|
||||||
|
por_reset_delay=long
|
||||||
|
rstout_por_state=high
|
||||||
|
uart2_passthrough=False //串口2直通
|
||||||
|
uart2_pin_mode=normal //串口2引脚模式
|
||||||
|
Disconnected!
|
||||||
|
```
|
||||||
|
|
||||||
|
如果识别失败,阅读[FAQ(chinese)](FAQ.md)
|
||||||
|
|
||||||
|
### 编程Flash闪存
|
||||||
|
|
||||||
|
stcgal支持Intel十六进制编码文件以及二进制文件。
|
||||||
|
Intel HEX通过文件扩展名(. hex,. ihx 或者. ihex ) 自动测试。
|
||||||
|
|
||||||
|
像前面一样调用 stcgal,但提供代码映像的路径:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./stcgal.py -P stc15 hello.hex
|
||||||
|
Waiting for MCU, please cycle power: done
|
||||||
|
Target model:
|
||||||
|
Name: IAP15F2K61S2
|
||||||
|
Magic: F449
|
||||||
|
Code flash: 61.0 KB
|
||||||
|
EEPROM flash: 0.0 KB
|
||||||
|
Target frequency: 10.046 MHz //单片机频率
|
||||||
|
Target BSL version: 7.1S //单片机BSL版本
|
||||||
|
Target wakeup frequency: 34.771 KHz //单片机唤醒频率
|
||||||
|
Target options:
|
||||||
|
reset_pin_enabled=False //复位引脚启用状态
|
||||||
|
clock_source=internal //时钟来源
|
||||||
|
clock_gain=high
|
||||||
|
watchdog_por_enabled=False //看门狗状态
|
||||||
|
watchdog_stop_idle=True
|
||||||
|
watchdog_prescale=256 //看门狗预分频系数
|
||||||
|
low_voltage_reset=True //低电压复位
|
||||||
|
low_voltage_threshold=3
|
||||||
|
eeprom_lvd_inhibit=True
|
||||||
|
eeprom_erase_enabled=False
|
||||||
|
bsl_pindetect_enabled=False
|
||||||
|
por_reset_delay=long
|
||||||
|
rstout_por_state=high
|
||||||
|
uart2_passthrough=False //串口2直通
|
||||||
|
uart2_pin_mode=normal //串口2模式
|
||||||
|
Loading flash: 80 bytes (Intel HEX)
|
||||||
|
Trimming frequency: 10.046 MHz
|
||||||
|
Switching to 19200 baud: done
|
||||||
|
Erasing flash: done
|
||||||
|
Writing 256 bytes: .... done
|
||||||
|
Setting options: done
|
||||||
|
Target UID: 0D000021022632
|
||||||
|
Disconnected!
|
||||||
|
```
|
||||||
|
|
||||||
|
还可以编程存储器的EEPROM部分,。 将 Flash 图像路径添加到命令行后添加EEPROM图像路径。
|
||||||
|
|
||||||
|
stcgal默认使用 19200 bps的保守波特率。 可以通过标志```-b```选择更快的波特率来加快编程速度。
|
||||||
|
|
||||||
|
### 设备选项
|
||||||
|
|
||||||
|
stcgal转储了许多目标选项。 也可以修改这些。 在命令行上提供一个( 或者更多) `-o` 标志,后面跟一个 key-value 对来调整这些设置。
|
||||||
|
例如你可以将外部晶体启用为时钟源:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./stcgal.py -P stc15 -o clock_source=external hello.bin
|
||||||
|
```
|
||||||
|
|
||||||
|
请注意,设备选项只能在 Flash 内存被编程时设置 !
|
||||||
|
|
||||||
|
#### 命令行选项键
|
||||||
|
|
||||||
|
并非所有部件都支持所有选项。 描述中列出了支持每个选项的协议或者部分。
|
||||||
|
|
||||||
|
选项密钥 | 可能的值 | 协议/模型 | 描述
|
||||||
|
------------------------------|-------------------|---------------------|------------
|
||||||
|
```cpu_6t_enabled``` | true/false | 仅STC89 | 6T快速模式
|
||||||
|
```bsl_pindetect_enabled``` | true/false | 全部 | BSL仅在 p3。2/p3。3 或者 p1.0/p1.1 ( 取决于模型) 低时启用
|
||||||
|
```eeprom_erase_enabled``` | true/false | 全部 | 使用下一个编程周期擦除 EEPROM
|
||||||
|
```clock_gain``` | low/high | 所有带XTAL引脚 | 外部晶体的时钟增益
|
||||||
|
```ale_enabled``` | true/false | 仅STC89 | 如果 true,正常 GPIO,如果 false,则启用ALE引脚
|
||||||
|
```xram_enabled``` | true/false | 仅STC89 | 使用内部 XRAM ( 仅适用于 STC89 )
|
||||||
|
```watchdog_por_enabled``` | true/false | 全部 | 复位复位后的看门狗状态( POR )
|
||||||
|
```low_voltage_reset``` | low/high | STC12A/STC12 | 低电压复位级别( 低:~3.3V, 高: ~3.7V)
|
||||||
|
```low_voltage_reset``` | true/false | STC12 | 启用RESET2引脚低压检测
|
||||||
|
```low_voltage_reset``` | true/false | STC15A | 启用低电压复位( brownout )
|
||||||
|
```clock_source``` | internal/external | 带XTAL的STC12A+ | 使用内部( RC ) 或者外部( 晶体) 时钟
|
||||||
|
```watchdog_stop_idle``` | true/false | STC12A+ | 在空闲模式停止看门狗
|
||||||
|
```watchdog_prescale``` | 2,4,8,...,256 | STC12A+ | 看门狗定时器预分频器,必须是两个电源。
|
||||||
|
```reset_pin_enabled``` | true/false | STC12+ | 如果 true,正常 GPIO,如果 false,则复位引脚
|
||||||
|
```oscillator_stable_delay``` | 4096,...,32768 | 仅STC11F系列 | 时钟中的晶体稳定延迟。 一定是 two。
|
||||||
|
```por_reset_delay``` | short/long | STC12+ | 复位复位( POR ) 延迟
|
||||||
|
```low_voltage_threshold``` | 0...7 | STC15A+ | 低电压检测阈值。型号特定
|
||||||
|
```eeprom_lvd_inhibit``` | true/false | STC15A+ | 在低电压情况下忽略EEPROM写入
|
||||||
|
```rstout_por_state``` | low/high | STC15+ | 上电复位后的RSTOUT / RSTSV引脚状态
|
||||||
|
```uart1_remap``` | true/false | STC8 | 通过UART1到UART2引脚( 用于单导线UART模式)
|
||||||
|
```uart2_passthrough``` | true/false | STC15+ | 直通UART1至UART2引脚(用于单线UART模式)
|
||||||
|
```uart2_pin_mode``` | push-pull/normal | STC15+ | UART2 TX引脚的输出模式
|
||||||
|
```cpu_core_voltage``` | low/mid/high | STC15W+ | CPU核心电压( 低:~2.7V, mid: ~3.3V, 高:~3.6V)
|
||||||
|
```epwm_open_drain``` | true/false | STC8 | 上电复位后,对EPWM引脚使用漏极开路引脚模式
|
||||||
|
```program_eeprom_split``` | 512 - 65024 | STC8A8 w/ 64 KB | 选择代码闪存和EEPROM闪存之间的划分(以512字节块为单位)
|
||||||
|
|
||||||
|
### 频率微调
|
||||||
|
|
||||||
|
如果使用内部RC振荡器 (```clock_source=internal```),
|
||||||
|
stcgal可以执行修整过程以将其调整为给定值。 仅在STC15系列及更高版本中受支持。
|
||||||
|
调整值与设备选项一起存储。 使用 ```-t``` 标志请求对某个值进行修剪。
|
||||||
|
通常可以实现4000到30000 kHz之间的频率。 如果修剪失败,stcgal将中止。
|
||||||
|
|
||||||
|
### 自动功率循环
|
||||||
|
|
||||||
|
STC的微控制器需要上电复位才能调用引导加载程序,这可能很不方便。
|
||||||
|
stcgal可以使用串行接口的DTR控制信号来自动执行此操作。
|
||||||
|
当通过```-a```用自动复位功能时,DTR信号有效约500 ms。
|
||||||
|
这需要外部电路来实际切换电源。
|
||||||
|
在某些情况下,当微控制器仅消耗很少的功率时,就有可能直接从DTR信号提供功率。
|
||||||
|
|
||||||
|
作为DTR的替代方法,可以使用定制的shell命令或外部脚本(通过-r选项)来重置设备。
|
||||||
|
您应将命令与```-a```选项一起指定。不要忘了引号 !
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./stcgal.py -P stc15 -a -r "echo 1 > /sys/class/gpio/gpio666/value"
|
||||||
|
```
|
||||||
|
或者
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./stcgal.py -P stc15 -a -r "./powercycle.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 退出状态
|
||||||
|
|
||||||
|
如果在执行stcgal时没有发生错误,则退出状态为 0.。
|
||||||
|
任何错误( 如协议错误或者 I/O 错误) 都会导致退出状态 1。
|
||||||
|
如果用户按ctrl键中止 stcgal,则会导致退出状态为 2.
|
||||||
|
|
||||||
|
### USB支持
|
||||||
|
|
||||||
|
STC15W4系列具有一个基于USB的BSL,可以选择性的使用它。
|
||||||
|
stcgal中的USB支持是实验性的,将来可能会改变。
|
||||||
|
USB模式是通过使用“ usb15”协议启用的。
|
||||||
|
USB协议会忽略端口(```-p```)标志以及波特率选项。同时不支持RC频率调整。
|
Loading…
Reference in New Issue
Block a user