数码之家

 找回密码
 立即注册
搜索
查看: 5926|回复: 20

[C51] 入坑N76E003 焊SSOP20转DIP板 烧CH552固件ICP 烧76E003 LDROM 进行ISP 烧录

[复制链接]
发表于 2020-5-15 16:20:34 | 显示全部楼层 |阅读模式
本帖最后由 玛德陛下 于 2020-5-15 21:09 编辑

SSOP 20 转 DIP 的板子到货了。










2种板子,蓝色的板子质量好些,但是用了穿孔,
走线 绿板要布置的好些,我估计手工修改过的。





焊接上针脚, 可以搭在洞洞板和 面包板上用了。

SSOP 的焊接还是比较容易的。



打好CH552的电路,

2个104电容,一个 18K 的上位电阻。

PROTEL99 刚开始学习,可以了再来画出原理图。



然后是烧录 HC552固件,论坛里面 的。

这一关磨了一天,不知到下载了 论坛帖子里面的 文件,[C51] 制作便宜好用的N76E003的ICP烧录器(新年礼物)
作者 2545889167


但是WCHISPTool下, CH552不能识别出来。


那里压缩包里面的 驱动也装了,设备 为 USB MONDULE
但是是 WCHISPTool识别不出来了ch552。



后来在官网下了 CH552的开发资料,里面带一个 WCHISPTool_Setup2.6.exe
安装了这个就好了。

可能是 WCHISPTool没有装完整的安装就不行?

论坛帖子里面是一个单独的 WCHISPTOOL.EXE 文件。









电脑里面识别出来是USB MODULE



用的 CH375的驱动?









在我的XP 系统上
CH552 烧录成功就是一个USB 人体学输入设备



ch552版的ICP 做好后,连接好 N76E003的 对应脚
可以识别出来N76E003










然后直接管脚 杜邦线连 N76E003





在 APROM 烧了一个 HEX ,对应的功能是闪灯。
点亮 了。一闪一闪的。


然后再开始做ISP ,这个买了一个 PL2303的USB 转TTL 的串口 很便宜。
但是要先在N76E003 里面烧进一个LD ROM 。

烧LDROM ,这个不好搞。总是出错。

总报配置字错误。
但还是试成功了几次。

烧进了N U 官方的 LDROM






用NU 的ISP 软件 成功 连上了。

开始总连不上,这个又搞了一下午,还让我以为是买的 PL2303 是坏的,或者是兼容不好。
后来网上查看串口 ,原来是要交叉连接 ,RXD-TXD ,TXD-RXD .
我还以为是像 ICP 那样 相同 表示的脚 直连。

基础知识薄弱啊。

NU 官方的 ISP 可以用了。


但是  论坛上的那个ISP 程序怎么都连不上去,其实我是先烧 论坛上的 那个 ISP 的LDROM 。
帖子是这个,作者

N76E003、STM8S103  ISP下载工具不好用,自己写一个作者 junyee

一直没有成功 ,才换了NU 官方的ISP LDROM

期间 还 看到有帖子说,某单片机有2个串口,但ISP 使用 一个串口。

N76E003 有2二个串口,(2,3),(8,18)于是2串口都试了还是不行。

另外,NU 官方ISP 用的是 2,3脚的串口。


而且它的 LDROM 和NU 官方 ISP 的LDROM 不一样,不能互认。



关于 CH552 的ICP  
烧录 APROM 很快

在烧配置字,烧LDROM 经常报错。







我看了下 ,配置字烧录错误可能是这里的原因,
选择 LDROM 大小得和 LDROM ADDR  配合。

但有时候又能烧录成功。
找不到报错规律。
也许是用杜邦线 面板板 ,转接板 这些的 电路干扰,不稳定的原因?

用 ISP烧录也报错。



下一步就是开始配置 KEIL 了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 16家元 +330 收起 理由
潜隆 + 20 謝謝分享
温力口 + 20 謝謝分享,好手艺!!
jf201006 + 20 原創內容
wmshizheng + 20 優秀文章
泥沙俱下 + 20
超级女生 + 20 謝謝分享
寂静的春天 + 20 謝謝分享
有点不烧 + 20 謝謝分享
qrut + 20 優秀文章
kkdkj + 20 謝謝分享

查看全部打赏

发表于 2020-5-15 17:01:46 | 显示全部楼层
前阵子也撸了不少ch系列的单片机,还没时间研究,看着是很不错的样子
回复 支持 反对

使用道具 举报

发表于 2020-5-16 11:59:42 | 显示全部楼层
这个片子,还是NU-LINK方便,不是一般方便。
回复 支持 反对

使用道具 举报

发表于 2020-5-16 20:36:32 | 显示全部楼层
恭喜呀 终于成功了
回复 支持 反对

使用道具 举报

发表于 2020-5-16 20:47:13 来自手机浏览器 | 显示全部楼层
2545889167 发表于 2020-5-16 20:36
恭喜呀 终于成功了

感觉我的单片机之路好像错过了很多…
回复 支持 反对

使用道具 举报

发表于 2020-5-19 17:22:25 | 显示全部楼层
已超出该会员当天被打赏总额,请多给其他会员打赏鼓励!
回复 支持 反对

使用道具 举报

发表于 2020-5-27 16:14:14 | 显示全部楼层
看着好麻烦,啥时nu link能像st link那样便宜
回复 支持 反对

使用道具 举报

发表于 2020-5-29 19:41:48 | 显示全部楼层
謝謝分享,好手艺!!
回复 支持 反对

使用道具 举报

发表于 2020-5-31 10:28:55 | 显示全部楼层
jdsuchen 发表于 2020-5-27 16:14
看着好麻烦,啥时nu link能像st link那样便宜

