匿名
未登录
登录
丢石头百科
搜索
查看“模板:OpenM128-Manual”的源代码
来自丢石头百科
名字空间
模板
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
模板:OpenM128-Manual
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 概述 == 本用户手册描述了微雪电子AVR系列开发板<ref>[https://{{SERVERNAME}}/left_column/AVR_DevelopmentBoard.htm AVR系列开发板]</ref> 之OpenM128的设计原理和示例使用教程,旨在帮助用户快速上手入门。 == 硬件设计 == 本章节主要讲解OpenM128开发板硬件的设计基本思路,带你见证'''[https://{{SERVERNAME}}/shop/ATmega128A-AU.html 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引脚接线引出等,可方便地对电源电路进行控制利用和检测。<br/> [[File:OpenM128-Power-Supply-Circuit.png|600px]] {| class="wikitable" |- ! <font color="Black">引脚名称</font> ! <font color="Black">描述</font> |- | 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晶振的同时,也提供了一个自定义的晶振接入口。如果板载的晶振无法满足需求的时候,用户可方便接入合适的晶振,然后用一个跳线帽即可快速进行切换(注:软件熔丝位需相应进行改动)。<br/> [[File:OpenM128-Colock-Circuit.png|400px]] {| class="wikitable" |- ! <font color="Black">引脚名称</font> !! <font color="Black">描述</font> |- | XTAL1 || 反向振荡放大器与片内时钟操作电路的输入端 |- | XTAL2 || 反向振荡放大器的输出端 |- | PG3 || I/O引脚,同时可作为32kHz晶振输入脚 |- | PG4 || I/O引脚,同时可作为32kHz晶振输入脚 |} === 复位电路 === AVR单片机是低电平复位,也就是说当AVR单片机的复位引脚有一个持续50ns的低电平的时候,AVR单片机就会复位。当按钮按下后,复位引脚被连到电源负极,当按钮松开后,复位引脚重新变为高点平,在按钮按下和松开这个过程一般至少持续100ms,这个时间足够产生令单片机的复位脉冲了。<br/> [[File:OpenM128-RST-Circuit.png|120px]] {| class="wikitable" |- ! <font color="Black">引脚名称</font> !! <font color="Black">描述</font> |- | nRST || 对应芯片的RESET引脚,低电平有效。 |} === 下载/配置电路 === 下载又有称烧写,是对单片机进行编程配置的过程。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]] {| class="wikitable" |- ! <font color="Black">引脚名称</font> !! <font color="Black">描述</font> |- | 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、视频、音频、智能识别、传感等功能模块都是做成这些通用的接口来直接接入各种单片机。如果这些功能模块都应用到你的单片机中,那么可以创造出怎么样的惊喜呢?! == 开发板基本操作 == === 上电和下载 === 按下图连接,接入下载器进行下载。<br /> [[File:OpenM128-debugger.JPG|600px]] == 入门实验 == 在下列入门实验中的都要给板子供电,并下载对应的例程。 === 2.2inch LCD_Display === '''程序说明'''<br /> *2.2寸彩屏显示 '''实验操作'''<br /> 【步骤】<br /> #<font color="red">取下</font>12864 JMP跳线帽 #接上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接口 #供电,并下载例程 【现象】<br /> *2.2寸彩屏会显示不同的色块 【照片】<br /> [[File:OpenM128-LCD22-1.JPG|200px|接入2.2寸彩屏]] [[File:OpenM128-LCD22-2.jpg|200px|现象]] <div class="sep10px"></div> === 2.2inch LCD_Touch === '''程序说明'''<br /> *2.2寸彩屏触摸实验 '''实验操作'''<br /> 【步骤】<br /> #<font color="red">取下</font>12864 JMP跳线帽 #接上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接口 #供电,并下载例程 【现象】<br /> *可以在2.2寸彩屏上触摸画画 【照片】<br /> [[File:OpenM128-LCD22-1.JPG|200px|接入2.2寸彩屏]] [[File:OpenM128-LCD22-Touch-1.jpg|200px|触摸画画]] <div class="sep10px"></div> === 8 Push Buttons === '''程序说明'''<br /> *检测8 Push Buttons<ref>[[8 Push Buttons]]:基于IO口控制的按键模块,查看[https://{{SERVERNAME}}/left_column/Accessory_Boards.htm?6.3 更多按键模块]</ref>按键的状态来控制对应LED的亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED JMP跳线帽 #接上8 Push Buttons #供电,下载例程 【现象】<br /> *分别按下K0~K7,LED有对应变化 【照片】<br /> [[File:OpenM128-8-Push-Buttons-1-1.JPG|200px|接上8 Push Buttons]][[File:OpenM128-8-Push-Buttons-2-1.JPG|200px|现象]] <div class="sep10px"></div> === 8 SEG LED Board === '''程序说明'''<br /> *通过I/O口来控制8 SEG LED Board<ref>[[8 SEG LED Board]]:基于I/O口控制的数码管模块</ref> 数码管的显示 '''实验操作'''<br /> 【步骤】<br /> #接上8 SEG LED Board到16I/Os接口 #供电,并下载例程 【现象】<br /> *8 SEG LED Board上4个数码管会有有规律的显示出数字和字母 【照片】<br /> [[File:OpenM128-8-SEG-LED-Board-1.jpg|200px|接入8 SEG LED Board]][[File:OpenM128-8-SEG-LED-Board-2.JPG|200px|现象]] <div class="sep10px"></div> === AD Keypad === '''程序说明'''<br /> *AD Keypad<ref>[[AD Keypad]]:16个按键,仅占用1个AD口</ref>上16个按键通过一个ADC接口来实现按键控制 '''实验操作'''<br /> 【步骤】<br /> #接上AD Keypad到ADC接口 #接上PL2303 USB UART Board (mini) 到USART0接口 #供电,并下载例程 #打开串口助手,选择对应的com口,波特率设置为9600 【现象】<br /> *串口助手窗口上会打印出从AD Keypad模块的按键值 【照片】<br /> [[File:OpenM128-ADC-1.jpg|200px|接入AD Keypad模块]] [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)]] [[File:ADC.png|200px|串口设置,并打印出AD Keypad按键值]] <div class="sep10px"></div> === I2C_AT24CXX === '''程序说明'''<br /> *I2C接口读写AT24CXX EEPROM<ref name="AT24CXX EEPROM Board">[[AT24CXX EEPROM Board]]:基于I2C接口的EEPROM模块</ref>的实验 '''实验操作'''<br /> 【步骤】<br /> #接上AT24CXX EEPROM Board到I2C接口 #接上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 【现象】<br /> *串口助手窗口上会打印出从EEPROM读写的数据 【照片】<br /> [[File:OpenM128-AT24CXX-1.JPG|200px|接入AT24CXX EEPROM Board]] [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)]] [[File:OpenM128-AT24CXX_3.png|200px|现象]] <div class="sep10px"></div> === I2C_PCF8563 === '''程序说明'''<br /> *I2C接口读写PCF8563 RTC Board<ref name="PCF8563 RTC Board">[[PCF8563 RTC Board]]:基于I2C接口的时钟模块</ref>时钟模块 '''实验操作'''<br /> 【步骤】<br /> #接上PCF8563 RTC Board到I2C接口 #接上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 【现象】<br /> *串口助手窗口上会打印出从时钟模块上的数据 【照片】<br /> [[File:OpenM128-PCF8563-1.JPG|200px|接入PL2303 USB UART Board和PL2303 USB UART Board (mini)]] [[File:PCF8563.png|200px|设置串口和打印出来的信息]] <div class="sep10px"></div> === IO_FT245 === '''程序说明'''<br /> *FT245 USB FIFO Board读写实验 '''实验操作'''<br /> 【步骤】<br /> #<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上 #将FT245 USB FIFO Board插入16I/Os接口,另外一端接到PC机 #供电,并下载例程 #打开串口助手,选择对应的com口,设置波特率为19200 【现象】<br /> *串口接收窗口会打印出1~9有序的字符串出来,用串口助手发送数据,如:cc,LED会对应地点亮。 【照片】<br /> [[File:FT245-2.jpg|200px]][[File:FT245-3.jpg|200px]][[File:FT245-1.jpg|200px]] <div class="sep10px"></div> === Interupt_KEY4 === '''程序说明'''<br /> *使用芯片外部中断(KEY4按键触发)来控制LED '''实验操作'''<br /> 【步骤】<br /> #接上LED_JMP跳线帽 #供电,下载例程 【现象】<br /> *按下KEY4按键,LED灯会根据KEY4累加按下的次数流水点亮 <br /> <div class="sep10px"></div> === JOYSTICK === '''程序说明'''<br /> *检测JOYSTICK按键的状态来控制对应LED的亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED JMP、JOYSTICK跳线帽 #供电,下载例程 【现象】<br /> *拨动JOYSTICK不同方向,LED有对应变化 【照片】<br /> [[File:OpenM128-JOYSTICK-1.jpg|200px|left|现象]] <div class="sep10px"></div> === KEY === '''程序说明'''<br /> *检测Key按键的状态来控制对应LED的亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED JMP、KEY JMP跳线帽 #供电,下载例程 【现象】<br /> *分别按下KEY1~KEY4,LED有对应变化 【照片】<br /> [[File:OpenM128-JOYSTICK-1.jpg|200px|left]] <div class="sep10px"></div> === LCD12864 === '''程序说明'''<br /> *通过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 /> #接上12864 JMP跳线帽 <font color="red">(注意:板子的VCC跳线帽须接入到3.3V,否则LCD电压过大、显示过亮,易烧坏)</font> #接上LCD12864到LCD接口 #供电,并下载例程 【现象】<br /> *LCD12864会显示“waveshare”字样 【照片】<br /> [[File:OpenM128-LCD12864-1.jpg|200px|LCD12864显示现象]] <div class="sep10px"></div> === LED === '''程序说明'''<br /> *使用芯片I/O口控制LED的亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED JMP跳线帽 #供电,下载例程 【现象】<br /> *8个LED会有亮灭变化 【照片】<br /> [[File:OpenM128-LED-2.jpg|200px|left|现象]] <div class="sep10px"></div> === ONE WIRE_DS18B20 === '''程序说明'''<br /> *通过One Wire口来检测温度传感DS18B20+<ref>[https://{{SERVERNAME}}/shop/DS18B20.html DS18B20+]:温度传感芯片</ref>上的温度 '''实验操作'''<br /> 【步骤】<br /> #接上DS18B20+到ONE WIRE接口 <font color="red">(注意:DS18B20+接入的方向不能接反,否则易烧坏)</font> #接上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 【现象】<br /> *串口助手窗口会打印出感应到的温度值 【照片】<br /> [[File:OpenM128-DS18B20-1.JPG|200px|接入DS18B20+]] [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)]] [[File:OpenM128-DS18B20-3.png|200px|串口设置和打印现象]] <div class="sep10px"></div> === PS2 === '''程序说明'''<br /> *键盘通过PS2接口接入使用 '''实验操作'''<br /> 【步骤】<br /> #接上PS/2 JMP跳线帽 #接上键盘到PS/2接口 #接上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 【现象】<br /> *串口助手窗口会打印出键盘输入字符 【照片】<br /> [[File:OpenM128-PS2-1.JPG|200px|接入带PS/2接口的键盘]] [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)]] [[File:OpenM128-PS2-3.png|200px|串口设置和打印出键盘输入值现象]] <div class="sep10px"></div> === SPI_AT45DBXX === '''程序说明'''<br /> *SPI接口读写AT45DBXX DataFlash Board<ref name="AT45DBXX DataFlash Board">[[AT45DBXX DataFlash Board]]:基于SPI接口的DataFlash模块</ref>外扩存储模块的实验 '''实验操作'''<br /> 【步骤】<br /> #接上AT45DBXX DataFlash Board到SPI接口 #接上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 【现象】<br /> *串口助手窗口上会打印出从DataFlash读写的数据 【照片】<br /> [[File:OpenM128-AT45DBXX-1.JPG|200px|接入PL2303 USB UART Board和AT45DBXX DataFlash Board]] [[File:OpenM128-AT45DBXX_2.png|200px|设置串口和打印出来的信息]] <div class="sep10px"></div> === SPI_Debug === === SPI_NRF24L01 === '''程序说明'''<br /> *NRF24L01无线通信实验 '''实验操作'''<br /> 【步骤】<br /> #需准备两个板子(一个作为发送信号 — <font color="red">TX</font>,另一个作为接收信号 — <font color="red">RX</font>),下例以两个OpenM128开发板为例 #将两个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连到电脑 #供电,并下载例程 #打开串口助手,选择对应的com口,设置波特率为9600 【现象】<br /> *串口助手会打印出接收信号的板子收到的从发送信号板子发出的信息 【照片】<br /> [[File:OpenM128-NRF24L01-1.jpg|200px|连接]][[File:OpenM128-NRF24L01-2.png|200px|现象]] <div class="sep10px"></div> === T_C0_LED === '''程序说明'''<br /> *使用芯片I/O口和定时器0(T/C0)来控制LED的亮灭 '''实验操作'''<br /> 【步骤】<br /> #接上LED_JMP跳线帽 #供电,下载例程 【现象】<br /> *8个LED会有亮灭变化 【照片】<br /> [[File:OpenM128-LED-2.jpg|200px|left|现象]] <div class="sep10px"></div> === USART === '''程序说明'''<br /> *'''USART0''':USART0接口自发自收实验 *'''USART1''':USART1自动连续发送字符“U” '''实验操作'''<br /> 【步骤】<br /> #接上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 【现象】<br /> *'''USART0''':串口助手上发送字符都可以直接在串口助手窗口上自收到 *'''USART1''':USART1自动发送“U” 【照片】<br /> [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)到USART0]] [[File:OpenM128-UART-1.jpg|200px|接入PL2303 USB UART Board (mini)到USART1]] [[File:USART0.png|200px|USART0自发自收]] [[File:USART1.png|200px|USART1自动发送“U”]] <div class="sep10px"></div> === USART_Printf === '''程序说明'''<br /> *通过USART0接口发送数据,并打印出来 '''实验操作'''<br /> 【步骤】<br /> #接上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 【现象】<br /> *程序自动发送数据,并在串口助手上显示出来 【照片】<br /> [[File:OpenM128-DS18B20-2.JPG|200px|接入PL2303 USB UART Board (mini)到USART0]] [[File:OpenM128-USART0-printf.png|200px|串口助手打印出数据]] <div class="sep10px"></div> == 相关资料 == <references/>
返回至
模板:OpenM128-Manual
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志