居然叫好声一片, 为了澄清一些疏漏和不要影响大家的理解, 我稍提一下意见, 以做补充.
1. 关于 K元件TTL 的意见, 这是一个错误。从数据手册的典型电平资料看, Vil 是0.35Vdd, Vih 是 0.65Vdd. 这虽然和 CMOS 标称的 0.3Vd 和 0.7Vd 有区别, 但还是完全对称的, 应该属于 CMOS 电平而非 TTL 电平. 为了进一步求证这个问题, 我打开了 RM0008 的英文手册, 这里写的是 "TTL Schmitt trigger" TTL 施密特触发器. 肖特基是个翻译的笔误. 所以这里应该说成是 "适当放大了信号的允许反而而能够兼容接收 TTL 信号的 CMOS 信号.
2. 关于GPIO 的速度. 虽然手册上给出了 2MHz, 10MHz, 50MHz 的区分, 但这个图上却没有任何这个频率信号的踪迹! 即使是手册的文档里也并没有给出这个频率的来龙去脉. 那这个频率到底是个什么信号呢? 打开 《DocID13587 Rev 16》STM32F103x8 的英文16版数据手册, 第66 页有如是说法:
Output driving current
The GPIOs (general-purpose inputs/outputs) can sink or source up to ±8 mA, and sink or source up to ±20 mA (with a relaxed VOL/VOH) except PC13, PC14 and PC15 which can sink or source up to +/-3mA. When using the GPIOs PC13 to PC15 in output mode, the speed should not exceed 2 MHz with a maximum load of 30 pF.
从上面的字里行间, 我比较有把握地猜测这三个频率只是 IO 驱动能力的表示. 以 PC13~15 为例, 能够输出 ±3mA的电流, 并且负责电容 30pF 时, 输出信号的频率保证不低于 2MHz.. 那么我们可以假设如果驱动的电流没有这么大, 负载电容也没有 30pF, 还是这个配置, 输出的频率岂不是照样可以提高 (这一点网友们可以自己做个测试验证).
|