基于 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开发和烧录环境的更多相关文章

  1. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  2. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

  3. (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

    Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...

  4. 【转】在Ubuntu下建立Eclipse的Android开发环境

    本文将介绍如何建立Ubuntu下基于Eclipse的Android开发环境的方法. 大部分的Android开发者都是使用Eclipse来开发Android,本文将向各位介绍一下建立Ubuntu下基于E ...

  5. deepin系统下部署Python3.5的开发及运行环境

    deepin系统下部署Python3.5的开发及运行环境 1 概述 由于最近要学习python接口自动化测试,所以记录一下相关学习经过及经验,希望对大家可以有所帮助. 2 下载 在python官网下载 ...

  6. ubuntu下如何安装codeblocks集成开发环境

    codeblocks是一个十分优秀的C/C++开发IDE,虽然后起之秀codelite目前来看大有超越之势哦. 不过在ubuntu下安装codeblocks却比较麻烦,不像其他linux发行版,比如s ...

  7. 39 Ubuntu下配置python的vscode开发环境

    0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...

  8. Ubuntu 下使用虚拟串口进行开发测试

    1. python 工具 #coding = utf-8 import pty import os import select def mkpty(): master1, slave = pty.op ...

  9. Ubuntu下(Linux+Apache+MYSQL+PHP, LAMP)环境搭建

    近期開始玩PHP,于是试着搭建一下开发环境并做个记录,以备日后再使用起来方便可查. 第一步 确保软件包是最新的 sudo apt-get update 第二步 安装Apache2 sudo apt-g ...

  10. 在Ubuntu下配置舒服的Python开发环境

    Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.0 ...

随机推荐

  1. C++ Undefined Behavior 详细列表

    Undefined Behavior,即未定义的行为,指程序不可预测的执行效果,一般由错误的代码实现引起.出于效率.兼容性等多方面原因,语言标准不便于定义错误程序的明确行为,而是将其统称为" ...

  2. 函数柯里化实现sum函数

    需求 实现sum函数,使其可以传入不定长参数,以及不定次数调用 //示例 console.log(sum(1,2)(3)()) //6 console.log(sum(2,3,4,5)(1,2)(3) ...

  3. Bob 的生存概率问题

    Bob 的生存概率问题 作者:Grey 原文地址: 博客园:Bob 的生存概率问题 CSDN:Bob 的生存概率问题 题目描述 给定五个参数 n , m , i , j , k,表示在一个 n*m 的 ...

  4. JavaWeb3

    1. 会话技术 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间共享数据 方式: 客户端会话技术:Co ...

  5. pinpoint部署

    pinpoint是一个分析大型分布式系统的平台,提供解决方案来处理海量跟踪数据,主要面向基于tomcat的Java 应用. pinpoint使用HBASE储存数据. 下面介绍pinpoint部署及应用 ...

  6. jvm之垃圾收集二之常用垃圾收集器

      前面简单介绍了如何确定对象是垃圾.什么时候回收.怎么回收,今天就来聊一聊java中常见的垃圾回收器,从Serial到G1,其中会着重解读CMS和G1的工作原理,包括如何安全的并发回收.cSet.r ...

  7. java学习之Servlet

    0x00前言 Servlet就是一个接口我们需要写一个类然后去实现Servlet,就可以被服务器识别到.request是用来接受客户端传过来的参数,respone是用来响应客户端的页面.我们所用的容器 ...

  8. 使用Jupyter记事本记录和制作.NET可视化笔记

    前言:对于记录笔记的工具特别多,不过对于程序员来说,记录笔记+程序代码+运行结果演示可以同时存在,无疑会极大增加我们的笔记的可读性和体验感.以前在写python的时候,使用jupyter的体验很好,所 ...

  9. Java 中你绝对没用过的一个关键字?

    layout: post categories: Java title: Java 中你绝对没用过的一个关键字? tagline: by 子悠 tags: 子悠 前面的文章给大家介绍了如何自定义一个不 ...

  10. ArcObjects SDK开发 010 FeatureLayer

    1.FeatureLayer的结构 FeatureLayer是我们开发的时候用的最多的API之一,其实现的接口以及关联的其他API也非常多.下面我们就用一张图来整体看下FeatureLayer有哪些常 ...