Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境
基于 LGT8F328P LQFP32 的 Arduino MiniEVB, 这个板型资料较少, 记录一下开发环境和烧录过程以及当中遇到的问题.
关于 LGT8F328P
芯片参数
- 8位RISC内核
- 32K字节 Flash, 2K字节 SRAM
- 最大支持32MHz工作频率
- 集成32MHz RC振荡器
- 集成32KHz RC振荡器
- SWD片上调试器
- 工作电压: 1.8V ~ 5.5V
- 封装: QFP48, QFP32, QFN32, SSOP20
其它参数参考 AT328P
在 EEVBlog 上有一个相关的讨论 LGT8F328P - clone of ATMega328 with lots of extras!, 里面有 LGT8F328P 和 AT328P 的比较.
LGT8F328P 和 AT328P 的指令周期数对比

因为 LGT8F328P 本身在工作频率上就更高(32MHz vs 20MHz), 加上指令周期数更少, 在性能上优势明显. 但是因为速度太快, 也导致了一些 AT328P 上正常工作的应用在 LGT8F328P 运行会出问题.
LogicGreen公司
生产这个芯片的公司叫 LogicGreen, www.lgtic.com, 主营是LGT8开头的一系列MCU, 面向中低端市场, 非常低调(这公司甚至连中文名都没有), 没有见过任何广告, 出名完全是因为 LGT8F328P 兼容 ATmega328P, 可以平替火热的 Arduino 系列开发板.
LGT8F328P 的产品页为 http://www.lgtic.com/lgt8fx8p/, 在上面有数据和用户手册.
关于开发板
基于 LGT8F328P 的开发板在某宝上有不少, 直接搜型号就能看到. 这里要介绍的是下面这种板型, 不是很常见
正面

背面

