Ubuntu下的LGT8F328P MiniEVB Arduino开发和烧录环境

news2024/11/17 4:49:14

基于 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 工具的方案

  • 硬件: https://oshwhub.com/brother_yan/LGTISP
  • 软件: https://github.com/brother-yan/LGTISP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言文件操作(3)

TIPS 1. 文件是不是二进制文件,不是后缀说了算,而是内容说了算 2. 文件的随机读写 文件的随机读写也就是说我指哪打哪 fseek() 人为调整指针指向的位置 1. 根据文件指针FILE*的当前位置和你给出的偏移量来让它这个文件指针呢定位到你想要的位置上…

Flutter 这一年:2022 亮点时刻

回看 2022,展望 Flutter Forward 2022 年,我们非常兴奋的看到 Flutter 社区持续发展壮大,也因此让更多人体验到了令人难以置信的体验。每天有超过 1000 款使用 Flutter 的新移动应用发布到 App Store 和 Google Play,Web 平台和桌…

实战打靶集锦-002-SolidState

**写在前面:**谨以此文纪念不完美的一次打靶经历。 目录1. 锁定主机与端口2. 服务枚举3. 服务探查3.1 Apache探查3.1.1 浏览器手工探查3.1.2 目录枚举3.2 JAMES探查3.2.1 搜索公共EXP3.2.2 EXP利用3.2.2.1 构建payload3.2.2.2 netcat构建反弹shell3.2.3 探查JAMES控…

三十一、Kubernetes中Service详解、实例第一篇

1、概述 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源&…

NX二开ufun函数UF_MODL_ask_curve_points(获取曲线信息)

根据曲线tag,返回曲线相关信息:弦宽容、弧度、最大步长、点数组的点。 实例返回结果截图如下: 实例创建曲线截图如下: 1、函数结构 int UF_MODL_ask_curve_points (tag_t curve_id, double ctol&#xf…

【SpringCloud19】SpringCloud Alibaba Sentinel实现熔断与限流

1.概述 官网 中文文档 1.1 是什么 一句话解释,之前我们讲解过的Hystrix 1.2 怎么下 下载网址 1.3 作用 1.4 如何使用 官网学习 服务使用中的各种问题: 服务雪崩服务降级服务熔断服务限流 2.安装Sentinel控制台 2.1 组成部分 核心库&#x…

Golang之实战篇(1)

"千篇一律,高手寂寞。几十不惑,全都白扯"上篇介绍了golang这门新的语言的一些语法。那么我们能用golang简单地写些什么代码出来呢?一、猜数字这个游戏的逻辑很简单。系统随机给你生成一个数,然后读取你猜的数字&#xf…

老杨说运维 | AIOps如何助力实现全面可观测性(上)

前言: 嗨,今天是大年三十,大家是不是已经在家坐享团圆之乐了?还是说在奔向团圆的路上呢?不论如何,小编先祝大家新年如意安康,平安顺遂~ 熟悉我们的朋友肯定都知道,关于《老杨说运维…

30.字符串处理函数

文章目录1.测字符串长度函数2.字符串拷贝函数1.strcpy函数2.strncpy函数3.字符串追加函数1.strcat函数2.strncat函数4.字符串比较函数1.strcmp函数2.strncmp函数5.字符查找函数1.strchr函数2.strrchr函数6.字符串匹配函数7.空间设定函数8.字符串转换数值9.字符串切割函数strtok…

【Java开发】Spring Cloud 04 :服务治理Nacos

本章节正式进入 Spring Cloud 环节了,首先介绍微服务架构中一个最重要的原理概念:服务治理,在概念讲解之后,讲解介绍 Nacos 服务注册中心的体系结构。1 服务治理1.1 服务治理介绍首先通过一个例子告诉你服务治理解决了什么问题。比…

GD32F4——外部中断

一、NVIC中断系统 Cortex-M4集成了嵌套式矢量型中断控制器(Nested Vectored Interrupt Controller,NVIC)来实现高效的异常和中断处理。 中断系统包含外部中断、定时器中断、DMA中断和串口中断等。 二、EXTI外部中断 EXTI(中断…

go的基本语法介绍之变量的声明与初始化

1.常见基本数据类型 uint8:无符号8位整形,取值范围:0-255 uint16:无符号16位整形,取值范围:0-65535 uint32:无符号32位整形,取值范围:0-4294967295 uint64&#xff1…

opencv arm交叉编译与仿真验证详细流程

【关键内容】 1.将opencv编译为能在arm上运行的库 2.在没有板子的情况下,仿真验证opencv库 1.将opencv编译为能在arm上运行的库 1.在下方链接中选择某个版本 Releases - OpenCVhttps://opencv.org/releases/点击“Sources”即可开始下载,得到opencv-…

「数据结构、逻辑结构、物理结构」基本概念简析

前言 前言:简析数据结构、逻辑结构、物理结构。 文章目录前言一、数据结构1. 简介2. 数据3. 结构4. 分析5. 分类1)线性结构(线性表)2)树结构3)图结构二、逻辑结构与物理结构1. 为什么要有逻辑结构和物理结构…

【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!

目录 1.数组题目合集 1.1 leetcode.27 移除元素 1.2 leetcode.26 删除有序数组中的重复项 1.3 leetcode.88 合并两个有数数组 2.链表题目合集 2.1 leetcode.203 移除链表元素 2.2 leetcode.206 反转链表 2.3 leetcode.876 链表的中间结点 2.4 牛客 链表中倒数第k个结点…

零基础学JavaWeb开发(十七)之 mybatis(2)

5、MyBatis - 映射文件标签 5.1、映射文件的顶级元素 select:映射查询语句 insert:映射插入语句 update:映射更新语句 delete:映射删除语句 sql:可以重用的 sql 代码块 resultMap:最复杂&#xff0c…

章鱼网络 2022 虎年全回顾

全长5606字,预计阅读20分钟2022年对章鱼网络而言颇为特别。这是章鱼网络建设应用链多链生态历程的第一年,整个 Web3 行业都经历了极其糟糕的市场环境,但是我们在「生态建设」、「基础设施优化」、「社区治理」和「市场拓展」等都有长足进展&a…

31.Isaac教程--规划器代价

规划器代价 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录规划器代价组件入门通过应用程序图自定义成本导航本地规划器基于线性二次调节器 (LQR) 规划器。 它通过生成最小化成本函数的轨迹来工作。 不幸的是,没有适用于所有…

Allegro如何输出第三方网表操作指导

Allegro如何输出第三方网表操作指导 在做PCB设计的时候,会需要输第三方网表,Allegro支持快速输出第三方网表,如下图 具体操作如下 选择File选择Export

Leetcode:39. 组合总和、40. 组合总和 II(C++)

目录 39. 组合总和: 问题描述: 实现代码与解析: 回溯: 原理思路: 剪枝版: 40. 组合总和 II: 问题描述: 实现代码与解析: 回溯: 原理思路&#xff…