NU-LINk贵一个是芯片贵,而且NU-LINK支持离线下载,ST-LINK不支持。而且那玩意有公开资料,可以自己做。
回复 支持 反对

使用道具 举报

发表于 2020-6-4 16:09:21 | 显示全部楼层
也遇到了你所说的问题,下官网的程序写成功了。是不是新买的芯片引导程序协议调整了。谢谢你的介绍,很受启发。
回复 支持 反对

使用道具 举报

发表于 2020-6-4 16:11:14 | 显示全部楼层
期待介绍KEIL配置
回复 支持 反对

使用道具 举报

发表于 2022-4-18 18:25:57 | 显示全部楼层
恭喜呀 终于成功了
回复 支持 反对

使用道具 举报

发表于 2023-10-23 18:53:35 | 显示全部楼层
求ch552的固件ssnmark@126.com
回复 支持 反对

使用道具 举报

发表于 2023-12-12 17:47:43 | 显示全部楼层
你的帖子的贡献我感觉是实验出来了
自己用CH552G制作的ICP,居然可以用NUVOTON官方上机位软件,将官方的bootloader给烧了进去
点赞
回复 支持 反对

使用道具 举报

发表于 2023-12-13 11:50:00 | 显示全部楼层
为你补充一张电路原理图


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2023-12-13 12:19:46 | 显示全部楼层
再贴出CH552编程器固件的参考代码:


#include <ch552.h>

// 定义SWD引脚
sbit SWDIO = P3^0;
sbit SWCLK = P3^1;

// SWD引脚操作函数

// 发送和接收一个位
void SWD_SendBit(uint8_t bit) {
    SWDIO = bit;
    SWCLK = 0;
    SWCLK = 1;
}

uint8_t SWD_ReceiveBit() {
    uint8_t bit;
    SWCLK = 0;
    bit = SWDIO;
    SWCLK = 1;
    return bit;
}

// 发送和接收一个字节
void SWD_SendByte(uint8_t byte) {
    uint8_t i;
    for (i = 0; i < 8; i++) {
        SWD_SendBit(byte & 0x01);
        byte >>= 1;
    }
}

uint8_t SWD_ReceiveByte() {
    uint8_t byte = 0;
    uint8_t i;
    for (i = 0; i < 8; i++) {
        byte |= (SWD_ReceiveBit() << i);
    }
    return byte;
}

// SWD初始化函数
void SWD_Init() {
    SWDIO = 1; // 设置SWDIO为输入模式
    SWCLK = 1; // 设置SWCLK为高电平
}

// SWD发送命令函数
void SWD_SendCommand(uint8_t command) {
    SWD_SendByte(command);
}

// SWD接收响应函数
uint8_t SWD_ReceiveResponse() {
    uint8_t response = SWD_ReceiveByte();
    return response;
}

// 示例函数:读取SWD目标芯片的IDCODE
uint32_t SWD_ReadIDCode() {
    SWD_Init();
    SWD_SendCommand(0xA5); // 发送读取IDCODE的命令
    uint32_t idcode = SWD_ReceiveResponse(); // 接收IDCODE
    return idcode;
}

int main() {
    uint32_t idcode = SWD_ReadIDCode();
    // 处理IDCODE
    // ...
    return 0;
}

回复 支持 反对

使用道具 举报

发表于 2023-12-13 19:04:50 | 显示全部楼层
本帖最后由 junyee 于 2023-12-13 19:15 编辑

哈哈才看到.

原来我在老论坛发布的工具, 是在win7 32上开发的.串口通讯用的 commg.dll .
当然也没有几个坛友会用加反鐀.

后来我换了新主板和64位系统, ,发现这个库 配合 USB的串口 有点小问题会造成通讯问题.
换了 moxa 的库.现在还在用着呢.
老论坛不能修改帖子了,在这里传一份我在用的.
可以串口下载 stm8/n76e003/STM32.







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2023-12-13 22:36:19 | 显示全部楼层
junyee 发表于 2023-12-13 19:04
哈哈才看到.

原来我在老论坛发布的工具, 是在win7 32上开发的.串口通讯用的 commg.dll .

你好:
你发布的Tools可以对全新无bootloader的N76E003仅通过串口RX TX下载一个bootloader吗?
如果能,意味着连CH552G简易版下载器都不用了啊?

之所以问,因为查看你的信息,也不见你在老站帖子的链接
回复 支持 反对

使用道具 举报

发表于 2023-12-14 09:27:24 | 显示全部楼层
纯今 发表于 2023-12-13 22:36
你好:
你发布的Tools可以对全新无bootloader的N76E003仅通过串口RX TX下载一个bootloader吗?
如果能, ...

很遗憾不能.

你可以试试 neoprogrammer 看看能不能下载 n76e003 的aprom位置.
如果可以的话可以用 iap 写ldrom .

否则的话还是要用nulink 或第三方工具模拟时序写入.
现在的话 n76e003 性价比不高,估计玩的人少了,所以再去折腾意义也不是很大.
像我手上有库存,用uart下载,调试同时用一人工具会感觉更为方便.
回复 支持 反对

使用道具 举报

发表于 2023-12-14 10:01:37 | 显示全部楼层
junyee 发表于 2023-12-14 09:27
很遗憾不能.

你可以试试 neoprogrammer 看看能不能下载 n76e003 的aprom位置.

非常感谢你的回复
我会试试你的建议
不过我想向你分享该帖博主
已经证明NUVOTON官方的ICP上机位软件
支持自己用CH552G临时搭建的下载器
这说明了什么呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-25 20:16 , Processed in 0.109201 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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