EM9380与EM9280兼容设计

 2013-9-3          [nemail]    
[lablebox]

        EM9280是英创公司推出的一款以多串口为特色的嵌入式工控主板,预装正版WinCE6.0/Linux-3.9.7操作系统,直接支持彩色TFT LCD显示和4线电阻触摸屏,最高分辨率可达1024*768。支持多达32位可独立操作的GPIO。EM9280以丰富的资源、极高的性价比,一经推出就受到了市场的肯定,现在已经批量出货。

 

        WinCE和Linux都是主流的实时嵌入式操作系统之一,但由于操作系统任务调度机制所限,很难满足高速实时控制应用的需求。EM9380 则是针对高速实时控制的应用特点,在EM9280的基础上,巧妙融入一片高性能 MCU (Cortex-M3)专门实现实时控制任务,EM9380以双CPU方式(以454MHz ARM9为主CPU,64M Cortex-M3作为协CPU),为客户提供了一种高效低成本的实时控制应用解决方案。

 

        EM9380与EM9280的引出管脚高度兼容,下面通过两个表格直观的对比EM9280与EM9380的管脚引出情况。下面两表中,除红色字体外,其余引脚的信号定义,EM9280与EM9380完全一样。

 

        EM9380 CN1信号定义:

 


信号名称及简要描述CN1信号名称及简要描述
PIN#PIN#

  LINK#,Eth0连接/传送指示

12

  SPEED#,Eth0速度指示

  TPTX+,以太网差分输出

34

  TPTX-,以太网差分输出

  TPRX+,以太网差分输入

56

  TPRX-,以太网差分输入

  VDD_CMT1,网络变压器公共端

78

  系统保留

  ttyS6_RXD(COM7)

910

  ttyS6_TXD(COM7)

  ttyS7_RXD(COM8)

1112

  ttyS7_TXD(COM8)

  ttyS8_RXD(COM9)

1314

  ttyS8_TXD(COM9)

  USB1_HD+,USB1 Host信号

1516

  USB1_HD-,USB1 Host信号

  USB2_HD+,USB2 Host信号

1718

  USB2_HD-,USB2 Host信号

  COM2_RXD

1920

  COM2_TXD

  COM3_RXD,232电平

2122

  COM3_TXD,232电平

  COM4_RXD

2324

  COM4_TXD,232电平

  COM5_RXD

