OpenM128

来自Waveshare Wiki
跳转至: 导航搜索

<seo title="AVR开发板 OpenM128 用户手册" metakeywords="Atmega128 AVR开发板 OpenM128 学习资料" metadescription="Atmega128 AVR开发板 OpenM128 用户手册"></seo>

概述

    本用户手册描述了微雪电子AVR系列开发板[1] 之OpenM128的设计原理和示例使用教程,旨在帮助用户快速上手入门。

硬件设计

    本章节主要讲解OpenM128开发板硬件的设计基本思路,带你见证ATmega128A-AU从一个芯片蜕变到OpenM128电路板的过程。

    首先从我们接触单片机时比较常见的LED流水灯实验说起,所谓的LED流水灯实验就是通过控制单片机来实现LED灯像流水一样有规律地流动跑动起来的实验。那么像这么一个简单的实验,单片机是怎么实现的,又需要哪些电路来协同工作呢?

    对于单片机系统来说,其实就是通过写程序控制芯片的I/O引脚输出高或低电平来控制LED灯亮灭,然后由输出不同电平的时间来决定LED亮灭的时间。要使得单片机实现上面的功能,就需要有电源电路来供给电源,让芯片自己工作起来;需要有时钟电路,来提供精确的时钟(如:让LED亮1s)让芯片有序地工作起来;需要有下载/配置电路,这样才能将编写的程序下载到芯片;需要有复位电路,来让芯片复位,从头开始执行操作;另外像上面说到的I/O引脚,这些芯片上引出来的功能引脚,我们可以根据不同的功能的细分成I/O、SPI、I2C、USART等扩展接口。

    在上文提到的电源电路、时钟电路、复位电路和配置电路,这几个是单片机开发中必备的电路,因此,很多最小系统板也都只有这几个电路,而不会引出其他功能接口。而OpenM128则是把芯片所有的不同功能类型引脚接口引出来,并提供配套的功能模块和驱动程序,让用户可以快速地上手学习芯片的所有功能接口,并进一步仿效着做类似的扩展开发。下面将对各个电路做详细的介绍。

电源电路

    电源电路是OpenM128板子能够工作最基本的电路。查芯片手册可知ATmega128A芯片的工作电压范围为:2.7V ~ 5.5V,而我们在供电设计上采用5V电压供电的同时也通过AMS1117-3.3稳压芯片转成3.3V的电压,用户可以根据不同需求,通过跳线帽把接入芯片的电压设置为3.3V或5V。另外本电源电路带有控制开关、电源指示灯、3.3V/5V/GND引脚接线引出等,可方便地对电源电路进行控制利用和检测。
OpenM128-Power-Supply-Circuit.png

引脚名称 描述
5V 外部输入5V供电电压,可直接用于芯片VCC引脚供电,或给其他外接模块。
3.3V 经AMS1117-3.3稳压器件转压的3.3V电压,可用于芯片VCC引脚供电或给其他外接模块。。
GND 接地
VCC 对应芯片的VCC引脚,可通过板上的跳线帽设置为接入5V或3.3V
PWR_5V 供电电源接入的5V电压

时钟电路

    在AVR单片机中,芯片内有经过校正的内部RC振荡器,因此在很多时钟精度要求不高的情况,其实也可以省去时钟电路。为了适应更高精度的需求,OpenM128在设计上相对灵活,板载了7.3728M和32.768K晶振的同时,也提供了一个自定义的晶振接入口。如果板载的晶振无法满足需求的时候,用户可方便接入合适的晶振,然后用一个跳线帽即可快速进行切换(注:软件熔丝位需相应进行改动)。
OpenM128-Colock-Circuit.png

引脚名称 描述
XTAL1 反向振荡放大器与片内时钟操作电路的输入端
XTAL2 反向振荡放大器的输出端
PG3 I/O引脚,同时可作为32kHz晶振输入脚
PG4 I/O引脚,同时可作为32kHz晶振输入脚

