一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 15482|回复: 28
收起左侧

[avr] TurboKits 将usbasp,usbasp(LGT ISP),AVR-CDC三种功能的程序合并为单一的固件实现

  [复制链接]
发表于 2013-1-13 18:19 | 显示全部楼层 |阅读模式
平时我业余玩的芯片也就是stc,lgt,AVR.

   之前做了个"用lgt芯片做的usbasp",手里也有两套atmega8的usbasp编程器. 不过无论使用用bootload还是用跳线切换不同的固件都是挺麻烦的事, 所以一直想把usbasp avr, usbasp lgt, avr-cdc合并到一个固件中并通过上位机切换.这样用一块板子平时玩的芯片也就都能编程了.

   因为比较忙拖拖拉拉弄了2,3个月才弄完这个东西.



   readme.txt

TurboKits

最后更新 2013-1-13

TurboKits是将usbasp,usbasp(LGT ISP),AVR-CDC三种功能的程序合并为单一的固件实现.
避免使用不同功能需要刷不同固件或设置不同跳线的麻烦.

主要功能:
1.完整的usbasp.2009-02-28功能, 具体参考 http://www.fischl.de/usbasp/
2.完整的AVR-CDC功能,具体参考 http://www.recursion.jp/avrcdc/
3.基于usbasp协议实现的lgt单片机isp编程
4.基于以上三点支持广泛的单片机编程下载 (avr,lgt,stc,at89?,STM8(uart),STM32(uart)) :)
5.功能间无跳线切换

限制说明:
1.编程LGT单片机熔丝位时会擦除eeprom中的数据(当前硬件系统无法解决)
2.基于软usb的兼容与稳定性
3.串口发送数据时不能出现连续的"0x8F,0x8D,0x1A,0xAF,0xCB,0x69,0x19,0x5D,0x15,0xA9,0xCE,0x0E,0x3E,0xA1,0x2D,0x5B"否则会切换到最后的isp模式

安装说明:
1. bin\win-driver\libusb_1.2.4.0.rar 为usbasp模式的驱动
2. bin\win-driver\avrcdc_inf.zip 为avr-cdc的驱动(串口) 建议安装raw下的驱动

使用说明:
1.progisp172增加LGT支持
1) 打开 "bin\编程器附加文件\progisp172" 目录
2) 将"追加_config.xml"文件中的内容复制到progisp172软件config.xml文件尾部
3) 复制eng目录到progisp172软件内
4) 芯片选择LGT8F08A即可

2.avrdude增加LGT支持
1) 打开 "bin\编程器附加文件\avrdude" 目录
2) 将 "avrdude.conf" 文件中内容复制到自己的avrdude "avrdude.conf" 文件尾部
3) 例子命令 avrdude -p lgt8f08a -c usbasp -U flash:w:"R:/test_firmware.hex":i

3.功能切换
1) 插入设备并识别后打开上位机软件Ctrl.exe
2) 当usbasp模式切换到其它模式时可通过按钮 "usbasp to usbasp lgt" usbasp lgt isp模式,
"usbasp to usbasp avr" usbasp avr isp模式,usbasp to cdc232 到虚拟串口
3) 当usbasp模式时可使用"get current mode" 命令按钮查看当前模式
4) 从cdc232切换回usbasp模式时使用的usbasp模式为最后一次设置的usbasp模式 命令按钮为
"cdc232 to last usbasp"
5) 切换完成后红色,绿色LED会一起闪烁此时拔下设备再重新插上设备即可

TODO:
STC 自动冷启动

已测试:
STC
STC15F104E STC15F204EA 编程测试完成 stc-isp-15xx-v6.21,V4.88 9600-57600 bps
STC12C5A60S2,STC12C5A32S2 编程测试完成 stc-isp-15xx-v6.21,V4.88 9600-57600 bps
STC89C52RC 编程测试完成 V4.88 9600-38400 bps
LGT
LGT8F08A-16C 120319(工程测试样片)
AVR
ATMEGA8-16PU 3.3V 与 5.5V 电平均测试通过

感谢:
usbasp http://www.fischl.de/usbasp/ (usbasp2功能实现与上位机通讯协议)
avrcdc http://www.recursion.jp/avrcdc/ (cdc232功能实现)
v-usb http://www.obdev.at/products/avrusb/
avrdude http://www.nongnu.org/avrdude/
libusb http://libusb.sourceforge.net/
libusb-win32 http://libusb-win32.sourceforge.net/
progisp http://www.zhifengsoft.com




