很多朋友都遇到过并口损坏的时候,这时并口下载线就无用武之地了,其实,对于台式机来说多数都是并口插座引脚对地的小电容漏电的原因,直接去掉即可,当然也有主板上串并口芯片损坏的。
而USB接口的下载线制作很麻烦,这里介绍一种串口的AVR下载线,也非常的好用,速度较快。源码测试正确。
软件用AVR STUDIO
熔丝位设置 FUSE:L=BF,H=C9
BOD打开设成2.7V,防止EEPROM损坏,设成2.7V是为了适应3.3V或5V供电。3.3V供电时要用MAX3232。
固件:
ourdev_432579.rar
使用方法:
所有元器件安装好后,将设置开关扳到“自编程”位置,用并口编程器和此板连接好,编程后再把设置开关扳到“工作”位置即可。
接好串口线,打开AVR STUDIO软件,点连接编程器选择“STK500 OR AVRISP”,即可连接。
注:
使用MAX3232和MEGA16L-8,电源可以是3.3V-5V;
使用MAX232A和MEGA16L-8,电源只能用5V。
MAX3232和MAX232A的外围电容可以用104,MAX232的外围电容要用105(1UF)。
关键字:AVR 串口下载线 DIY
引用地址:
AVR串口下载线DIY
推荐阅读最新更新时间:2024-03-16 13:48
AVR笔记9:AVR的两种位操作的比较
AVR的两种位操作的比较(wjc3k发于21ic)(位域与C位操作的比较) AVR的两种位操作的比较(位域方式和移位宏方式) 测试环境如下: 硬件:AT90S2313 软件: WiinAVR gcc3.3 -Os级优化(最小size)。 说明: 由于AVR不支持位操作,所以必须通过软件来实现。下面对我所知道的两种方法进行一个简单的比较。 1、位域方式。先定义一个位域, typedef struct _bit_struct { unsigned char bit0 : 1 ; unsigned
[单片机]
基于AVR单片机的串口转FSK的通信模块设计
简介:本文采用ATmega48芯片及CMX865芯片实现FSK通信模块,基于此模块,用户与业务平台之间进行FSK信息交互,相对于终端来说就是简单的串口通信。 随着信息技术与网络技术的飞速发展,信息交互应用业务给人类生活带来更多的便利,信息终端表现出巨大的市场潜力。但是由于终端用户环境不同,用户信息交互方式可能不同,目前常用的有IP方式、FSK方式以及无线通信方式等。为了能够提高终端市场竞争力,减少系统开发成本投入,通信模块与终端程序独立设计是较为理想的解决方案。本文采用ATmega48芯片及CMX865芯片实现FSK通信模块,基于此模块,用户与业务平台之间进行FSK信息交互,相对于终端来说就是简单的串口通信。 1ATmeg
[单片机]
AVR单片机在蓄电池剩余电量测试仪中的应用
摘要: 利用一代AVR单片机(AT90S8515)实现蓄电池剩余电量在线测量。该方法通过实时测量蓄电池内阻,推算出剩余电量。最后给出了实验结果。
关键词: 单片机 在线测量 蓄电池 剩余电量
蓄电池作为备用电源,已在计算机网络、通主、电力等领域得到了广泛的应用。蓄电沁的荷电量与整个供电系统的可靠性密切相关,蓄电池剩余电量睦高,系统可靠性越高,否则反之。对于一些重要的用电领域,例如信息处理中心,如果能在既不消耗蓄电池的能量,又不影响用电设备正常工作的条件下,实现蓄电池剩余电量的在线监测,将有重要的实际意义。近几年随着IT产业的迅速发展,电池的重要性越来越突出,对剩余电量精确预测的需求越来越迫切。
[应用]
AVR MCU尾缀的含义
以ATmega169为利来说明: ATmega169 TQFP封装现主要有以下型号:ATmega169V-8AU、ATmega169V-8AI、ATmega169-16AU、ATmega169-16AI。 型号标识说明: (1)带“V”与不带“V”的区别:带“V”它支持的电压范围为:1.8-5.5V。不带“V”的则表示支持电压范围为:2.7-5.5V。 (2)后缀的数字部分代表MCU可以支持的最高系统时钟,比如ATmega169V-8AU及ATmega169V-8AI指的是可以支持到8MHZ的系统时钟。而,ATmega169-16AU及ATmega169-16AI指的是可以支持到16MHZ的系统时钟。 (3)后缀的第一个
[单片机]
AVR PS/2 硬件中断控制程序
/********************************************************************* 目 的: 建立操作PC键盘的示例程序(硬件中断读取PS/2接收到的数据) 目标系统: 基于AVR单片机 应用软件: ICCAVR 版 本: Version 1.0 *********************************************************************/ /*010101010
[单片机]
AVR读写IO口右一方法(借用ATmel)
//头文件 #ifndef __always_inline__ #define __always_inline__ _Pragma( inline=forced )inline #endif #define AVR_GPIO_ASSIGN(name, port, bit) \ __always_inline__ static void GPIO_##name##_Set(void) {PORT##port |= (1 bit);}\ __always_inline__ static void GPIO_##name##_Clr(void) {PORT##port &= ~(1 bit);}\ __alw
[单片机]
利用AVR单片机制作电压表
通过研究和实验,用mega16可以制作5V电压。电压值从LED显示出来。 下面是部分源程序: uint mega16_ad() { uint addata; DDRD|=BIT(4)|BIT(5)|BIT(6); DDRA&=~BIT(PA3); PORTA&=~BIT(PA3); ADMUX=0x03; ADCSR=0X80;//转换使能 ADCSR|=BIT(ADSC);//开始转换 while(!(ADCSR&(BIT(ADIF))));//等待转换结束. addata=ADC*4.8876; //转换为四位5V电压数 return addata; } void main() {
[单片机]
AVR-GCC:关于ISR()不能更新变量
一个AVR与串口通信的基本程序,部分代码如下: unsigned int flag = 0; …… ISR(USART_RXC_vect) { flag = 1; } …… int main(void) { while(0 == flag) { code…… } } 程序在Winavr环境下编译成功,烧写运行后发现,程序并没有按照我预想的那样,出现了这样的现象:程序一直在while里面没有出来,flag的值并没有变化。但是发现,程序确实进入了中断,但是却为什么不能改变变量呢。真是有鬼啦! 一番周折之后,终于在国外的一个网站上找到了相似的问题。于是豁然开朗。 flag变量被编译器在优化的时候认为,它在
[单片机]