复位电路

    AVR单片机是低电平复位,也就是说当AVR单片机的复位引脚有一个持续50ns的低电平的时候,AVR单片机就会复位。当按钮按下后,复位引脚被连到电源负极,当按钮松开后,复位引脚重新变为高点平,在按钮按下和松开这个过程一般至少持续100ms,这个时间足够产生令单片机的复位脉冲了。
OpenM128-RST-Circuit.png

引脚名称 描述
nRST 对应芯片的RESET引脚,低电平有效。

下载/配置电路

    下载又有称烧写,是对单片机进行编程配置的过程。AVR单片机支持的下载方式有ISP、JTAG、PDI等接口,主要是前两种。OpenM128在设计上引出来比较通用的ISP接口10脚和6脚两种标准接口和JTAG的10脚标准接口,可直接支持标准的AVR下载器/仿真器[2]。JTAG口和ISP口都可以用于下载程序,JTAG口除了可以下载还能进行在线仿真调试。
OpenM128-Download-Circuit.png

引脚名称 描述
MISO ISP接口,主入从出
MOSI ISP接口,主出从入
SCK ISP接口,测试时钟,其他信号线都必须与之同步
TDI JTAG接口,用于测试数据的输入
TDO JTAG接口,用于测试数据的输出
TMS JTAG接口,模式控制管脚,决定JTAG电路内部的TAP状态机的跳转
TCK JTAG接口,测试时钟,其他信号线都必须与之同步

扩展电路

    OpenM128扩展电路比较丰富,也板载了LED、按键等可方便进行I/O操作;另外其他的扩展接口有LCD、16I/O、USART、PWM、I2C、SPI等等等。这些扩展功能接口对于初学者来说可能是仅仅是简单的几个字符,但是如果熟悉对这些功能接口的操作,那么你将意识到单片机所能发挥的无穷魅力。现在市面上很多功能强大的外设模块,如GPS、WIFI、视频、音频、智能识别、传感等功能模块都是做成这些通用的接口来直接接入各种单片机。如果这些功能模块都应用到你的单片机中,那么可以创造出怎么样的惊喜呢?!

开发板基本操作

上电和下载

    按下图连接,接入下载器进行下载。
OpenM128-debugger.JPG

入门实验

    在下列入门实验中的都要给板子供电,并下载对应的例程。

2.2inch LCD_Display

程序说明

  • 2.2寸彩屏显示

实验操作

【步骤】

  1. 取下12864 JMP跳线帽
  2. 接上2.2inch 320x240 Touch LCD (A)[3]到LCD接口
  3. 供电,并下载例程

【现象】

  • 2.2寸彩屏会显示不同的色块

【照片】
接入2.2寸彩屏 现象


2.2inch LCD_Touch

程序说明

  • 2.2寸彩屏触摸实验

实验操作

【步骤】

  1. 取下12864 JMP跳线帽
  2. 接上2.2inch 320x240 Touch LCD (A)[3]到LCD接口
  3. 供电,并下载例程

【现象】

  • 可以在2.2寸彩屏上触摸画画

【照片】
接入2.2寸彩屏 触摸画画

8 Push Buttons

程序说明

  • 检测8 Push Buttons[4]按键的状态来控制对应LED的亮灭

实验操作

【步骤】

  1. 接上LED JMP跳线帽
  2. 接上8 Push Buttons
  3. 供电,下载例程

【现象】

  • 分别按下K0~K7,LED有对应变化

【照片】
接上8 Push Buttons现象

8 SEG LED Board

程序说明

  • 通过I/O口来控制8 SEG LED Board[5]

数码管的显示

实验操作

【步骤】

  1. 接上8 SEG LED Board到16I/Os接口
  2. 供电,并下载例程

【现象】

  • 8 SEG LED Board上4个数码管会有有规律的显示出数字和字母

【照片】
接入8 SEG LED Board现象

AD Keypad

程序说明

  • AD Keypad[6]上16个按键通过一个ADC接口来实现按键控制

实验操作

