应用笔记:使用ICCAVR快速开发LGT8F88A - 详细教程
文档包含的内容:1. ICCAVR的安装,配置以及使用方法
2. 与ICCAVR配套使用的程序下载方法
SWDICE_mkII + LGTMix_ISP的使用方法
SWDICE_mkII + avrdude的使用方法
3. 如何将avrdude与ICCAVR无缝连接
4. LGT8F88A的系统时钟配置程序示例
太给力了~~
正需要这个,楼主再接再厉 楼主,出一个LGT的时钟和外设配置生成软件吧。就跟ICCAVR的向导一样~~
这样就不需要记住很多寄存器了。 STM32_Study 发表于 2013-12-21 22:58
楼主,出一个LGT的时钟和外设配置生成软件吧。就跟ICCAVR的向导一样~~
这样就不需要记住很多寄存器了。 ...
很早之前就有这种自动生成配置的想法,当时想的是一个大的自动化系统,包括了配置,编译,下载,调试等等,
结果因为太复杂就放弃了, 不过这个想法的确值得好好研究,如果能找到一个好的实现方法,值得去做。
就类似ARM牵头搞的mbed一样,这个值得去做! LGT 发表于 2013-12-21 23:05
很早之前就有这种自动生成配置的想法,当时想的是一个大的自动化系统,包括了配置,编译,下载,调试等等 ...
我觉得没必要贪多贪全,这样往往最后什么也做不好
就做自动生成配置,这个简单,你们工程师熟悉寄存器,做起来也容易。
编译部分,每个客户选用的都不一样,IAR、GCC、ICC、AVRStudio,这个我觉得没必要再早轮子了。也不会比他们做得更好
下载已经有LGTMix ISP
调试就是编译环节的那几个即可~~
现在最缺的就是自动生成配置。有了这个,新用户才好入门。大家都很忙啊,哪里有那么多时间来学习研究寄存器~~ 可以说,自动生成配置的软件框架,稍微懂一点上位机编程的工程师就能做出来的。所以关键在于熟悉寄存器的配置,要做这些逻辑而已
这个对你们原厂来说,难度应该很小的。{:lol:} 支持楼主,再接再厉哦。{:smile:} 08A和88A的使用过程一样吗?现在推出的新教程都在介绍88A,手头有08A下载程序什么的都一样吗?{:smile:} STM32_Study 发表于 2013-12-21 23:10
我觉得没必要贪多贪全,这样往往最后什么也做不好
就做自动生成配置,这个简单,你们工程师熟悉寄存器, ...
我们的想法也不是要重新设计一套工具,而是想把他们很好的整合起来,简化开发流程。
不过你说的对,工具的功能多了,工具本身的复杂性也需要考虑;
我们会提供一个方便,高效的代码生成工具,敬请期待! laotui 发表于 2013-12-22 00:30
08A和88A的使用过程一样吗?现在推出的新教程都在介绍88A,手头有08A下载程序什么的都一样吗? ...
08A的稍有区别,这个考虑单独提供一个文档介绍。 laotui 发表于 2013-12-22 00:30
08A和88A的使用过程一样吗?现在推出的新教程都在介绍88A,手头有08A下载程序什么的都一样吗? ...
08A的话,如果是用SWDICE_mkII,基本上和88A的开发流程是一样的, 不同点有两处:
1. 如果是LGT8F08A, Target device选择:ATMega162
2. 如果是用avrdude下载,命令为:avrdude -F -cjtag2isp -pm162 -Pusb -Uflash:w:Project.hex:i
需要注意的是,SWDICE_mkII只能读写LGT8F08A的FLASH内容,如果要修改熔丝位和E2PROM的内容,需要用08A的专用ISP烧写器:
http://www.mailshop.cn/images/products/big/image_big_10978DTCN9E_2010.jpg 好资料,谢谢楼主分享。 STM32_Study 发表于 2013-12-21 23:10
我觉得没必要贪多贪全,这样往往最后什么也做不好
就做自动生成配置,这个简单,你们工程师熟悉寄存器, ...
绝对同意! LGT 发表于 2013-12-22 11:55
08A的话,如果是用SWDICE_mkII,基本上和88A的开发流程是一样的, 不同点有两处:
1. 如果是LGT8F08A, T ...
LGT8有两种ISP?我记得有一种ISP和一种仿真器啊。顺便简单介绍下仿真器和下载器吧,我理解的是下载器只能下载+写熔丝,仿真器能仿真+下载+写熔丝,对吗? hall 发表于 2013-12-24 15:57
LGT8有两种ISP?我记得有一种ISP和一种仿真器啊。顺便简单介绍下仿真器和下载器吧,我理解的是下载器只能 ...
基本正确:
ISP烧写器只有一种,而是是给LGT8F08A专用的。
调试器也只有一种,所有LGT 8位MCU通用。
LGT8F08A由于历史原因,没有做到让调试器也可以作为完整的ISP烧写器使用,所以只能用那个专用的ISP工具烧写FLASH,E2PROM和熔丝
后面的MCU,包括LGT8F88A, 只要一个调试器就够了,可以调试用,也可以做ISP下载器用。 LGT 发表于 2013-12-22 11:31
我们的想法也不是要重新设计一套工具,而是想把他们很好的整合起来,简化开发流程。
不过你说的对,工具 ...
真心期待,小工具解决大问题。。。。。。 LGT 发表于 2013-12-24 21:31
基本正确:
ISP烧写器只有一种,而是是给LGT8F08A专用的。
明白了 非常感谢 LGT 发表于 2013-12-24 21:31
基本正确:
ISP烧写器只有一种,而是是给LGT8F08A专用的。
“基本正确” “没有做到让调试器也可以作为完整的ISP烧写器使用,所以只能用那个专用的ISP工具烧写FLASH,E2PROM和熔丝”这两句话不是冲突吗? 调试器到底能不能用来烧写FLASH,E2PROM和熔丝? 天语 发表于 2013-12-25 09:58
“基本正确” “没有做到让调试器也可以作为完整的ISP烧写器使用,所以只能用那个专用的ISP工具烧写FLASH ...
E2P和FLASH可以用SWD写。FUSE只能用ISP写。 xwkm 发表于 2013-12-25 10:15
E2P和FLASH可以用SWD写。FUSE只能用ISP写。
这样啊,那就是说88A系列的可以配置熔丝位了。 天语 发表于 2013-12-25 10:32
这样啊,那就是说88A系列的可以配置熔丝位了。
88A并没有熔丝需要设置的:
1. 88A使用了默认加密的方式,不需要LOCK位,所以使用时不需要考虑加密的设置,芯片烧写程序后,下次上电就是已经加密的。
2. 88A的时钟配置是通过PMCR寄存器,与熔丝无关,(具体可以参考本贴一楼的文档中最后一章节)
3. 88A的RC校准是出厂校准的,也不需要重新设置
4. 88A的BOR的配置,是可以通过熔丝的方式设置的,但是也可以通过寄存器设置,具体可以参考:LGT8F88A databook中【系统控制与复位】章节关于VDTCR寄存器的介绍。
因此,使用88A完全可以不考虑熔丝的问题。 目前LGTMix_ISP工具中,没有开放对88A熔丝的设置功能,如果后面开放,应该也只有在通过熔丝设置BOR时才需要。 早就应该给了。。。。 LGT 发表于 2013-12-25 10:45
88A并没有熔丝需要设置的:
1. 88A使用了默认加密的方式,不需要LOCK位,所以使用时不需要考虑加密的设置 ...
明白.后续产品应该也是这样的。 搞下来,研读一下··· void delays(unsigned int cy)
{
unsigned int i;
for(i = 0; i < cy; i++) {
NOP(); NOP(); NOP(); NOP();
NOP(); NOP();
}
}
// cm : clock source select
// CLK_32MRC : internal 32MHz RC
// CLK_32KRC : internal 32KHz RC
// CLK_MOSC : external 400K~32MHz crystal
// CLK_KOSC : external 32K~400K crystal
// cps : clock per-scalar
// CLK_DIV0 : no scalar
// CLK_DIV2 : clk/2
// CLK_DIV4 : clk/4
// CLK_DIV8 : clk/8
// ...
// CLK_DIV256: clk/256
void clock_init(unsigned char cm, unsigned char cps)
{
volatile unsigned char ctmp;
PMCR = 0x80; // PMCE enable
PMCR |= cm; // enable clock source
delays(32);
ctmp = PMCR;
ctmp &= 0x9f;
if(cm == CLK_MOSC)
ctmp |= 0x20;
PMCR = 0x80; // PMCE enable
PMCR = ctmp; // set clock source
delays(1);
// configure clock pre-scalar
CLKPR |= 0x80;
CLKPR |= cps;
delays(1);
}
我想把时钟改为外部的12M晶振,可总是有问题,能帮我看一下问题出在那吗? han88889 发表于 2014-1-8 10:48
void delays(unsigned int cy)
{
unsigned int i;
如果只是切换到外部高速晶振,可以用下面更简洁的代码,
你用这个代码测试下,测量下晶振有没有起振:
void clock_init(unsigned char cps)
{
PMCR = 0x80; // PMCE enable
PMCR |= 0x4; // enable external high speed crystal i/o
delays(32);
PMCR = 0x80; // PMCE enable
PMCR = 0xA5; // set clock source
delays(1);
// configure clock pre-scalar
CLKPR |= 0x80;
CLKPR = cps;
delays(1);
} 谢谢,问一下,因为莫老大这没有放LGT8F88A的片子,我在你们淘宝上买的是量产的片子,还是工程样片? han88889 发表于 2014-1-9 14:41
谢谢,问一下,因为莫老大这没有放LGT8F88A的片子,我在你们淘宝上买的是量产的片子,还是工程样片? ...
是量产的片子。 mark。。。。。 Nice controller , can we get 32K ROM in this model LGT啥时能出双串口的片子呀。 谢谢,分享!Thanks!
页:
[1]