2526

  COM5_TXD(DBGSL#)

  GPIO0 / MCU_T0_IOA

2728

  GPIO1 / MCU_T0_IOB

  GPIO2 / MCU_T0_CLK

2930

  GPIO3 / MCU_T1_IOA

  GPIO4 / MCU_PWM3

3132

  GPIO5 / MCU_PWM4

  GPIO6 / MCU_PWM5

3334

  GPIO7 / MCU_PWM6

  GPIO8 / MCU_AD0

3536

  GPIO9 / MCU_AD1


 

        EM9280 CN1的第16、17脚信号定义为:

 


  AIN1,0~3V量程

1718

  AIN2,0~3V量程


 

        EM9380 CN2信号定义:

 


信号名称及简要描述CN1信号名称及简要描述
PIN#PIN#

  +5V电源输入

12

  +5V电源输入

  USB_OTG_VBUS

34

  RSTIN#,外部复位输入

  电源地(GND)

56

  电源地(GND)

  USB_OTG_D+

78

  USB_OTG_D-

  USB_OTG_UID

910

  BATT3V,3.3V电池输入

  DBG_COM_RX,232电平

1112

  DBG_COM_TX,232电平

  USB3_HD+,USB3 Host信号

1314

  USB3_HD-,USB3 Host信号

  GPIO10 / MCU_AD2

1516

  GPIO11 / MCU_AD3

  GPIO12 / MCU_AD4

1718

  GPIO13 / MCU_AD5

  GPIO14 / MCU_AD6

1920

  GPIO15 / MCU_AD7

  GPIO16 / COM2_CTS#

2122

  GPIO17 / COM2_RTS#

  GPIO18 / COM6_RXD

2324

  GPIO19 / COM6_TXD

  GPIO20 / PWM1

2526

  GPIO21 / PWM2

  GPIO22 / I2C_SDA

2728

  GPIO23 / I2C_SCL

  GPIO24 / IRQ1

2930

  GPIO25 / IRQ2

  GPIO26 / IRQ3

3132

  GPIO27 / IRQ4

  GPIO28 / SPI_MISO

3334

  GPIO29 / SPI_MOSI

  GPIO30 / SPI_SCLK

3536

  GPIO31 / SPI_CS0N


 

        EM9280 CN2的第13、14脚信号定义为:

 


  RSTOUT#,复位输出

1314

  DBGSL#,调试模式选择输入


 

        从上面两表可以看到EM9380与EM9280仅有4个引脚功能定义不一样,用户可以从EM9280和EM9380的数据手册进一步查看CN1和CN2的详细说明。细心的用户也许会发现一个问题,在EM9380的CN1,CN2定义中,没有专门的DBGSL#引脚,为了最大限度的利用EM9380有限的管脚资源,EM9380的DBGSL#信号与COM5_TXD是复用的,用户可以在EM9380的COM5_TXD上接一个5K的下拉电阻让EM9380进入调试模式。具体可参考《EM9380工控主板数据手册》和EM9380评估底板原理图。

 

        如果只考虑常规的GPIO功能,EM9380与EM9280的GPIO对应管脚完全一致,但它们各自的GPIO复用功能就有着较大的差别。下表是EM9280与EM9380的32位GPIO以及各自复用功能的对比。

 


PIN#信号名称EM9280复用功能EM9380复用功能
CN1_27GPIO0

  COM2口CTS#

  复用定时器功能

CN1_28GPIO1

  COM2口RTS#

  复用定时器功能

CN1_29GPIO2 

  复用定时器功能

CN1_30GPIO3 

  复用定时器功能 

CN1_31GPIO4 

  PWM3

CN1_32GPIO5 

  PWM4

CN1_33GPIO6

  PWM1

  PWM5

CN1_34GPIO7

  PWM2

  PWM6

CN1_35GPIO8 

  AD0通道输入 

CN1_36GPIO9 

  AD1通道输入

CN2_15GPIO10

  COM6口RXD

  AD2通道输入

CN2_16GPIO11

  COM6口TXD

  AD3通道输入

CN2_17GPIO12 

  AD4通道输入 

CN2_18GPIO13 

  AD5通道输入

CN2_19GPIO14 

  AD6通道输入

CN2_20GPIO15 

  AD7通道输入

CN2_21GPIO16 

  COM2口CTS# 

CN2_22GPIO17 

  COM2口RTS# 

CN2_23GPIO18 

  COM6口RXD 

CN2_24GPIO19 

  COM6口TXD 

CN2_25GPIO20

  PWM3 

  PWM1

CN2_26GPIO21

  PWM4

  PWM2

CN2_27GPIO22

  I2C_SDA

  I2C_SDA 

CN2_28GPIO23

  I2C_SCL

  I2C_SCL

CN2_29GPIO24

  IRQ1

  IRQ1

CN2_30GPIO25

  IRQ2

  IRQ2 

CN2_31GPIO26

  IRQ3

  IRQ3

CN2_32GPIO27

  IRQ4

  IRQ4 

CN2_33GPIO28

  SPI_MISO

  SPI_MISO

CN2_34GPIO29

  SPI_MOSI

  SPI_MOSI

CN2_35GPIO30

  SPI_SCLK  

  SPI_SCLK  

CN2_36GPIO31

  SPI_CS0N

  SPI_CS0N


 

        EM9380的GPIO0~GPIO15是支持实时控制应用的引脚,可实现高速AD、高精度PWM、数字PID、脉冲计数等高速实时控制。典型的实时控制周期可达25us。

 

        EM9280没有复用功能的GPIO是通过I2C总线扩展的,所以操作速度相对有复用功能的GPIO(有复用功能的GPIO直接从CPU引出)要慢一些,适合作常规的开关应用。如果对速度有一定的要求,如设置作为串口的流控信号或通过GPIO模拟SPI/I2C总线等,建议选用从CPU直接引出的GPIO。

 

        EM9380与EM9280的GPIO20~GPIO31功能完全一样。

 

        在应用程序的设计上,EM9380除支持实时应用的GPIO0~GPIO15外,其余的与EM9280完全一样。我们封装了一组专门的API函数MCU_GPIO_XXX()用来操作EM9380的GPIO0~GPIO15,其复用的实时控制功能也提供了相应的API函数,具体可参考《EM9380工控主板实时控制应用说明》

[lablebox]