网盘下载 http://pan.baidu.com/share/link?shareid=134720&uk=2919284982


TurboKits_2013-1-13_beta.rar (493.22 KB, 下载次数: 7172) 本地下载

stc支持
stcisp1.jpg

stcisp2.jpg

stcisp4.jpg

stcisp3.jpg

串口1.jpg

串口2.jpg

lgt支持

progisp172_1.jpg

progisp172_2.jpg

progisp172_3.jpg

progisp172_4.jpg

上位机
上位机.jpg

上位机lgt.jpg

上位机串口到usbasp.jpg

硬件_lgt编程.jpg

硬件_等待插拔.jpg

评分

参与人数 1一乐金币 +100 收起 理由
无锡风 + 100 创意很好——只是,我笨! 还没有看懂具体 ...

查看全部评分

发表于 2013-1-13 18:31 | 显示全部楼层
很牛B的技术!
发表于 2013-1-13 19:06 | 显示全部楼层
厉害,越来越牛了,顶老哥。
发表于 2013-1-13 19:41 | 显示全部楼层
高手在民间呀!
发表于 2013-1-13 19:47 | 显示全部楼层
平时我业余玩的芯片也就是stc,lgt,avr.   之前做了个"用lgt芯片做的usbasp",手里也有两套atmega8的usba ...
goodcode 发表于 2013-1-13 18:19 https://www.yleee.com.cn/images/common/back.gif

很有意思的帖子。
谢谢!
只是,我不清楚,“用lgt芯片做的usbasp”,是什么?

我手里,只有 atmega8的usbasp编程器,能否实现??
   
发表于 2013-1-13 20:21 | 显示全部楼层
很有意思的帖子。
谢谢!
只是,我不清楚,“用lgt芯片做的usbasp”,是什么?
我手里,只有 atmega8的 ...
无锡风 发表于 2013-1-13 19:47 https://www.yleee.com.cn/images/common/back.gif



    LGT貌似就是能用ATMEGA8之类的正牌HEX,不用修改烧进去直接就用,兼容啥来着。
发表于 2013-1-13 20:33 | 显示全部楼层
请问主控能直接用ATMEGA8代换吗?
发表于 2013-1-13 20:36 | 显示全部楼层
看了一下和ATMEGA8的引脚不一样看来是代不了的。可惜手头没有LGT的片子
发表于 2013-1-13 21:07 | 显示全部楼层
LGT,阿莫搞的片子……
发表于 2013-1-13 21:10 | 显示全部楼层
LGT貌似就是能用ATMEGA8之类的正牌HEX,不用修改烧进去直接就用,兼容啥来着。
199003326 发表于 2013-1-13 20:21 https://www.yleee.com.cn/images/common/back.gif


LGT单片机是阿莫电子论坛版主armok(阿莫)最早于2012-4-6提及并发布的一种极低成本的低档8位通用单片机,基于RISC精简指令集),其指令集和总线结构源于改进的AVR单片机结构。

LGT8F0XA系列单片机概述    LGT8F0XA是基于增强的8位低功耗MVR8X RISC三级流水线构架设计。由于其先进的指令集以及单时钟周期指令执行时间,LGT8F0XA 的数据吞吐率高达 1MIPS/MHz,从而可以平衡系统在功耗和处理速度之间的矛盾。LGT8F0XA引入的独特的电源设计方法,从而在系统待机功耗方面比同类产品有更加优异的表现,系统中为低功耗设计集成一个内部1KHz RC振荡器和电源管理模块,能够在系统空闲的时候由软件选择进入待机模式,在最高级别的待机模式下,电源管理系统将关闭系统工作电源,仅保持1KHz RC和电源管理模块的工作,从而实现微安级的待机功耗。
    LGT8F0XA基于EFLASH工艺设计,可以提供8KB/4KB/2KB/1KB四种不同的型号供选择,LGT8F0XA集成了504字节内部数据FLASH以及EEPROM控制器单元,实现一个更加简易的EEPROM访问接口。同时LGT8F0XA也集成了256/512字节的SRAM,可以让用户在实现不同应用时有更多的灵活性。

