(教程2).LGT编程、编译、烧录、仿真的第一个范例:流水灯,
阅读本教程前,请先阅读: (教程1). LGT开发环境的建立(AVR Studio 4.19 + AVRGCC 20100110)本实验需要使用的工具:
1. LGT 专用 JTAG ICE 仿真下载器(不能使用AVR JTAG ICE)
2. LGT演示板
3. 外接电源(5V), 也可不接,因为JTAG的USB接口也能为演示板提供电力
4. 自行焊接8个LED指示器
LGT头文件可以在这里下载: (教程4) LGT的头文件(原AVR代码,仅需要修改头文件就改成LGT)
一、LGT编程,新建工程项目
AVR STUDIO 4.19里, Project --> New Project 建立新工程
项目类型选择 AVR GCC, 项目名称 test_01 放在 c:\amoLGT目录下
开发工具选择 JTAG ICE,芯片随便选择,无论 ATMELGA16 或 162 ,128 等均可。
(由于ATMEGA8没有JTAG ICE接口,故无法选择它)
点击“Finish”
将以下的代码COPY 到项目的 test_01.c 里。
熟悉AVR的人应该会狂喜: 下面的代码除了 #include <iolgt8f0xa.h> 这句头文件指向LGT外, 其它的所有语句,100%是与AVR相同的。
也就是说,AVR的代码,只需要修改一句头文件,就能立即应用于LGT上。
#include <io.h> // GCC的标准io.h
#include <iolgt8f0xa.h> // LGT的头文件
void delay_ms(int ms){ //纯粹是用死循环来实现延时,仅用于测试目的
int i;
for( ; ms >=1 ; --ms){
for(i = 0; i<250;++i){
asm("nop"); //引用汇编指令 "nop"
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
}
int main(){ //入口地址
int i=0; //用来做移动标志
DDRA = 0XFF; //设置A为输出模式
PORTA = 0XFF; //A端口全部输出为高电平.
delay_ms(250); //延时一会
PORTA = 0X00;
delay_ms(250);
while(1){ //超级循环
PORTA = 0X01; //开始右移.端口输出为OB0000 0001开始
for(i=0;i<8;++i){ //循环8次
delay_ms(250);
delay_ms(250);
PORTA = PORTA<<1; //端口右移一位
}
delay_ms(250);
delay_ms(250);
PORTA = 0X80; //开始左移.端口输出为OB1000 0000开始
for(i=0;i<8;++i){
delay_ms(250);
delay_ms(250);
PORTA = PORTA>>1; //端口右移一位
}
delay_ms(250);
delay_ms(250);
PORTA = 0XFF; //端口A输出为OB1111 1111
delay_ms(250);
delay_ms(250);
PORTA = 0XF0; //端口A输出为OB1111 0000
delay_ms(250);
delay_ms(250);
PORTA = 0X0F; //端口A输出为OB0000 1111
delay_ms(250);
delay_ms(250);
PORTA = 0XFF; //端口A输出为OB1111 1111
delay_ms(250);
delay_ms(250);
}
}
二、编译,生成仿真与烧录文件
进入菜单 Project ---> Configuration Options
General 选项中,唯一需要芯片的是芯片选 ATmega164P, 这点非常重要,不要选错,因为这一款LGT芯片(LGT8F08A)的寄存器位置是与 ATMEGA164P 相同的。
顺便检查一下(教程1)中描述的 Include Direcories 是否配置好
也顺便检查一下是否已经取消了 AVR STUDIO 4.19 的 AVR ToolChain, 并且已经重新指定了 avr-gcc.exe, make.exe 的位置:
Build --> Build All 编译
振奋人心的结果出来了!编译通过,生成了 test_01.elf 仿真文件,及 test_01.hex 烧录文件。
三、烧录(下载)
点击工具栏里的 CON(连接)按钮。
选择JTAG ICE 工具,我的电脑是影射到COM2端口(你可以选择 AUTO, 或自行到电脑硬件资料里查看映射的端口,或修改端口编号)
我们准备进行烧录,芯片型号随便选一个就行,不会影响烧录的结果。
烧录的文件指向刚才生成的地方:C:\amoLGT\test_01\default\test_01.hex
点击“Program” 出现烧录成功的信息:
关闭这个窗口, 然后按演示板上的 RESET 按钮, 就能看到流水灯的效果。
四、仿真
点击工具栏上的仿真开始按钮
其它仿真的按钮生效, 可以进行仿真操作!
坐等结果 围观~~~~~~~~~~~ 老大,有没有SSOP封装的,这个单价很诱惑人的。。。现在项目急需要找替代IC,如果单价合理,1-2KK的销量没有问题,方便直接电话联系不? rqiang 发表于 2012-4-14 23:28 static/image/common/back.gif
老大,有没有SSOP封装的,这个单价很诱惑人的。。。现在项目急需要找替代IC,如果单价合理,1-2KK的销量没 ...
抱歉目前只有 SOP28的封装。 我也知道这个封装对很多用户来说有点大。
迟些我们会提供更小的封装。 有实物照片吗? 好,密切留意中。。。 有其他独立的下载软件下载程序吗?要是换了其他开发环境,要怎么下载程序到单片机里面? 哈哈,开课了哦!
其实有很多原来AVR的C程序,是不是直接移植甚至烧原来编译好的HEX文件就可以了啊? 以前没学过AVR,但是看了两篇教程,开始爱上AVR了~~
期待套件早日发售 YRHeng 发表于 2012-4-14 23:58 static/image/common/back.gif
有其他独立的下载软件下载程序吗?要是换了其他开发环境,要怎么下载程序到单片机里面? ...
会推一个ISP量产工具,请留意。 logicgreen 发表于 2012-4-14 23:37 static/image/common/back.gif
有实物照片吗?
实物图片已经更新了。 原演示板没有LED,只好DIY了一个8位的LED指示器插到演示板上。 YRHeng 发表于 2012-4-14 23:58 static/image/common/back.gif
有其他独立的下载软件下载程序吗?要是换了其他开发环境,要怎么下载程序到单片机里面? ...
如果你懂AVR的话,不同的开发环境,对你不会是困扰。
如果你是新手的话,就老老实实的跟着我们用GCC吧。
GCC虽然是免费的,但它的性能与效率,并不比收费的差。而且, GCC是目前ATMEL官方首推的,它已经集成到AVR STUDIO 里了,试问一下:你不用GCC, 用其它是不是很傻很天真? Rainbow7 发表于 2012-4-15 00:01 static/image/common/back.gif
哈哈,开课了哦!
其实有很多原来AVR的C程序,是不是直接移植甚至烧原来编译好的HEX文件就可以了啊? ...
原来的AVR程序,你只需要修改一句头文件, 即: 修改成 #include <iolgt8f0xa.h> 然后重新编译,生成HEX码就能用于LGT。
zgxcom123 发表于 2012-4-15 00:02 static/image/common/back.gif
以前没学过AVR,但是看了两篇教程,开始爱上AVR了~~
期待套件早日发售
我写的范例你可以放心,超级的通俗易懂的 :)
继续跟进 结果不重要,我们在乎的是学会使用过程。 有一个演示视频更好。 密切留意中。。。 logicgreen 发表于 2012-4-15 00:31 static/image/common/back.gif
有一个演示视频更好。
这类的简单范例不必视频吧。只是几个灯闪来闪去而已,看懂程序就知道如何闪,看不懂的动手试一下也知道。 不错,不知道支持不支持avrdude和stk500下载工具,或者其它linux版本下载工具软件也行,主要我们现在生产编程都是用linux下的定制gui前端,调用avrdude及stm32loader等下载,好处是生产人员不可能搞错。 以前用的是icc,不过差不多。 elecboy 发表于 2012-4-15 07:31 static/image/common/back.gif
不错,不知道支持不支持avrdude和stk500下载工具,或者其它linux版本下载工具软件也行,主要我们现在生产编 ...
需要使用LGT专用的工具。
不过请放心,我们会以很优惠的价格供应。 很强大,如此简单的转换到LGT armok 发表于 2012-4-15 00:12 static/image/common/back.gif
原来的AVR程序,你只需要修改一句头文件, 即: 修改成 #include 然后重新编译,生成HEX码就能用于LGT ...
看你还单独写了一个延时程序,应该可以调用库的延时吧,包含#include <util/delay.h>,试试看是否可以调用——_delay_us(100)——_delay_ms(100)之类的? 还有到时候申请到样品,我来调试一下看是否可以调用ATMEL的TOUCH库啊,如果还可以做TOUCH,那就NB了,哈哈。 还在鼓捣AVR的人士 表示木有压力{:titter:}{:titter:} wzyllgx 发表于 2012-4-15 10:14 static/image/common/back.gif
看你还单独写了一个延时程序,应该可以调用库的延时吧,包含#include ,试试看是否可以调用——_delay_us ...
因为LGT指令周期快了,所以延时函数会偏小,请留意。 wzyllgx 发表于 2012-4-15 10:16 static/image/common/back.gif
还有到时候申请到样品,我来调试一下看是否可以调用ATMEL的TOUCH库啊,如果还可以做TOUCH,那就NB了,哈哈 ...
已经做了touch的应用,效果不错,抗干扰。 期待出IAR的范例,偶一般都用IAR来开发的。 128替换了吗 LGT的供货周期和出货稳定性怎么样?这才是最重要的 期待套件早日发售 可惜了还没有5V和TQFP32,继续关注 画了个TQF32封装的板子,看来要画个SOP28的板子了! 不错,有图有真相~ 啥时候开始供应样片来, jhdtry 发表于 2012-4-15 18:21 static/image/common/back.gif
啥时候开始供应样片来,
已经可以申请样片和工具。 iolgt8f0xa.h
头文件 哪有下载? 好的。。。。。支持,顶。。。。 uc_c++ 发表于 2012-4-16 08:21 static/image/common/back.gif
iolgt8f0xa.h
头文件 哪有下载?
(教程4) LGT的头文件(原AVR代码,仅需要修改头文件就改成LGT)
http://www.ourdev.cn/thread-5467210-1-1.html
刚开始学的有机会了 发现论坛的代码显示很整洁,老大写的很整洁啊 片子有点大呀! xiaobendan001 发表于 2012-4-16 09:42 static/image/common/back.gif
发现论坛的代码显示很整洁,老大写的很整洁啊
得益于新论坛的代码粘贴功能。(code) 有atmega48的替代品吗? logicgreen 发表于 2012-4-15 19:15 static/image/common/back.gif
已经可以申请样片和工具。
貌似没有申请到啊,有没有具体流程? 收藏,mark LED焊的很有意思,那个直插1K也换贴片就很整齐了{:biggrin:} 看代码源码 很有压力!
论坛对代码的显示能否优化下? uc_c++ 发表于 2012-4-16 08:21 static/image/common/back.gif
iolgt8f0xa.h
头文件 哪有下载?
重复发贴,扣100莫元处理。已经在你发的另一个主题里回复你了。 newbier 发表于 2012-4-15 11:21 static/image/common/back.gif
LGT的供货周期和出货稳定性怎么样?这才是最重要的
支持!对我们批量用户来讲,这个才是最重要的。 cortex m0应该比这个好吧?? rqiang 发表于 2012-4-16 14:26 static/image/common/back.gif
支持!对我们批量用户来讲,这个才是最重要的。
稳定压倒一切! 在提一个有点过分的建议:能不能后期为用户开发一个初始化自动配置软件 呵呵!{:lol:} 第51行代码的注释好像有问题吧 licongdwqx 发表于 2012-4-16 23:19 static/image/common/back.gif
第51行代码的注释好像有问题吧
哥们真是火眼呀! //复制了一下指令忘记改备注 处女版的教程出来了啊,等待评估。直接替换AVR 支持,顶。。。。
有点感觉了 如果有ssop就好咯都是小东西上面用的,想省板子空间,我每个月都要2K的呵呵 自己工厂。 呵呵 龌蹉一句:最好有出没有LOGO的! 老大,期待TQFP4方形封装的。正在努力学习中。 yy43102328 发表于 2012-4-19 19:58 static/image/common/back.gif
如果有ssop就好咯都是小东西上面用的,想省板子空间,我每个月都要2K的呵呵 自己工厂。 ...
建议你可以一次采购2年的数量,然后与我们谈一下,是否能供应没有LOGO的。 yy43102328 发表于 2012-4-19 19:58 static/image/common/back.gif
如果有ssop就好咯都是小东西上面用的,想省板子空间,我每个月都要2K的呵呵 自己工厂。 ...
如果有ssop就好咯都是小东西上面用的,想省板子空间,我每个月都要2K的呵呵 自己工厂。
羡慕ing! 以前都是用ICC,STUDIO中的编译器还没有用过呢,怎么不能编译呢? 不错,之前一直不太愿意学习AVR,主要是因为:AVR和51一样,都没法设置断点、单步调试(AVR的一个仿真器能买10个JLINK,买不起。。)
现在这个LGT,30块钱就可以使用仿真器单步调试了,,真是非常不错啊,,,可以下决心学习一下了。。。
只是可惜的是:这个仿真器不可以给原来的AVR单片机下载程序——我是不是太贪心了{:lol:}{:titter:} 关注,支持阿莫,偶也是avr的长期支持者了 老大提及:LGT芯片(LGT8F08A)的寄存器位置是与 ATMEGA164P 相同
我手上没有ATMEGA164P资料,其它型号反而有,能不能也一并放上来方便大家由此对照??? 支持
本帖最后由 lxvtag 于 2012-4-29 23:46 编辑
今天玩了一个下午,出现许多问题。(AVR Studio 4.17 + Winavr-20100110)
总结一下:
1.实验板下载完成后按照教程是按RESET键即可运行,我实际测试发现一定要重新上电才行,不知为何(一个更简单的方式是进入仿真模式,再退出,也可以立即运行)。
2.调试过程中有断开过10PIN扁平线的,一定要重新Connect (阿莫教程中的三、烧录(下载)部分),否则无法下载。
3.综合以上两点,调试的时候每次下载测试后都要重新Connect。
4.注意电源滤波,特别是像我一样加了稳压IC的,否则可能下载失败率非常高,而且无法仿真。
5.如果换了条数据线就经常下载不成功,很大可能性是电源滤波没做好。 本帖最后由 lxvtag 于 2012-4-29 23:11 编辑
藉此也建议官方演示板还有改版的话增加几个滤波电容,降低对电源的要求。
我买的是空板,串口座之类的都不打算装了,所以直接利用这个空间和电源焊点装个电解电容了。
背后装了两个瓷片电容
加上一个按键和一个LED就是实验板了,可以实验输入输出、PWM、外部中断等,基本足够了。 阿莫,对于LGT8和atmega164P寄存器完全相同这点我表示怀疑,我相信I\O端口寄存器是相同的,这个我也测试通过了,但是SPI相关寄存器应该是不同的,我尝试用ICCAVR的代码加上lgt的头文件,SPI方式驱动LCD5110失败了,也尝试过用bascom的代码,硬件SPI方式驱动LCD5110也失败了,证明两个芯片的SPI寄存器是不同的,回头进行ADC、PWM等相关测试,有了结果在汇报 {:biggrin:} 本帖最后由 yingmin_alex 于 2012-5-10 22:06 编辑
我在邮购部买了官方演示板的套件。本想还要买一个下载器的,但是没货了。
下载程序一定要用LGT官方的下载器吗?用AVR的isp下载器不能兼容吗?
如果非要买官方版的。请阿莫建议一下时isp下载器好还是仿真器好?
还要问一下下载器什么时候有货??
麻烦阿莫抽空解答一下。谢谢 点击program 后
OK
Reading FLASH input file.. OK
Setting device parameters for jtag programming ..OK
Entering programming mode.. OK
Erasing device.. OK
Programming FLASH .. FAILED!Leaving programming mode.. OK
怎么回事?
我在编程、编译、烧录这几步都没问题,就是仿真的时候,必须要保存并关闭当前的工程,重新打开该工程才能仿真,虽然没多大影响,但会比较麻烦,有没有什么好的解决方法呢?{:smile:} 第一眼看焊接的led很强大,很有创意,然后想到好像全部一起亮好像有问题的。然后就是想到做实验不用一起亮的哦。 一直觉得这个很高端。。。阿莫自主品牌。 IC设计,代工? 不错 才看到这个教程,是否有更详细的使用教程呢, 很期待更多的教程,谢谢 出现的问题 如下
Erasing device.. OK
Programming FLASH .. OK
Reading FLASH .. OK
WARNING: FLASH byte address 0x0000 is 0xFF (should be 0x0C).. FAILED!
Leaving programming mode.. OK
mathison 发表于 2013-10-28 11:34 static/image/common/back.gif
出现的问题 如下
Erasing device.. OK
Programming FLASH .. OK
问题已解决 目标版需要供电才可以 灰常好。。。。。。。。
页:
[1]