【步骤】

  1. 接上AD Keypad到ADC接口
  2. 接上PL2303 USB UART Board (mini) 到USART0接口
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口上会打印出从AD Keypad模块的按键值

【照片】
接入AD Keypad模块 接入PL2303 USB UART Board (mini) 串口设置,并打印出AD Keypad按键值

I2C_AT24CXX

程序说明

  • I2C接口读写AT24CXX EEPROM[7]的实验

实验操作

【步骤】

  1. 接上AT24CXX EEPROM Board到I2C接口
  2. 接上PL2303 USB UART Board (mini) [8]
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口上会打印出从EEPROM读写的数据

【照片】
接入AT24CXX EEPROM Board 接入PL2303 USB UART Board (mini) 现象

I2C_PCF8563

程序说明

  • I2C接口读写PCF8563 RTC Board[9]时钟模块

实验操作

【步骤】

  1. 接上PCF8563 RTC Board到I2C接口
  2. 接上PL2303 USB UART Board (mini) [8]
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口上会打印出从时钟模块上的数据

【照片】
接入PL2303 USB UART Board和PL2303 USB UART Board (mini) 设置串口和打印出来的信息

IO_FT245

程序说明

  • FT245 USB FIFO Board读写实验

实验操作

【步骤】

  1. 取下FT245 USB FIFO Board[10]对外部供电的供电跳线
  2. PC0~PC7通过杜邦线接到LED0~LED7上
  3. 将FT245 USB FIFO Board插入16I/Os接口,另外一端接到PC机
  4. 供电,并下载例程
  5. 打开串口助手,选择对应的com口,设置波特率为19200

【现象】

  • 串口接收窗口会打印出1~9有序的字符串出来,用串口助手发送数据,如:cc,LED会对应地点亮。

【照片】
FT245-2.jpgFT245-3.jpgFT245-1.jpg

Interupt_KEY4

程序说明

  • 使用芯片外部中断(KEY4按键触发)来控制LED

实验操作

【步骤】

  1. 接上LED_JMP跳线帽
  2. 供电,下载例程

【现象】

  • 按下KEY4按键,LED灯会根据KEY4累加按下的次数流水点亮


JOYSTICK

程序说明

  • 检测JOYSTICK按键的状态来控制对应LED的亮灭

实验操作

【步骤】

  1. 接上LED JMP、JOYSTICK跳线帽
  2. 供电,下载例程

【现象】

  • 拨动JOYSTICK不同方向,LED有对应变化

【照片】

现象

KEY

程序说明

  • 检测Key按键的状态来控制对应LED的亮灭

实验操作

【步骤】

  1. 接上LED JMP、KEY JMP跳线帽
  2. 供电,下载例程

【现象】

  • 分别按下KEY1~KEY4,LED有对应变化

【照片】

OpenM128-JOYSTICK-1.jpg

LCD12864

程序说明

  • 通过SPI接口和I/O口来控制图形显示屏LCD12864[11]

实验操作

【步骤】

  1. 接上12864 JMP跳线帽 (注意:板子的VCC跳线帽须接入到3.3V,否则LCD电压过大、显示过亮,易烧坏)
  2. 接上LCD12864到LCD接口
  3. 供电,并下载例程

【现象】

  • LCD12864会显示“waveshare”字样

【照片】
LCD12864显示现象

LED

程序说明

  • 使用芯片I/O口控制LED的亮灭

实验操作

【步骤】

  1. 接上LED JMP跳线帽
  2. 供电,下载例程

【现象】

  • 8个LED会有亮灭变化

【照片】

现象

ONE WIRE_DS18B20

程序说明

  • 通过One Wire口来检测温度传感DS18B20+[12]上的温度

实验操作

【步骤】

  1. 接上DS18B20+到ONE WIRE接口 (注意:DS18B20+接入的方向不能接反,否则易烧坏)
  2. 接上PL2303 USB UART Board (mini) [8]
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口会打印出感应到的温度值