MVR8X内核    MVR8X内核具有丰富的指令集和 32 个通用工作寄存器,其中R26~R31可组合为三个16位通用寄存器X/Y/Z。MVR8X内部集成一个单周期的8X8乘法器,可以胜任简单的数据运算;MVR8X针对中断响应进行了特别的优化,可以在中断发生后3个周期内进入中断服务程序,中断完成后,仅需2个周期便可从中断返回。MVR8X同时也对I/O控制系统进行了更大的优化,并具有针对I/O直接操作的指令,可以仅仅使用一条指令,一个周期完成对单个I/O或一组I/O的读、写操作,这些特点使得MVR8X构架的MCU比同类型任何MCU更加适合控制类的应用。MVR8X内核实现了片上调试功能,用户可以通过双线SWD接口以及专用的USB调试器,配合业界成熟的开发环境,轻松的实现产品的研发与调试。

存储单元    LGT8F0XA系列MCU最多集成了8KB EFLASH,504字节的数据FLASH,可以实现E2PROM功能。用户可通过ISP在线编程工具实现对FLASH的读写访问。LGT8F0XA中集成了E2PROM接口控制逻辑,用户可以像访问SRAM一样访问E2PROM功能,提高了读写以及擦除操作的效率,同时也减少了实现E2PROM功能所需的代码量。

数据保护    LGT8F0XA实现为保护用户程序代码实现了接口加密功能,用户在编程完成后,可以通过设置LOCK位,禁止ISP以及SWD接口访问EFLASH以及E2PROM的功能,LOCK位禁止ISP后,必须通过整片擦除操作才能恢复FLASH以及E2PROM区域的读写操作。

时钟源    LGT8F0XA内部集成了一个低温漂,误差±1%的16MHz RC振荡器,配合内部分频器,可以为系统运行提供16MHz, 8MHz, 4MHz, 2MHz, 1MHz最低至125K的8种运行频率,满足不同应用的需求,节省了外部晶振。同时内部也集成了一个低功耗的1KHz RC振荡器,可以在低功耗模式下维持系统的工作,用户可选择关闭16MHz RC振荡器,这样可以在系统运行的同时,得到更低的功耗。对于特殊的需求,LGT8F0XA也支持外部晶振,这样用户可以禁用内部16MHz RC振荡器,完全依赖外部晶振工作。

模数转换器/模拟比较器    LGT8F0XA全系列都集成了一个10bit 250KSPS采用率的SAR-ADC模数转换器,通过配置内部的ADC转换控制器,可以实现非常灵活的自动触发转换功能。LGT8F0XA全系列内部也实现了一个两通道的模拟比较器,可以高速精准的判断两路模拟输入电压的细微差别,对一些需要快速电压检测的电路十分有效。LGT8F0XA内部有一个1.25V的参考电压源,可以为SAR-ADC以及模拟比较器提供内部参考输入。模拟比较器的输入可以为两路专用的外部输入,也可以来自SAR-ADC的模拟输入,这样可以十分方便的实现对两通道模拟比较器的更多通道扩展,满足更为复杂的应用。

USART/USPI    LGT8F0XA USART是一个通用的串行控制器,支持通用的PC串口协议,可以通过串口实现与PC以及其他UART外设之间的通讯,USART同时也支持并行模式,在并行模式下,用户可以实现SPI协议,通过相关的寄存器配置,选择并行模式下的SPI工作于主模式或从模式。通过SPI接口,用户可以实现对更多外设的兼容。

定时器/PWM    LGT8F0XA实现两个多功能定时器,分别具有独立的定时预分频器,可以保证两个定时器的同时独立工作。定时计数器宽度分别为8位,16位;可以满足不同的应用需求。定时器实现了通用的输入俘获,比较器输入等功能。通过对定时器的配置,可以轻松的实现三路PWM脉宽调制输出。为实现PWM相关的控制器算法提供了更加实用的解决方案。

看门狗定时器    LGT8F0XA WDT是一个16位宽的看门狗专用定时器,可以通过预分频实现从1ms到512ms的宽范围复位间隔宽度。MVR8X内核实现了一个专门用于WDT复位的WDR指令,用户可以使用WDR指令方便的进行‘喂狗’操作。

通用可编程I/O    LGT8F0XA的端口中除去2个电源I/O,所有的其他I/O都可以工作在GPIO模式下,配合MVR8X独有的高效I/O操作指令,可以让用户用更少的代码,实现复杂的设计,这是其他同类MCU所不具备的。

