关于 My4TH 的一些试验(三):更快的运行速度
工作在 20MHz 和 22.1184MHz
试验表明,使用 74HC 系列逻辑电路和 AM27H256-45/35DC,把电源电压提高到 5.2V,系统就可以稳定工作在 20MHz(使用原作者提供的 10MHz ROM 镜像文件,波特率 9600)。
电源电压进一步提高到 5.4V,下面的配置可以让系统工作在 22.1184MHz:
U2 U3 | U4 | U9 | U15 | U16 | 其他 |
---|---|---|---|---|---|
74F161A(TI)/ 74AC161(TI) | 74LVC541A(TI) | 74ACT08/ 74LVC08 | AM27H256-45/35DC (需筛选) | IS61C256AL-12T(L)I/ CY7C199(L)-15ZC | 74HC系列 |
更高的波特率
通过调整串口操作子例程中的延迟,系统在 16MHz 以上可以工作在 14400 波特率,在 22.1184MHz 可以工作在 19200 波特率。
这里可以下载修改后的固件和工具。这一版本包含的改进如下:
- 2025-01-19 更新:按标准将
M*/
改为使用 3 个单元的中间结果;为方便装入程序,增加FH
和-->
两个词(详见 Thinking Forth 第五章) - 2025-01-13 更新:修复 14400/19200 波特率下 uart_recv 的一个 bug
固件:
- 改进的 EEPROM 搜索:相邻的块位于同一片 EEPROM 上(建议使用 24xx1026/BR24G1MFJ/M24M01),便于使用外接的 EEPROM 卡
- 更快的 UART 波特率:16MHz 以上可用 14400,22.1184MHz 可用 19200
- 为了提高性能,尽可能使用 NFD 扩展中的
PLD
/PHD
指令操作数据栈 - 改进
tab_opcode
,使 BLOAD 的二进制模块可以使用 NFD 扩展指令 - 对
PARSE
、WORD
、ADDRESS-UNIT-BITS
进行小改进,使它们符合 Forth 2012 标准 - 增加 CH453 键盘和 PCA9557 I2C LCD4004 屏幕驱动(本系列中后面会详细介绍)
- 为 Ctrl 组合键修改按键代码
- 改进
LIST
,使其可以与其他 I2C 外设共同工作 - 改进
LIST
、DUMP
、WORDS
,在 LCD 屏幕上显示时可以每页暂停 - 增加词
COLD
用于在终端中复位系统 - 按惯例,将
EDIT
和LIST
的行号更改为 0..15(从 0 开始)
用于 LCD 屏幕的 EDIT 实用程序(m4-lcd-edit.bin
)增加了如下功能:
- Shift+Up: 向上 4 行
- Shift+Down: 向下 4 行
- Shift+Left: 回到行首
- Shift+Right: 去行尾
- Ctrl+Enter: 在当前行后插入一行
- Shift+Enter: 断开当前行(光标之后内容另起一行)
- Ctrl+C: 复制当前行
- Ctrl+K: 删除(剪切)当前行
- Ctrl+U: 反删除(粘贴)一行
- Ctrl+Space: 清除当前行
- Ctrl+Backspace: 将当前行与上一行合并
my4th-tool
:
- 传输数据和模拟时可以设定波特率
22.1184MHz 下的稳定性测试
注意在 22.1184MHz 时,不是所有的 EPROM 都可以稳定工作。建议将 EPROM 放在恒温在 45°C 的加热板上,等几分钟使温度达到平衡后,进行如下测试:
测试 1,输出应为 -1000:
: test1 0 1000 0 do 1 2 u< + loop . ; \ 输出应为 -1000
测试 2,输出应符合预期,不死机:
: test 1000 . ;↵ ok
test↵ 1000 ok
: test 5000 . ;↵ ok
test↵ 5000 ok
forget test↵ ok
test↵ 1000 ok
forget test↵ ok
test↵ ? unknown word test
测试 3,输出应符合预期,不死机:
: + 0. parse-name >number 2drop d>s + ;↵ ok
3 + 4 + 5 .↵ 12
如果不能通过测试,可以采取如下方法之一:
- 略微提高电源电压 0.05~0.1V(建议不要超过 5.5V);
- 更换 EPROM;
- 降低考核温度到 40°C(在室温下也能稳定工作,只是余量没有那么足)。
大部分 AM27H256-35/45DC 都能在 45°C 稳定工作。但大部分 AM27H256-45DC 都不能在 45°C 稳定工作。降低考核温度到 40°C,部分 AM27H256-45DC 可以工作。1
三种改进的贴片版
-
由于 TSSOP 封装没有 SOIC 封装容易焊接,设计了除 HC/LVC541、HC574 和 HC273 外其他逻辑电路均采用 SOIC 封装的版本。
-
由于在 20MHz/22.1184MHz 下工作需要提高电源电压,在上面的版本基础上设计了自带 Boost 电路将供电电压升至目标值的版本。
-
为了进一步的测试,在上面的版本基础上设计了方便引出内部重要信号的版本。
-
之前的版本在 uart_recv 中存在一个 bug(
PSH R0
包含在了等待起始位的循环中)。温度对时序的影响会触发这一 bug,导致压栈的内容未完整弹出。修复这一 bug 后,能稳定工作的 EPROM 数量增多了。——2025-01-13 ↩︎