- 丝印上的DIR应该是写错了, 实际上是 DTR
- 板子上LDO是 5V 的 AMS1117, VCC和5V都是5V, 而 VIN 这个脚对应的是 AMS1117 的输入脚, 输入需要大于 6V. 接线时要注意区分.
- 板子上不带 USB2TTL, 开发时需要自备 CH340, CP2102 这类 USB2TTL 的USB转换头
接线
开发板的接线在图上已经标出, 对应的
LGT8F328P -> CH340, CP2102
VCC -> 3.3V
GND -> GND
TX -> RX
RX -> TX
DTR -> DTR
Arduino 环境和 LGT8F328P 支持包 lgt8fx
安装 Arduino IDE 2.x 和 lgt8fx 的过程请点击这里查看 https://www.cnblogs.com/milton/p/17063445.html
这个 Mini EVB 对应的设备选择是
- Board: LGT8F328P
- Port: 根据自己本地的串口选择
- Clock: 32MHz
- Clock Source: Internal
- Variant: 328P-LQFP32 (e.g. MiniEVB, nano-style or WAVGAD)
之后就可以直接编译烧录 Blink 示例
遇到的问题 无法自动烧录
一开始, 使用的是 Arduino 标准的5V供电, 但是 Upload 后一直提示 stk500_recv(): programmer is not responding 错误, 此时需要手动按一下RESET按钮, 才能成功烧录. 将 CH340 换成 CP2102, 问题依旧, 检查 DTR 的输出电压, 在烧录阶段确实拉低了, 只有0.2V, 在非烧录阶段为 3.3V, 也没有问题.
对比了下标准的 Arduino Nano 和 CH340 的电路 Arduino Nano ATmega238P/CH340G V3.0 PCB Layout, DTR脚和RST脚之间也是104的电容.
似乎都没有问题, 最后在 Nerd Ralph 的这篇文章里找到了答案 LGT8F328P EDMINI board. 他也遇到了同样的问题, DTR Reset doesn't work
After some more debugging, I found I could upload if I pressed the reset button just before uploading. This meant the bootloader was working, but auto-reset (toggling the DTR line) was not. These boards use the same auto-reset circuit as an Arduino Pro Mini
A negative pulse on DTR will cause a voltage drop on RST, which is supposed to reset the target. When the target power is 5V and 3V3 TTL signals are used, toggling DTR will cause RST to drop from 5V to about 1.7V (5 - 3.3). With the ATmega328P and most other AVR MCUs, 2V is low enough to reset the chip. The LGT8F328P, however requires a lower voltage to reset. In some situations this can be a good thing, as it means the LGT MCU is less likely to reset due to electromagnetic interference.
所以DTR未能拉低重启的原因是, LGT8F328P 需要的最低工作电压接近 1.7V, 而供电电压在5V时, DTR 在传输那一下拉低, 也只能达到这个电压附近, 所以 LGT8F328P 并未受影响而重启, 而对于 AT328P, 降到2V就会重启. 所以这个电路设计对 LGT8F328P 失效了.
解决的办法也很简单, 就是把供电换成 3.3V, 之后每次烧录都会稳稳地重启了.
用于烧录 LGT8F328P 的 LGTISP
当 LGT8F328P 丢失 Bootloader 时, 需要通过 SWC/SWD 接口重新写入 Bootloader, 这时候就需要使用 LGTISP.
相对于官方的 ISP 硬件, brother_yan 提供了一种使用 LGT8F328P 制作 ISP 工具的方案
Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境的更多相关文章
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境
在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...
- (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤
Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...
- 【转】在Ubuntu下建立Eclipse的Android开发环境
本文将介绍如何建立Ubuntu下基于Eclipse的Android开发环境的方法. 大部分的Android开发者都是使用Eclipse来开发Android,本文将向各位介绍一下建立Ubuntu下基于E ...
- deepin系统下部署Python3.5的开发及运行环境
deepin系统下部署Python3.5的开发及运行环境 1 概述 由于最近要学习python接口自动化测试,所以记录一下相关学习经过及经验,希望对大家可以有所帮助. 2 下载 在python官网下载 ...
- ubuntu下如何安装codeblocks集成开发环境
codeblocks是一个十分优秀的C/C++开发IDE,虽然后起之秀codelite目前来看大有超越之势哦. 不过在ubuntu下安装codeblocks却比较麻烦,不像其他linux发行版,比如s ...
- 39 Ubuntu下配置python的vscode开发环境
0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...
- Ubuntu 下使用虚拟串口进行开发测试
1. python 工具 #coding = utf-8 import pty import os import select def mkpty(): master1, slave = pty.op ...
- Ubuntu下(Linux+Apache+MYSQL+PHP, LAMP)环境搭建
近期開始玩PHP,于是试着搭建一下开发环境并做个记录,以备日后再使用起来方便可查. 第一步 确保软件包是最新的 sudo apt-get update 第二步 安装Apache2 sudo apt-g ...
- 在Ubuntu下配置舒服的Python开发环境
Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.0 ...
随机推荐
- ssh登录提示hosts is down
其他无用的网卡配置信息mv走重启network如果还是不行重启一下服务器问题就能解决
- 【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3786)的处理公告
问题描述 引用报告:(OpenSSL3.x曝出严重漏洞 : https://www.ctocio.com/ccnews/37529.html ) 最近OpenSSL 3.x 爆出了严重安全漏洞,分别是 ...
- 【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务
前言: 大概一年多前写过一个部署ELK系列的博客文章,前不久刚好在部署一个ELK的解决方案,我顺便就把一些基础的部分拎出来,再整合成一期文章.大概内容包括:搭建ELK集群,以及写一个简单的MQ服务. ...
- 安卓APP和小程序渗透测试技巧总结
安卓APP和小程序渗透测试技巧总结 免责声明: 安卓7以上抓取https流量包 证书信任 首先安装OpenSSL,此步骤不再赘述,可以参考百度. 然后安装模拟器(我使用的是夜神模拟器). 导出需要的证 ...
- 4.mysql-进阶
1.事务 将多个操作步骤变成一个事务,任何一个步骤失败,则回滚到事务的所有步骤之前状态,大白话:要成功都成功:要失败都失败. 如转账操作,A扣钱.B收钱,必须两个步骤都成功,才认为转账成功 innod ...
- php 高并发
1 swoole的博客 http://rango.swoole.com/archives/508 2 消息队列 3 接口并发请求
- 基于python的数学建模---蒙特卡洛算法
import math import random m = input('请输入一个较大的整数') n = 0 for i in range(int(m)): x = random.random() ...
- 根据MediatR的Contract Messages自动生成Minimal WebApi接口
大家好,我是失业在家,正在找工作的博主Jerry.今天给大家介绍一个能大大减少ASP.Net Minimal WebApi编码量的方法. 我们一般会把微服务的VO和DTO封装成消息类,并作为WebAp ...
- 比 JSON.stringify 快两倍的fast-json-stringify
前言 相信大家对JSON.stringify并不陌生,通常在很多场景下都会用到这个API,最常见的就是HTTP请求中的数据传输, 因为HTTP 协议是一个文本协议,传输的格式都是字符串,但我们在代码中 ...
- Redis Zset实现统计模块
1. 背景 公司有一个配置中心系统,使用MySQL存储了大量的配置,但现在不清楚哪些配置正在线上使用,哪些已经废弃了,所以需要实现一个统计模块,实现以下两个功能: 查看总体配置的数量以及活跃的数量 查 ...