LGT8F0XA系列单片机参数    先进的RISC构架    ·3级流水线设计
    ·131条指令, 大多数指令执行时间为单个时钟周期,部分为2个时钟周期[1]
    ·32个8位通用工作寄存器
    ·工作于16MHz时性能高达16MIPS
    ·单周期的硬件乘法器(8×8)
    非易失性程序和数据存储器    ·8K/4K/2K/1K字节系统内可编程FLASH
    ·数据保护功能
    ·504字节数据FLASH, 支持字节读写(EEPROM)
    ·256/512字节片内SRAM
    ·独立的用户数据区实现系统配置功能
     SWD双线调试接口
    ·支持扩展的片内在线调试功能
    ·通过SWD接口实现对FLASH, EEPROM, 系统配置区的编程
    外设特点    ·8通道10bit 250KSPS模数转换器(ADC)
    ·2通道模拟比较器,支持ADC通道输入功能
       ·一个具有独立预分频和比较器功能的8位定时器/计数器
       ·一个具有预分频器, 比较器功能和捕捉功能的16位定时器/计数器
    ·三通道PWM脉宽调制控制器
    ·可编程同步/异步USART
    ·可工作于主/从模式的SPI串行接口
    ·可编程看门狗定时器
    ·最多25个可编程I/O (LGT8F08A)
    处理器特色功能    ·每个芯片具有独立的32位GUID
    ·具有掉电保护功能的片内POR
    ·±1%精度16MHz内部低温漂RC振荡器
    ·1KHz低功耗RC实现更低的待机功耗
    ·片内/片外中断源
    ·4种睡眠模式: 内部电源设计实现uA级待机功耗, 可通过外部专用I/O或内部1KHz RC唤醒
    封装类型    ·LGT8F08A – SOP28L
    ·LGT8F04A – SOP24L/SSOP24L/SOP20L/SSOP20L
    ·LGT8F02A – SOP14L
    ·LGT8F01A – SOP8L
    速度等级    ·0 ~ 8MHz @1.8V ~ 3.0V
     ·0 ~16MHz @3.0V ~ 3.6V[2]
发展过程    LGT单片机最初的宣传特点如下:
    1. 内部的资源,如ADC,PWM,串口,RC等, 与ATmega8 相似(甚至是一致)
    2. 运行代码的效率与速度一致,甚至某些地方比 ATmega8 快
    3. 原AVR代码几乎不需要改动,就能立即转到这款芯片上使用。
    4. 仍可使用大家熟悉的 AVR Studio,GCC,ICC,CVAVR, IAR 进行开发.
    5. 熟悉AVR的人,不用5分钟就能完成学习与切换到新芯片上开发。
    6. 封装有SOP28L/SOP20L/SOP14L/SOP8L 可供选择。
    7. 工作电压是1.8V-3.6V(也有5V的版本), 工作频率是8MHZ或16MHZ。有一个全工作电压范围的温度修正RC,精度为1%,可直接用RC实现串口通讯。如果有偏差也是可以用串口来修正(软件可调)。还有这个芯片可以跑到32MIPS@32Mhz 外部晶振,这个在需要高速的朋友来说无疑是一个好消息。STM8S按atasheet 说是可以跑20MIPS@25Mhz
    8. 稳定性、可靠性承诺与STC差不多。
    9.最重要一点: 由我们网站进行技术支持,并且邮购部能提供充足的货源。
    10. 预期的零售价是1.99元。 大批量使用可以再谈。
    11. 这个芯片的真正目标不是AVR,而是STC。

LGT单片机解密    LGT单片机采用ATMEL加密技术,加密性超强,指令代码完全兼容传统AVR,但速度快6-12倍。内部集成高精度R/C时钟,±1%温漂,常温下温漂5%0,5MHz~35MHz宽范围可设计,可彻底外部昂贵的晶振。内部高可靠复位,8级可选复位门槛电压,可彻底省掉外部复位电路。
紫外线光技术,是一个非常流行的一种方法,也是最简单的一种时间快、像我们一样只要30至120分钟出文件、成本非常低样片成本就行。首先将LGT单片机的 Config.(配置文件)用烧写器保存起来,再用硝酸熔去掉封装,在显微镜下用不透光的物体盖住eeprom处,紫外线照在加密位上10到120分钟,加密位由0变为1就能用编程器将程序读出。(不过它有个缺陷,不是对每颗LGT都有效)



参考资料 扩展阅读:

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-1 10:17 , Processed in 0.055385 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表