Description
应广单片机 c语言,双核单片机 应广芯片 【芯片介绍2】
栏目:公司新闻 发布时间:2024-07-16
 该楼层疑似违规已被系统折叠 隐藏此楼查看此楼  【IO简介】  (1). 一般 IO 架构图:  (2). 一般 IO 输出入表:(以 PA 为例)  PAC.x PA.x PAPH.x  Output High 1 1 X  Output Low 1 0 X  Input + Pull High 0 X 1  Input 0 X 0  Pull High

  该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

  【IO简介】

  (1). 一般 IO 架构图:

  (2). 一般 IO 输出入表:(以 PA 为例)

  PAC.x PA.x PAPH.x

  Output High 1 1 X

  Output Low 1 0 X

  Input + Pull High 0 X 1

  Input 0 X 0

  Pull High 在 Output Low 时,是自动被关闭的。

  至于 Output High 时,有无 Pull High,影响不大。

  (3). 简易 IO 语法,请参考如下范例:

  $ PA.0 Out, High; // PA.0 输出 High

  $ PA.1 Out, Low, In; // PA.1 输出 Low 后,再切为 Input

  $ PA.2 In, Pull; // PA.2 输入 并 Pull High

  $ PA.3 NoPull; // PA.3 的 Pull High 关掉

  【一般注意事项】

  (1). 未使用的 IO 脚:

  如果 IO 脚没有使用,请将它设为固定准位,

  如: Output High 或 Output Low 或 Input + Pull High 或 模拟输入脚。

  如 IO 脚只能当作单纯 Input 脚 (如有些型号的 PA5),请将它接到 VDD 或 GND。

  (2). Pull High 的注意事项: 一般在 5V 时,Pull High 电阻约在 80K 附近, 不同的 IC、电压、温度,都会使 Pull High 电阻不同, 如果你想利用它来做一般按键的 Pull High,是足够的, 但如果作通讯用的 Pull High (如 I2C 接口),却是不行的。

  很多系列的 PAPH、PBPH 是 Write Only,所以你不可以对它们作 SET0、SET1、SWAPC、TOG、XOR 指令。 因为以上指令的运作原理,是先读回 IO 的值,然后作 AND(SET0) / OR(SET1) / MOV(SWAPC) / XOR(TOG) 运算, 等设定相对应的 BIT 后,再整个 Byte 写回 IO。

  那既然 PAPH、PBPH 是 Write Only,所以,就无法读回 IO 的值,也就无法使用了。

  (3). Open Drain 的注意事项: 并不是所有系列都支持 Open Drain Mode,它可以被 I/O 的三态取代。 若 IO 口设为 Open Drain,当输出为 Open 时, 从 IO 口读回的值,将是 1,而不是 Input 的值。 如果你想作 I2C 的传输,建议你可从 Code Generate 中得到 I2C 的 Sample Code。 不过在 Sample Code 中,只用输出/输入切换完成 I2C 的传输,而不使用 Open Drain。

  (4). 过电压的输入保护: 如果你的 IO 输入口,有高于 VCC 的电压输入,而又无法避免时, 请在 IO 口串连上一个电阻。 建议的电阻值为: 电压差(Volt.) × 100KΩ。 以下为例,VCC=5V,外部有一个 15V 的电源讯号到 IO 口,所以需接保护电阻: 电压差 (15V - 5V = 10V) × 100KΩ = 1MΩ 电阻。

  (5). IO 的输入阻抗有多大 ? 由于一般三用电表只能量测到 20 M 的电阻,所以 IO 的输入阻抗,大到无法量测。

  【共享其它功能】

  (1). IO 与 Reset 共享时的注意事项: 在 IO 口中的 PA.5,并不存在 Pull High 的功能,也无法 Drive High。 当 PA.5 为输入脚时,如果没有使用,建议接到 VDD 或 GND。 只有 PAC.5 = 0 (Input) 时,才可以从 PA.5 读回输入脚, 当 PAC.5 = 1 (Output) 时,是无法读回输入脚。 我们可以利用切换 CLKMD.0,使 PA.5 成为 IC 的外界重置讯号源。 SET0 CLKMD.0 // 设定 PA5 是输入脚,这是系统默认值。 SET1 CLKMD.0 // 设定 PA5 是外界的重置讯号源。

  附注:

  (1): 至于其它的 IO 口,都有输出入切换与选择 Pull High 的功能。

  (2): 有些系列的 IC (如 P234/..),增加了 PA5 Output Low 的功能。

  (2). IO 与 External Crystal 共享时的注意事项: 当硬件的 EOSCR.7 设为 1 时,IO 口的 PA.6 / PA.7 会用来起振 Crystal。

  为了兼容性起见,使用 Crystal 时,需设定 PA.6 / PA.7 为 Input + No Pull High。

  请参考范例

  【PDK82系列 & Crystal】。

  【PDK22系列 & Crystal】。

  【P234 / P201A 系列 & Crystal】。

  在使用 ICE 时,请注意版子上 SW3 的切换。

  在使用 PA.6 / PA.7 作一般 I/O 口时,请将版子上的 SW3 切为 ON。

  在使用 Crystal 时,请将版子上的 SW3 切为 Off,以隔离外部讯号的干扰。

  (3). IO 与 ADC 共享时的注意事项: 当你将 IO 用于 ADC 的转换时,请记得要设为 输入状态 与 致能模拟输入脚。 ( ADCDI / PBDIDR / … 的功能主要在切断输入端的耗电,使 ADC 的准确度提升)。

  范例: 将 PB 的 7~4 设成 AD 输入端,其余为输出端。

  PBC = 0x0F; // PB 的 7~4 设为输入状态。

  ADCDI = 0xF0; // (a) 切断 PB 的 7~4 的输入端的耗电。

  或

  PBDIDR = 0xF0; // (b) 切断 PB 的 7~4 的输入端的耗电。

  (附注: 由于不同系列 IC,造成同一功能有(a)(b)不同名称,十分抱歉。)

  【SET0/1 IO.bit 的注意事项】

  当对 IO 口作 SET0/1、SWAPC、TOG、XOR 指令,运作的原理,是先读回 IO 口的值,然后作 AND(SET0) / OR(SET1) / MOV(SWAPC) / XOR(TOG) 运算,等设定相对应的 BIT 后,再整个 Byte 写回 IO 口。