如何为Atmega16或Atmega32处理器开发自己的开发板

电子说

1.2w人已加入

描述

步骤1:电路板

ATmega16

ATmega16

两个电路板上都有电路,并且pdf文件包含这些电路板上的打印文件。您可以从这些图片中蚀刻板。压缩文件包含这些板上所有的Eagle文件。随意修改这些内容。

步骤2:蚀刻或铣削

ATmega16

ATmega16

有两种方法制作这些板,蚀刻或铣削。我不是化学家,所以我使用了最后一个选项。我是从这些出色的指令中学而来的,所以如果有人也有nc-mill并且想用它来制造这些电路板,请告诉我,我将发送G代码。

《物体高度= “ 344” width =“ 425”》

《嵌入高度=“ 344” src =“//www.youtube.com/v/47LjZ4XLYWA” type =“ application/x-shockwave-flash” width = “ 425” wmode =“ transparent”》

步骤3:焊接

ATmega16

ATmega16

下面的图片将显示组件的名称及其在板上的位置。

第4步:测试

ATmega16

在测试我们的开发板之前,我们将需要AVR编程器电缆。这是有关编程电缆的很好的指导。我们只需要6根电线。 SCK,MISO,MOSI,RST,接地和+ 5V,这就是为什么我的连接器只有6个引脚的原因。重要! SCK,MISO,MOSI和RST信号需要390 Ohm电阻器,这些电阻器通常焊接在板上,但是我想节省板上的空间,这就是电阻器位于电缆内的原因。没有这些电阻,将无法进行编程。

我们还必须在rs232模块和主板之间做一条电缆。

图片中还有几条“测试线”,当我们准备使用时,这些线真的很有用

步骤5:编程和简单测试程序

ATmega16

下一步,我们将需要一些用于测试董事会的“测试”程序。结果重要!我们必须从PORTC禁用JTAG,否则我们将无法使用LCD模块,因此这是必要的。

在Linux操作中,可以使用avrdude命令执行该操作:

avrdude -p m16 -c stk200 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m

此命令禁用JTAG并设置和使用8Mhz内部振荡器。我们的板上有外部晶体,但是人们使用不同大小的晶体,因此此命令对所有人都安全。如果您想使用外部晶体,这里是计算正确保险丝的站点。

重要!进行熔丝编程时要小心。如果您设置了错误的保险丝值,则处理器将无法工作。有一种方法可以通过外部脉冲恢复它,但是希望您不必这样做=)

简单的测试程序:

#include(avr/io.h)

int main(void )

{

DDRA = 0xff;//将端口设置为输出

DDRB = 0xff;

DDRC = 0xff;

DDRD = 0xff;

PORTA = 0x00;//禁用所有上拉电阻

PORTB = 0x00;

PORTC = 0x00;

PORTD = 0x00;

}

现在是时候给电路板加电并将这个小的测试程序发送到Winavr或您想使用的产品。

现在,我们可以测试我们的端口是否正常工作。将一端从电线连接到一个led针头,然后逐步触摸每个端口的另一端。 led应该每次发光。如果不发光,则说明焊接有问题。记住还要测试每个led都可以工作。

步骤6:测试串行端口

ATmega16

ATmega16

如果一切正常,则该测试rs232模块了。有一个小程序可以测试我们的TX和RX是否工作。

在Linux中的用法:

创建名为Makefile的文件,并在文件中的文本下方复制。

Makefile代码假定您正在使用Atmega16并且您的编程电缆为stk200

请记住,请为您的串行端口/dev/ttyS0

CC =/usr/bin/avr-gcc

CFLAGS = -g -Os -Wall设置正确的权限-mcall-prologues -mmcu = atmega16 -std = gnu99

OBJ2HEX =/usr/bin/avr-objcopy

AVRDUDE =/usr/bin/avrdude

TARGET = test

程序:$(TARGET ).hex

$(AVRDUDE)-p m16 -P/dev/parport0 -c stk200 -u -U flash:w:test.hex

%.obj:%.o

$(CC) $(CFLAGS)$ 《-o $ @

%。hex:%.obj

$(OBJ2HEX)-R .eeprom -O ihex $ 《$ @

clean:

rm -f * .hex * .obj * .o

下载atteched文件serial.c,并将其放在Makefile所在的文件夹中。

给开发板加电,并在rs232模块和主板之间插入电缆。模块上的LED现在应该点亮。将测试线放在PA0引脚和某些LED引脚之间。

使用您的终端,并转到test.c和Makefile所在的文件夹。将ISP编程器连接到板上。现在是时候在处理器中发送代码了,它是通过终端命令执行的:制作

下载名为GTKterm(Serial Port Terminal)的软件。Fedora:yum install gtkterm

Ubuntu:sudo apt-get install gtkterm

启动GTKterm并将其格式化为使用9600Kbs的速度,8个数据位,1个停止位,无奇偶校验,无溢出。

如果一切正常,则应写“ works!”。在GTKterm屏幕上,当您按下“ z”按钮时,当您按下“ x”按钮时,板上的LED应该打开,当您按下“ c”时,其LED应该关闭。

步骤7:LCD模块测试

ATmega16

ATmega16

现在是时候测试我们的LCD模块了。我附上了用于控制LCD屏幕的出色软件。我从Scienceprog.com下载了代码,并对其进行了少许修改。使用此代码对处理器进行编程,然后将LCD模块插入板上。

LCD模块引脚连接:

1 = VSS(接地)

2 = VDD(5V)

3 = VO(接地)

4 = RS

5 = R/W

6 = E

11 = PC4

12 = PC5

13 = PC6

14 = PC7

我的LCD -module包含2个连接器(请参见图片),因为如果按原样放置模块,文本将上下颠倒。我将新的连接器镜像并粘贴到另一侧。现在,它可以双向使用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分