“模板:OpenM128-Manual”的版本间的差异

来自丢石头百科
(创建页面,内容为“== 概述 ==     本用户手册描述了微雪电子AVR系列开发板<ref>[http://www.waveshare.net/left_column/AVR_DevelopmentBoard.htm AVR系…”)
 
(文本替换 - 替换“http://{{”为“https://{{”)
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
 
== 概述 ==
 
== 概述 ==
&nbsp;&nbsp;&nbsp;&nbsp;本用户手册描述了微雪电子AVR系列开发板<ref>[http://www.waveshare.net/left_column/AVR_DevelopmentBoard.htm AVR系列开发板]</ref> 之OpenM128的设计原理和示例使用教程,旨在帮助用户快速上手入门。
+
&nbsp;&nbsp;&nbsp;&nbsp;本用户手册描述了微雪电子AVR系列开发板<ref>[https://{{SERVERNAME}}/left_column/AVR_DevelopmentBoard.htm AVR系列开发板]</ref> 之OpenM128的设计原理和示例使用教程,旨在帮助用户快速上手入门。
  
 
== 硬件设计 ==
 
== 硬件设计 ==
  
&nbsp;&nbsp;&nbsp;&nbsp;本章节主要讲解OpenM128开发板硬件的设计基本思路,带你见证'''[http://{{SERVERNAME}}/shop/ATmega128A-AU.html ATmega128A-AU]'''从一个芯片蜕变到OpenM128电路板的过程。
+
&nbsp;&nbsp;&nbsp;&nbsp;本章节主要讲解OpenM128开发板硬件的设计基本思路,带你见证'''[https://{{SERVERNAME}}/shop/ATmega128A-AU.html ATmega128A-AU]'''从一个芯片蜕变到OpenM128电路板的过程。
  
 
&nbsp;&nbsp;&nbsp;&nbsp;首先从我们接触单片机时比较常见的LED流水灯实验说起,所谓的LED流水灯实验就是通过控制单片机来实现LED灯像流水一样有规律地流动跑动起来的实验。那么像这么一个简单的实验,单片机是怎么实现的,又需要哪些电路来协同工作呢?
 
&nbsp;&nbsp;&nbsp;&nbsp;首先从我们接触单片机时比较常见的LED流水灯实验说起,所谓的LED流水灯实验就是通过控制单片机来实现LED灯像流水一样有规律地流动跑动起来的实验。那么像这么一个简单的实验,单片机是怎么实现的,又需要哪些电路来协同工作呢?
第70行: 第70行:
 
=== 下载/配置电路 ===
 
=== 下载/配置电路 ===
  
&nbsp;&nbsp;&nbsp;&nbsp;下载又有称烧写,是对单片机进行编程配置的过程。AVR单片机支持的下载方式有ISP、JTAG、PDI等接口,主要是前两种。OpenM128在设计上引出来比较通用的ISP接口10脚和6脚两种标准接口和JTAG的10脚标准接口,可直接支持标准的AVR下载器/仿真器<ref>[http://www.waveshare.net/left_column/AVR_Emulator_Programmer.htm AVR下载器/仿真器]</ref>。JTAG口和ISP口都可以用于下载程序,JTAG口除了可以下载还能进行在线仿真调试。<br/>
+
&nbsp;&nbsp;&nbsp;&nbsp;下载又有称烧写,是对单片机进行编程配置的过程。AVR单片机支持的下载方式有ISP、JTAG、PDI等接口,主要是前两种。OpenM128在设计上引出来比较通用的ISP接口10脚和6脚两种标准接口和JTAG的10脚标准接口,可直接支持标准的AVR下载器/仿真器<ref>[https://{{SERVERNAME}}/left_column/AVR_Emulator_Programmer.htm AVR下载器/仿真器]</ref>。JTAG口和ISP口都可以用于下载程序,JTAG口除了可以下载还能进行在线仿真调试。<br/>
 
[[File:OpenM128-Download-Circuit.png|450px]]
 
[[File:OpenM128-Download-Circuit.png|450px]]
  
第115行: 第115行:
 
【步骤】<br />
 
【步骤】<br />
 
#<font color="red">取下</font>12864 JMP跳线帽  
 
#<font color="red">取下</font>12864 JMP跳线帽  
#接上2.2inch 320x240 Touch LCD (A)<ref name="2.2inch 320x240 Touch LCD (A)">[http://{{SERVERNAME}}/shop/2.2inch-320x240-Touch-LCD-A.htm 2.2inch 320x240 Touch LCD (A)]:彩色LCD触摸显示屏,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>到LCD接口
+
#接上2.2inch 320x240 Touch LCD (A)<ref name="2.2inch 320x240 Touch LCD (A)">[[2.2inch 320x240 Touch LCD (A)]]:彩色LCD触摸显示屏,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>到LCD接口
 
#供电,并下载例程
 
#供电,并下载例程
  
第137行: 第137行:
 
【步骤】<br />
 
【步骤】<br />
 
#<font color="red">取下</font>12864 JMP跳线帽  
 
#<font color="red">取下</font>12864 JMP跳线帽  
#接上2.2inch 320x240 Touch LCD (A)<ref name="2.2inch 320x240 Touch LCD (A)">[http://{{SERVERNAME}}/shop/2.2inch-320x240-Touch-LCD-A.htm 2.2inch 320x240 Touch LCD (A)]:彩色LCD触摸显示屏,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>到LCD接口
+
#接上2.2inch 320x240 Touch LCD (A)<ref name="2.2inch 320x240 Touch LCD (A)">[[2.2inch 320x240 Touch LCD (A)]]:彩色LCD触摸显示屏,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>到LCD接口
 
#供电,并下载例程
 
#供电,并下载例程
  
第152行: 第152行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*检测8 Push Buttons<ref>[http://{{SERVERNAME}}/shop/8-Push-Buttons.htm 8 Push Buttons]:基于IO口控制的按键模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?6.3 更多按键模块]</ref>按键的状态来控制对应LED的亮灭
+
*检测8 Push Buttons<ref>[[8 Push Buttons]]:基于IO口控制的按键模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?6.3 更多按键模块]</ref>按键的状态来控制对应LED的亮灭
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第172行: 第172行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*通过I/O口来控制8 SEG LED Board<ref>[http://{{SERVERNAME}}/shop/8-SEG-LED-Board.htm 8 SEG LED Board]:基于I/O口控制的数码管模块</ref>
+
*通过I/O口来控制8 SEG LED Board<ref>[[8 SEG LED Board]]:基于I/O口控制的数码管模块</ref>
 
数码管的显示
 
数码管的显示
  
第192行: 第192行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*AD Keypad<ref>[http://{{SERVERNAME}}/shop/A_D-Keypad.htm AD Keypad]:16个按键,仅占用1个AD口</ref>上16个按键通过一个ADC接口来实现按键控制
+
*AD Keypad<ref>[[AD Keypad]]:16个按键,仅占用1个AD口</ref>上16个按键通过一个ADC接口来实现按键控制
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第215行: 第215行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*I2C接口读写AT24CXX EEPROM<ref name="AT24CXX EEPROM Board">[http://{{SERVERNAME}}/shop/AT24CXX-EEPROM-Board.htm AT24CXX EEPROM Board]:基于I2C接口的EEPROM模块</ref>的实验
+
*I2C接口读写AT24CXX EEPROM<ref name="AT24CXX EEPROM Board">[[AT24CXX EEPROM Board]]:基于I2C接口的EEPROM模块</ref>的实验
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第221行: 第221行:
 
【步骤】<br />
 
【步骤】<br />
 
#接上AT24CXX EEPROM Board到I2C接口
 
#接上AT24CXX EEPROM Board到I2C接口
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第238行: 第238行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*I2C接口读写PCF8563 RTC Board<ref name="PCF8563 RTC Board">[http://{{SERVERNAME}}/shop/PCF8563-RTC-Board.htm PCF8563 RTC Board]:基于I2C接口的时钟模块</ref>时钟模块
+
*I2C接口读写PCF8563 RTC Board<ref name="PCF8563 RTC Board">[[PCF8563 RTC Board]]:基于I2C接口的时钟模块</ref>时钟模块
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第244行: 第244行:
 
【步骤】<br />
 
【步骤】<br />
 
#接上PCF8563 RTC Board到I2C接口
 
#接上PCF8563 RTC Board到I2C接口
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第265行: 第265行:
  
 
【步骤】<br />
 
【步骤】<br />
#<font color="red">取下</font>FT245 USB FIFO Board<ref name="FT245 USB FIFO Board (mini)">[http://www.waveshare.net/Shop/FT245-USB-FIFO-Board-mini.htm FT245 USB FIFO Board (mini)]:基于FT245芯片设计的USB转FIFO通信模块</ref>对外部供电的供电跳线
+
#<font color="red">取下</font>FT245 USB FIFO Board<ref name="FT245 USB FIFO Board (mini)">[https://{{SERVERNAME}}/Shop/FT245-USB-FIFO-Board-mini.htm FT245 USB FIFO Board (mini)]:基于FT245芯片设计的USB转FIFO通信模块</ref>对外部供电的供电跳线
 
#PC0~PC7通过杜邦线接到LED0~LED7上
 
#PC0~PC7通过杜邦线接到LED0~LED7上
 
#将FT245 USB FIFO Board插入16I/Os接口,另外一端接到PC机
 
#将FT245 USB FIFO Board插入16I/Os接口,另外一端接到PC机
第338行: 第338行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*通过SPI接口和I/O口来控制图形显示屏LCD12864<ref name="LCD12864-ST (3.3V 蓝屏)">[http://{{SERVERNAME}}/shop/LCD12864-ST-3.3V-blue.htm LCD12864-ST (3.3V 蓝屏)]:液晶显示模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>
+
*通过SPI接口和I/O口来控制图形显示屏LCD12864<ref name="LCD12864-ST (3.3V 蓝屏)">[[LCD12864-ST (3.3V 蓝屏)]]:液晶显示模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?5.2 更多图形LCD模块]</ref>
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第377行: 第377行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*通过One Wire口来检测温度传感DS18B20+<ref>[http://{{SERVERNAME}}/shop/DS18B20.html DS18B20+]:温度传感芯片</ref>上的温度
+
*通过One Wire口来检测温度传感DS18B20+<ref>[https://{{SERVERNAME}}/shop/DS18B20.html DS18B20+]:温度传感芯片</ref>上的温度
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第383行: 第383行:
 
【步骤】<br />
 
【步骤】<br />
 
#接上DS18B20+到ONE WIRE接口 <font color="red">(注意:DS18B20+接入的方向不能接反,否则易烧坏)</font>
 
#接上DS18B20+到ONE WIRE接口 <font color="red">(注意:DS18B20+接入的方向不能接反,否则易烧坏)</font>
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第407行: 第407行:
 
#接上PS/2 JMP跳线帽
 
#接上PS/2 JMP跳线帽
 
#接上键盘到PS/2接口
 
#接上键盘到PS/2接口
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第424行: 第424行:
 
'''程序说明'''<br />
 
'''程序说明'''<br />
  
*SPI接口读写AT45DBXX DataFlash Board<ref name="AT45DBXX DataFlash Board">[http://{{SERVERNAME}}/shop/AT45DBXX-DataFlash-Board.htm AT45DBXX DataFlash Board]:基于SPI接口的DataFlash模块</ref>外扩存储模块的实验
+
*SPI接口读写AT45DBXX DataFlash Board<ref name="AT45DBXX DataFlash Board">[[AT45DBXX DataFlash Board]]:基于SPI接口的DataFlash模块</ref>外扩存储模块的实验
  
 
'''实验操作'''<br />
 
'''实验操作'''<br />
第430行: 第430行:
 
【步骤】<br />
 
【步骤】<br />
 
#接上AT45DBXX DataFlash Board到SPI接口
 
#接上AT45DBXX DataFlash Board到SPI接口
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第454行: 第454行:
 
【步骤】<br />
 
【步骤】<br />
 
#需准备两个板子(一个作为发送信号 — <font color="red">TX</font>,另一个作为接收信号 — <font color="red">RX</font>),下例以两个OpenM128开发板为例
 
#需准备两个板子(一个作为发送信号 — <font color="red">TX</font>,另一个作为接收信号 — <font color="red">RX</font>),下例以两个OpenM128开发板为例
#将两个NRF24L01 RF Board (B)<ref name="NRF24L01 RF Board (B)">[http://{{SERVERNAME}}/shop/NRF24L01-RF-Board-B.htm NRF24L01 RF Board (B)]:基于SPI接口的2.4G无线模块,查看更多[http://www.waveshare.net/Left_Column/Accessory_Boards.htm RF无线通信模块]</ref>分别接到两个板子的SPI接口
+
#将两个NRF24L01 RF Board (B)<ref name="NRF24L01 RF Board (B)">[[NRF24L01 RF Board (B)]]:基于SPI接口的2.4G无线模块,查看更多[https://{{SERVERNAME}}/Left_Column/Accessory_Boards.htm RF无线通信模块]</ref>分别接到两个板子的SPI接口
 
#RX的板子通过PL2303 USB UART Board连到电脑
 
#RX的板子通过PL2303 USB UART Board连到电脑
 
#供电,并下载例程
 
#供电,并下载例程
第495行: 第495行:
  
 
【步骤】<br />
 
【步骤】<br />
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>到UART0(或UART1)
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>到UART0(或UART1)
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600
第519行: 第519行:
  
 
【步骤】<br />
 
【步骤】<br />
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[http://{{SERVERNAME}}/shop/PL2303-USB-UART-Board-mini.htm PL2303 USB UART Board (mini)]:串口(UART)通信模块,查看[http://www.waveshare.net/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>到UART0
+
#接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">[[PL2303 USB UART Board (mini)]]:串口(UART)通信模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?1.1 更多USB模块]</ref>到UART0
 
#供电,并下载例程
 
#供电,并下载例程
 
#打开串口助手,选择对应的com口,波特率设置为9600
 
#打开串口助手,选择对应的com口,波特率设置为9600

2021年6月18日 (五) 18:03的最新版本

概述

    本用户手册描述了微雪电子AVR系列开发板<ref>AVR系列开发板</ref> 之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下载器/仿真器<ref>AVR下载器/仿真器</ref>。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)<ref name="2.2inch 320x240 Touch LCD (A)">2.2inch 320x240 Touch LCD (A):彩色LCD触摸显示屏,查看更多图形LCD模块</ref>到LCD接口
  3. 供电,并下载例程

【现象】

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

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


2.2inch LCD_Touch

程序说明

  • 2.2寸彩屏触摸实验

实验操作

【步骤】

  1. 取下12864 JMP跳线帽
  2. 接上2.2inch 320x240 Touch LCD (A)<ref name="2.2inch 320x240 Touch LCD (A)">2.2inch 320x240 Touch LCD (A):彩色LCD触摸显示屏,查看更多图形LCD模块</ref>到LCD接口
  3. 供电,并下载例程

【现象】

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

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

8 Push Buttons

程序说明

实验操作

【步骤】

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

【现象】

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

【照片】
接上8 Push Buttons现象

8 SEG LED Board

程序说明

  • 通过I/O口来控制8 SEG LED Board<ref>8 SEG LED Board:基于I/O口控制的数码管模块</ref>

数码管的显示

实验操作

【步骤】

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

【现象】

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

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

AD Keypad

程序说明

  • AD Keypad<ref>AD Keypad:16个按键,仅占用1个AD口</ref>上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<ref name="AT24CXX EEPROM Board">AT24CXX EEPROM Board:基于I2C接口的EEPROM模块</ref>的实验

实验操作

【步骤】

  1. 接上AT24CXX EEPROM Board到I2C接口
  2. 接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

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

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

I2C_PCF8563

程序说明

  • I2C接口读写PCF8563 RTC Board<ref name="PCF8563 RTC Board">PCF8563 RTC Board:基于I2C接口的时钟模块</ref>时钟模块

实验操作

【步骤】

  1. 接上PCF8563 RTC Board到I2C接口
  2. 接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>
  3. 供电,并下载例程
  4. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

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

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

IO_FT245

程序说明

  • FT245 USB FIFO Board读写实验

实验操作

【步骤】

  1. 取下FT245 USB FIFO Board<ref name="FT245 USB FIFO Board (mini)">FT245 USB FIFO Board (mini):基于FT245芯片设计的USB转FIFO通信模块</ref>对外部供电的供电跳线
  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

程序说明

实验操作

【步骤】

  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+<ref>DS18B20+:温度传感芯片</ref>上的温度

实验操作

【步骤】

  1. 接上DS18B20+到ONE WIRE接口 (注意:DS18B20+接入的方向不能接反,否则易烧坏)
  2. 接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>
  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) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>
  4. 供电,并下载例程
  5. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

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

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

SPI_AT45DBXX

程序说明

  • SPI接口读写AT45DBXX DataFlash Board<ref name="AT45DBXX DataFlash Board">AT45DBXX DataFlash Board:基于SPI接口的DataFlash模块</ref>外扩存储模块的实验

实验操作

【步骤】

  1. 接上AT45DBXX DataFlash Board到SPI接口
  2. 接上PL2303 USB UART Board (mini) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>
  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)<ref name="NRF24L01 RF Board (B)">NRF24L01 RF Board (B):基于SPI接口的2.4G无线模块,查看更多RF无线通信模块</ref>分别接到两个板子的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) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>到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) <ref name="PL2303 USB UART Board (mini)">PL2303 USB UART Board (mini):串口(UART)通信模块,查看更多USB模块</ref>到UART0
  2. 供电,并下载例程
  3. 打开串口助手,选择对应的com口,波特率设置为9600

【现象】

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

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

相关资料

<references/>