【照片】
接入DS18B20+ 接入PL2303 USB UART Board (mini) 串口设置和打印现象

PS2

程序说明

  • 键盘通过PS2接口接入使用

实验操作

【步骤】

  1. 接上PS/2 JMP跳线帽
  2. 接上键盘到PS/2接口
  3. 接上PL2303 USB UART Board (mini) [8]
  4. 供电,并下载例程
  5. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口会打印出键盘输入字符

【照片】
接入带PS/2接口的键盘 接入PL2303 USB UART Board (mini) 串口设置和打印出键盘输入值现象

SPI_AT45DBXX

程序说明

  • SPI接口读写AT45DBXX DataFlash Board[13]外扩存储模块的实验

实验操作

【步骤】

  1. 接上AT45DBXX DataFlash Board到SPI接口
  2. 接上PL2303 USB UART Board (mini) [8]
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 串口助手窗口上会打印出从DataFlash读写的数据

【照片】
接入PL2303 USB UART Board和AT45DBXX DataFlash Board 设置串口和打印出来的信息

SPI_Debug

SPI_NRF24L01

程序说明

  • NRF24L01无线通信实验

实验操作

【步骤】

  1. 需准备两个板子(一个作为发送信号 — TX,另一个作为接收信号 — RX),下例以两个OpenM128开发板为例
  2. 将两个NRF24L01 RF Board (B)[14]分别接到两个板子的SPI接口
  3. RX的板子通过PL2303 USB UART Board连到电脑
  4. 供电,并下载例程
  5. 打开串口助手,选择对应的com口,设置波特率为9600

【现象】

  • 串口助手会打印出接收信号的板子收到的从发送信号板子发出的信息

【照片】
连接现象

T_C0_LED

程序说明

  • 使用芯片I/O口和定时器0(T/C0)来控制LED的亮灭

实验操作

【步骤】

  1. 接上LED_JMP跳线帽
  2. 供电,下载例程

【现象】

  • 8个LED会有亮灭变化

【照片】

现象

USART

程序说明

  • USART0:USART0接口自发自收实验
  • USART1:USART1自动连续发送字符“U”

实验操作

【步骤】

  1. 接上PL2303 USB UART Board (mini) [8]到UART0(或UART1)
  2. 供电,并下载例程
  3. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • USART0:串口助手上发送字符都可以直接在串口助手窗口上自收到
  • USART1:USART1自动发送“U”

【照片】
接入PL2303 USB UART Board (mini)到USART0 接入PL2303 USB UART Board (mini)到USART1 USART0自发自收 USART1自动发送“U”

USART_Printf

程序说明

  • 通过USART0接口发送数据,并打印出来

实验操作

【步骤】

  1. 接上PL2303 USB UART Board (mini) [8]到UART0
  2. 供电,并下载例程
  3. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

  • 程序自动发送数据,并在串口助手上显示出来

【照片】
接入PL2303 USB UART Board (mini)到USART0 串口助手打印出数据

相关资料

  1. AVR系列开发板
  2. AVR下载器/仿真器
  3. 3.0 3.1 2.2inch 320x240 Touch LCD (A):彩色LCD触摸显示屏,查看更多图形LCD模块
  4. 8 Push Buttons:基于IO口控制的按键模块,查看更多按键模块
  5. 8 SEG LED Board:基于I/O口控制的数码管模块
  6. AD Keypad:16个按键,仅占用1个AD口
  7. AT24CXX EEPROM Board:基于I2C接口的EEPROM模块
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块
  9. PCF8563 RTC Board:基于I2C接口的时钟模块
  10. FT245 USB FIFO Board (mini):基于FT245芯片设计的USB转FIFO通信模块
  11. LCD12864-ST (3.3V 蓝屏):液晶显示模块,查看更多图形LCD模块
  12. DS18B20+:温度传感芯片
  13. AT45DBXX DataFlash Board:基于SPI接口的DataFlash模块
  14. NRF24L01 RF Board (B):基于SPI接口的2.4G无线模块,查看更多RF无线通信模块