最近在学习Arduino,买了一块Arduino UNO R3的开发板,也买了两片Arduino 328p的芯片。
按网上的方法,将开发板改造成Arduino ISP 编程器。
然后,再用Arduino 328p 的芯片制作了一个最小系统。
将开发板与自己制作的最小系统相连:
先将引导程序通过开发板下载到最小系统,成功了。
写了一个简单的LED闪烁的程序,通过开发板下载到最小系统板,也成功了。
本来用开发板制作的ISP编程器下载软件也是可以的,但我想自己用CH340制作一个。
现在的问题是,通过CH340C制作的编程器下载程序到最小系统,始终不成功。
电路原理图如下:
下载时显示如下错误信息:
*****************************
Arduino:1.8.19 (Windows 7), 开发板:"Arduino Uno"
项目使用了 934 字节,占用了 (2%) 程序存储空间。最大为 32256 字节。全局变量使用了9字节,(0%)的动态内存,余留2039字节局部变量。最大为2048字节。
avrdude: stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 1 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 2 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 3 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 4 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 5 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 6 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 7 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 8 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 9 of 10: not in sync: resp=0xd1avrdude:
stk500_recv(): programmer is not respondingavrdude:
stk500_getsync() attempt 10 of 10: not in sync: resp=0xd1Problem
uploading to board. See hc/en-us/sections/360003198300 for suggestions.
*****************************
意思是:“程序员没有回应avrdude:”
也试过左边CH340C部分,给STC单片机下载程序是没有问题的,无非是在下载程序时要“冷启动”一下STC的单片机。
在给Arduino最小系统下载程序时,也按过复位开关,也不行。
分析了Arduino UNO开发板的电路,它也是用CH340C的下载电路,本来CH340C可以不用外接晶振的,但它接了。
我也在自制的CH340C电路中加上了晶振部分,但还是不行。
请懂的朋友帮帮我,谢谢了。
|