LGTISP--LGT单片机下载器

8个月前

简介:一款低成本的lgt8f328p单片机下载器

开源协议: Public Domain

描述

top.jpg

bottom.jpg

本项目是LGT8Fx8P/D的编程器,用于将固件(.hex/.bin)烧录到LGT8Fx8P/D芯片中

简介

  • 硬件上支持烧录LGT8Fx8P/D芯片
  • 单片机带有bootloader,可以方便地升级本编程器的固件,你可以使用我的固件(仅支持LGT8Fx8P、未断电时支持读取flash),或者官方的固件,甚至你自己编写的固件
  • 引脚定义兼容最新的官方仿真器(SWDICE mkII v2.0)
  • 除了显示状态的LED灯、USB插头、编程插座外,所有元件放置在底层,顶层有详细的丝印说明。美观
  • 有电源(POWER)、运行(RUN)、错误(ERROR)三个状态指示灯,方便观察烧录过程
  • 兼容AVR ISP下载协议,上位机可以把它看成AVR ISP来使用
  • 在不断电的情况下可以读取flash内容(官方编程器没有此功能!)
  • 可以读取芯片的唯一ID(官方编程器没有此功能!)
  • 重磅!!!破解了lgt单片机不能读取flash的神话!!!目前可以读取 除了前1k之外 的所有flash,但是会擦除前1k flash(官方编程器没有此功能!)
  • 我的固件支持mega328p,将我的固件烧入Arduino Nano等板子,同样可以使用
  • 我的固件在github上开源!
  • 低成本

电路说明

schematic.png 本编程器基于Arduino设计。 本编程器采用USB转串口+lgt8f328p单片机的方案。 USB转串口芯片可以使用CH340C,建议使用CH340G+12MHz晶振,以便波特率更准确。 CH340的DTR通过0.1uF电容接到RESET引脚,兼容Arduino的下载方式。 lgt8f328p单片机使用外部16MHz晶振,避免内部RC振荡器误差太大导致波特率误差过大的问题。 SWC和SWD的上拉电阻可选焊,建议焊10k的电阻。

update部分电路说明

上位机在打开串口时,DTR引脚有时会有电平变化,这会导致单片机复位。在正常使用时是不希望单片机复位进入bootloader的,应该将RESET强制拉到VCC。 而在升级固件时,又需要利用RESET进入bootloader完成固件升级,这时需要释放RESET的强制上拉。 为了兼容官方的升级逻辑:#UPDATE引脚接到GND升级固件,#UPDATE引脚悬空时正常使用,不能升级固件。设计了由Q1、Q2、R2、R3组成的电路。#UPDATE悬空时,Q1导通,Q2的G极电压为0,因此Q2也导通,也就是将RESET强制拉到VCC;#UPDATE接到GND时,Q1截止,Q2的G极电压为VCC,因此Q2也截止,不再强制上拉RESET。

制作PCB所需的文件

LGTISP gerber files

烧录固件

烧录bootloader

  1. 首先你要有一个能给lgt8f328p烧录固件的东西,比如官方仿真器,或者利用开源的LarduinoISPLGTISPLarduinoISP_SHIELD
  2. 背面的SWC和SWD焊盘是用来给lgt8f328p烧录固件的,把它们和编程器相连
  3. 不要忘了给本编程器供电
  4. bootloader在这里:optiboot_lgt8f328p.hex。这是我修改过的bootloader,主要改为使用外部16MHz晶振

升级固件

  1. UPDATE和GND短接

  2. 现在本编程器就是一个Larduino开发板了,怎么给它烧程序我就不细说了
  3. 你也可以使用我的批处理烧写LGTISP固件.bat
  4. 移除#UPDATE和GND的跳线

本编程器的使用方法(以Arduino环境为例)

  1. 安装Larduino
  2. 开发板选择LGT8Fx8P
  3. 编程器选择AVR ISP
  4. 现在你可以使用烧录引导程序使用编程器上传功能了

高级用法

  • 串口发送z(0x7a 0x20)即可返回GUID(例如:0x14 0xa5 0xc4 0x18 0x33 0x20)
  • 串口发送y(0x79 0x20)即可返回版权信息
  • 本编程器本质上是一个Larduino开发板。只要短接#UPDATE和GND,就可以把它当成Larduino开发板来使用;移除#UPDATE和GND的跳线,就可以直接运行用户程序而不进入bootloader。

更多有趣的用途自己开发吧!

作者

brother_yan

旧版工程描述

lgt8f328p是mega328p的国产兼容版本,然而它与mega328p的烧写器并不通用。因此你需要买一个价格不菲的官方下载器,或者自己做一个,如https://oshwhub.com/larduino/lgt_mini_boxhttps://oshwhub.com/larduino/larduino_isp_shield。其中前者需要你有新塘的下载器,后者需要你有一定的动手能力。我就见过shield板的作者指导小白,看得我很焦躁。。。于是我做了这个LGTISP下载器,旨在降低制作的复杂度,而且有一个专用的下载器也比使用时临时搭方便许多。由于我分析过官方下载器的时序(https://github.com/brother-yan/LGTISP)我自认为我的固件更好用一些,但是为了能让使用者方便切换我的固件和官方固件,我设计了update功能。我的下载器引脚与官方最新下载器引脚定义完全相同,尽量做到兼容性。本制作BOM成本应该在10元以内。

BOM

ID Name Designator Footprint Quantity
1 22p C7,C8,C2,C1 C0805 4
2 0.1u C6,C4,C3,C5 C0805 4
3 LGT8F328P U1 TQFP-32_7X7X08P 1
4 ERROR LED3 LED0805-RD 1
5 RUN LED2 LED0805-RD 1
6 5V LED1 LED0805-RD 1
7 AO3401 Q2 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
8 2k R6,R5,R4 R0805 3
9 ISP CN2 IDC-TH_10P-P2.54_C5665 1
10 CH340C U2 SOIC-16_L9.9-W3.9-P1.27-LS6.0-BR 1
11 AO3402 Q1 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
12 USB CN1 USB-M-48 1
13 12MHz X2 OSC-SMD_4P-L3.2-W2.5-BL 1
14 16MHz X1 OSC-SMD_4P-L3.2-W2.5-BL 1
15 10k R1,R2,R3,R7,R8 R0805 5
16 PGM_SWD TP1 PAD.03X.05 1
17 PGM_SWC TP2 PAD.03X.05 1

展开

工程成员

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn