到目前为止,我已经讨论了微控制器基础知识编译软件. 我还没有写过任何关于编程的东西。

ATmega32系列微控制器支持3种编程类型

  • 并行程序设计
  • ISP编程还是串行编程
  • 通过JTAG编程

这里ISP代表系统内程序员。要烧掉一个微控制器,仅仅烧掉硬件是不够的,它还需要将计算机或存储设备中的程序下载到微控制器中的软件。

现在我所说的软件被命名为小马程序员2.06.我的电路改编自小马程序员网站。它使用PC COM端口将程序下载到微控制器中。它的信号振幅为+5至+12伏,表示二进制“1”,信号振幅为-5至-12伏,表示“0”。

微控制器ATmega32使用用于SPI通信的引脚进行编程。要启用编程,微控制器必须通过将其复位引脚拉低(逻辑0,或者说0 V)进入复位状态。在此状态下,微控制器可在任一模式(并行编程或串行编程)下编程。微控制器始终接受0伏逻辑0+5伏作为逻辑之一。

从PC机发送的信号不是微控制器可以直接接受的形式。这些来自PC机的信号应适用于微控制器。在编程器中,齐纳二极管为信号提供必要的调节。其接线方式可将±12伏信号转换为适用于微控制器的+5-0伏信号。需要一个电阻来限制齐纳二极管节点中的电流,否则齐纳二极管可能会烧坏。计算机内部电路也可能受到损害。

'中的高信号(+5V)'重置微控制器的引脚使其进入工作状态。低信号(接地)驱动其进入编程模式。复位引脚上提供了内部上拉电阻器,如果没有任何东西连接到该引脚,微控制器将尝试执行写入其中的程序。设计者可以提供一个阻容复位电路,但并不总是必要的。不管怎样,大多数情况下都会使用按钮来提供重置功能。在燃烧器电路中,开路集电极输出提供给复位引脚,由编程器通过端口驱动。这么多就够了。

必要的数据传输和接收工作部分由小马程序员处理。按照提供的链接下载小马程序员。以下燃烧器电路可以燃烧ATmega32微控制器。将导出的信号连接到相邻的引脚,将电缆连接到com端口,为设备(即微控制器)通电,微控制器即可编程。

ISP编程器电路图

图:ISP燃烧器的电路图
图:ISP燃烧器的电路图
ISP燃烧器电缆
编程电缆
ISP编程器连接安排
连接安排

电路就是这样设置的。现在让我告诉你,微控制器在图片中的内部校准RC振荡器上运行。因此没有连接晶体。但是微控制器是可编程的。让我们看看软件设置。首先,选择连接设备的端口!和程序从菜单“设置>界面设置…”中选择“SI Prog I/O”,该设备提供最快的编程速度。关于端口,应com端口为了这个编程电缆!现在选择连接电缆的端口。

选择程序员

现在进入设备选择菜单。这里,ATmega32属于AVR家族。因此,它被列在“设备>AVR micro“。选择ATmega32作为您的设备。自动检测也可以。

选择设备

现在,在这两件重要的事情之后,检查你的电路是否工作。选择“命令>全部读取”

命令菜单

现在,如果您看到它正在读取微控制器而没有任何错误消息,则您的编程电缆正在工作,您可以使用它对微控制器进行编程。

工作进展
阅读成功

你可以用它刻录你的十六进制文件(编译器提供十六进制文件给程序微控制器)。只需打开“文件>打开设备文件…”现在将打开一个窗口,浏览十六进制文件,将其加载到pony编程器中,然后刻录。pony编程器也支持单击并拖动操作。这意味着,如果将十六进制文件放入pony编程器中,它将自动捕获它。

组件:

  • DB9阴连接器
  • 2 X 1K电阻器
  • 2 X 5.1 V齐纳二极管
  • 1 X 15K电阻器
  • 维罗板
  • BC 547或任何通用NPN晶体管
  • 外螺纹重新匹配接头(6针和2针)

供参考的链接:

ATmega32数据表

小马程序员下载页面

小马程序员2.06下载

注:1。确保您的计算机硬件中有一个COM端口,并且您的操作系统能够识别它。请从“控制面板>管理工具>计算机管理”中进行检查。在“级联列表”窗格中,找到以下内容

“计算机管理>系统工具>设备管理器>端口(com和LPT)”。如果此列表下存在com端口,则此电路将正常工作。否则,请查找基于USB的刻录机。

附注2.该燃烧器也适用于ATmega16。对于ATmega8,您需要将信号连接到相应的引脚。

附注3.可以省略外螺纹2针重新匹配接头

参考文献

兰科斯网爱特梅尔

Gaurav Chaudhuri先生的博客

61评论

  1. 斯塔克塞卡

    拉凯什…

    您在本电路中提到有4个电阻器,但在3个电阻器中列出,因此请选择适合本电路的电阻器

    请把提到的每一个电阻器

  2. 祖贝尔

    你好
    我也可以通过ISP编程器电路图对Atmega328p进行编程吗?

  3. 亚什

    我可以用USB到串行端口电缆使用这个电路吗???

  4. 牛宿

    请您解释一下如何使用ft232将此电路转换为usb。如果我们使用rs232到usb转换器,它不也是这样吗?

    • 拉凯什

      对它也会这样做。你需要仔细地寻找信号并修补它们。

      • 牛宿

        如果你能解释一下电路,那就太好了。我对如何连接复位和sck引脚有点困惑。请

  5. 尼利斯

    我是这个程序员的新用户,正在使用atmega8?

  6. 南瑞酒店

    当我使用ATmega8时,我应该使用什么硬件设备和电路。请告诉我。

    • 拉凯什

      你好
      硬件都是一样的。你只需要将MOSI、MISO、SCK和RST信号正确地连接到ATmega8。

      • 南瑞酒店

        为什么要在电路中使用变压器以及我们连接它的位置。请明确告诉我。

        • 拉凯什·布特

          那是供电用的。

  7. 南瑞酒店

    当我使用ATmega8时,你应该使用什么硬件设备和电路。请告诉我。

  8. 女同性恋

    感谢程序员,这正是我所需要的。
    这只是给任何试图读取编程芯片的人的提示。
    如果它没有读取并给出一个错误,那么芯片可能有错误
    其振荡器设置为外部。这是我的问题
    通过添加一个晶体(atmega16引脚12和13以及每个引脚到地的22pf盖)解决此问题
    到硬件。

  9. 阿肖克·库马尔

    先生,带AVR微控制器atmega 32的防水温度传感器(DS18B20)是否有代码???????

  10. 哈拉克·拉吉·辛格

    这条电路适用于atmega16吗?

    • 拉凯什

      在atmega32+atmega16上为我工作

  11. 纳西穆尔·哈克

    如何将DB9母连接器连接到笔记本电脑?

    • 拉凯什

      纳西穆尔,
      请向下滚动页面,我给你的建议与我给希瓦·戈什的建议相同

  12. 沙里克

    您好,我可以使用此设备对atmel 89c51进行编程吗?

    • 拉凯什

      89C51需要并行编程,你需要一个专门的并行程序员。如果你对嵌入式系统编程很认真,但又想省钱,我建议你使用arduino pro mini+usb+ttl转换器[带dts]

  13. 湿婆加西

    先生,你能告诉我我不能用ttl usart-to-usb转换器来构建编程器电路,而不是使用DB9端口和usart-to-usb电缆,
    但在这种情况下,我需要知道什么引脚应该连接到ttl设备的RXD和TXD…是MISO和MOSI吗?同时使复位引脚始终向下拉到地上。
    我可以离开其他港口吗?SCK端口的用途是什么?

    • 拉凯什

      Siva,您需要一个usb ttl转换器,该转换器在分线盒中提供dtr输出。

  14. 尤尔曼

    这是因为最近我买了一台ATmega32,并向店主支付了从一位朋友那里获得的十六进制文件的传输费用。不幸的是,我没有得到任何积极的结果,只是我的外部中断项目没有输出。据我所知,他们使用我给他们的十六进制文件使用Arduino将其烧掉。代码如下。

    我的项目是检测外部正极直流电压(5v),它将导致按特定时间间隔依次点亮LED。
    a) 特别是,如果按下开关(正极电压信号),IC应产生8个LED的1次顺序输出(LED1亮起。2秒钟后,LED1熄灭。然后,LED2应点亮1分钟,然后熄灭。然后,LED3应点亮2秒钟,然后熄灭。然后,LED4、5、6、7和LED8也应点亮1分钟,然后熄灭。在此期间(从LED1到LED8),系统必须忽略任何正输入。但在完全实现LED的8个输出后,只有在此时,系统才会再次实现另一个正外部信号。
    b) IC的顺序输出不得在该时间段内中断(从LED1到LED8),这意味着它应该锁定自身。它应该忽略来自任何外部输入的任何正信号。
    c) 仅使用Atmega32A PU,因为这是我仅有的可用芯片。
    d) 如果有需要更正的地方,请更正C代码。
    e、 )请同时提供正确的十六进制文件。
    f、 )请注意,电子仓库管理员将使用Arduino对该Atmega32A PU进行编程。
    g、 )如有必要,请说明保险丝和引导器,因为我对此一无所知,也许店主也不知道。
    h、 )电路中是否不需要晶体振荡器?

    这是C代码:(请更正)
    附件:电路图和十六进制代码(请更正)

    *********************************************************************************/

    #包括
    #包括
    #包括

    #定义LED\u端口\u目录DDRC
    #定义LED_端口端口C
    #定义LED_数据(0x01)
    #定义发光二极管(次)(发光二极管数据<<次)
    #定义延迟_MS(2000)//以毫秒为单位
    #定义最大延迟毫秒(10000)//以毫秒为单位
    #定义LED_关闭(0x00)

    /*****函数初始化端口*****/
    /*输出端口*/
    void init_端口()
    {
    LED_端口_目录=0xFF;
    }

    /*****函数初始化中断*****/
    void init_中断()
    {
    cli();//禁用全局中断
    GICR=(1<MCUCR=(3<_延迟毫秒(最大延迟毫秒);
    sei();//启用全局中断

    }

    /*****INT0中断服务程序*****/
    情报、监视和侦察(国际矢量)
    {
    静态整数i=1;//第一次禁用它
    如果(!i){

    对于(i=0;i<8;i++){

    发光二极管端口=发光二极管(i);

    如果((i+1)!=8){
    _延迟时间(延迟时间);
    }
    否则{
    _延迟毫秒(最大延迟毫秒);
    }
    }
    }

    i=0;
    LED_端口=LED_关闭;
    }

    /*****主要功能*****/
    内部主(空)
    {
    初始化端口();
    _延迟毫秒(最大延迟毫秒);
    初始化中断();

    而(1)
    {

    }
    }

    • 拉凯什

      好吧,我想我终于明白你想说什么了。你按下一个键,一道光扫过阵列。
      好的,这里是你如何做到的:

      情报、监视和侦察(国际矢量){
      int i=7;
      对于(;i>=0;i–){
      LED_端口=(1<_延迟时间(延迟时间);
      LED_端口=0x00;
      }
      }

      请检查符号。我使用嵌入式C已经很多天了

  15. 尤尔曼

    您好,先生,您有什么意见,为什么在编写这个特定的uC和程序员时没有提到保险丝和引导加载程序?
    你能解释一下吗?谢谢

    • 拉凯什

      嗨,尤尔曼,我没有对他做任何改变。默认设置可以正常工作。。但是为了获得更好的性能,您可以参考Atmel数据表。

  16. 萨西德哈兰

    按照你的指示做了。但是我没有得到任何肯定的结果。ponyprog没有检测到我的设备。有没有办法检查我的微控制器的状况?你能帮我吗?

    • 拉凯什

      看,在这个电路中有很多手工制作的东西需要正常工作。首先检查燃烧器是否提供信号。
      如果有效…检查面包板上的补丁

  17. 杰伊

    你好
    你能告诉我COMPort和USB刻录机的大概价格以及它的外观图片吗?我无法从上面的图片中识别它。

    谢谢

    • 拉凯什

      请参阅,这将不适用于外部com端口…
      对于程序员来说,系统需要直接访问Com端口

  18. 沙尚克贾因

    亲爱的先生:,
    我可以使用4.9伏的电源吗?如何检查端口是否处于工作状态。
    非常感谢。

    • 拉凯什

      是的,ATMega系列微控制器能够容忍这种情况

  19. 拉诺

    有没有办法从笔记本电脑的usb端口烧掉ATmega32芯片?

    • 拉凯什

      是的,有可能。但需要一个中间集成电路。市场上和互联网上都有现成的电路板。抢一个比自己做一个好。

    • 安尼什

      谷歌为USBASP服务。你可以在易趣上找到它

  20. 狮子座

    嗨,拉凯什先生,

    我试过AT89S52,但在执行“全部读取”和“全部写入”命令时,它会显示“设备无响应”。问题出在哪里?在上面的图片上,您使用了什么电压,以及您在试验板上的电压端子连接在哪里?

    • 拉凯什

      狮子座,
      使用89S52有点困难。编程更困难。这就是我避免使用它的原因。如果您的电路正常,请尝试从下拉列表中选择适当的设备,如前所示。我希望这会有所帮助。

  21. 罗欣

    我喜欢你的反馈。现在我得到了我的答案。现在我要开始我的项目。这是非常有用的信息。许多网站都在讲述这一点,但没有人能像你的网站那样说得很清楚。谢谢亲爱的rakesh和circuitstoday.com。我喜欢你的网站。谢谢。

  22. 罗欣

    还有一个问题,我能用这个isp程序员烧atmel89s52 40针吗?我将非常感谢你。

    • 拉凯什

      我还没有尝试过用小马程序员烧录89S51(不支持89S52和89s53)。我建议你去小马程序员网站。示意图在那里。你可以跟着他们。事实上,我从来没有觉得使用基于8051体系结构的微控制器很容易。

  23. 罗欣

    亲爱的先生,我是微控制器新手。我能理解p3连接到atmega 16/32,但什么是p5头2。请尽快告诉我。

    • 拉凯什

      此P5提供了一个选项,用于跳过用于编程ATmega16/32的试验板。它是可选的,您可以将其从电路中移除,这一点都不有害。但是,然后,您需要连接安装在试验板上的微控制器。然后你可以为它提供5V电压

      你可以不用叫我先生,你可以直接称呼我为拉凯什。

  24. 安得烈

    你好
    我刚刚用提供的atmega 32L编程原理图构建了isp编程电路。
    但是,当我尝试使用pony prog“读取全部”时,会收到一条错误消息“设备丢失或未知设备(-24)”。如果忽略该消息,则设备最终会读取微控制器中的十六进制文件。
    如何避免错误消息?

    当做

    • 拉凯什

      在制作这根电缆时,我经常遇到这个问题。如果连接或设置有问题,会出现此消息。只有当小马程序员识别连接的设备时,才会显示此消息。请尝试进行以下检查:
      1> 首先,检查小马编程器中的设置,假设您正在连接ATMega8,从设备菜单中选择相同的设置。在这种情况下,读取的十六进制文件不能全部为FF。
      2> 为编程选择的端口必须正确。在这种情况下,它必须位于一个物理com端口上。
      3> 检查电路输出中的信号是否可用。您可以使用LED来检测信号。
      4> 检查复位时晶体管是否导通。或者您可以尝试将复位引脚接地,然后编程。

      • 安得烈

        嗨,拉凯什,
        谢谢你的回复。我检查了我的电路,发现我没有正确连接信号的接地。我进行了故障排除,现在一切正常。

      • 曼茂

        在第一次阅读中,所有内容都没有错误,但都是FF。我能做什么?

  25. 德席尔瓦

    亲爱的先生:,
    在电路图中,R5、R6、R7、R8显示为1k电阻器,但元件列表显示了它,

    2个1K电阻器,
    1个15K电阻器,
    哪一个是正确的?

    • 拉凯什

      您可以用1K到10k之间的任何电阻值替换1K电阻。对不起,迟了回复,这几天我真的很忙。

  26. 阿洛克

    我们可以使用db9到usb接口从笔记本电脑编程吗?

    • 拉凯什

      遗憾的是,没有。USB到RS232转换器将无法工作。但转换器中使用的芯片可用于设计ISP燃烧器。使用的ic是FTDI芯片的FT232。在2011年之前,它仅用于Arduino板。芯片和arduino的驱动器工作正常。但该芯片、USB串行驱动程序和PONY-PROG不能混合使用。

  27. 荷西·李蒙

    电阻器的瓦数是多少?我能用AVR工作室吗?

    • 拉凯什

      1/4或1/6瓦就可以了。

      关于AVR studio兼容性。此燃烧器电缆不能从AVR studio内部驱动。但是,它可以下载AVR studio生成的十六进制文件。

      十六进制文件是在生成代码后生成的。它可以在“\\default”目录中找到。

      流程如下

      在avr studio中创建项目->编写程序->构建程序->查找十六进制文件->打开小马编程器->加载十六进制文件->将电缆连接到PC并将另一端连接到微控制器->选择小马编程器中的选项->将十六进制文件下载到微控制器中。

      • 荷西·李蒙

        YOU’RE COOL MAN THANKS were so excited to try this

        • 拉凯什

          谢谢你的欣赏!

  28. 拉凯什

    @安尼什
    通过复位引脚在正常模式和编程模式之间进行切换。复位引脚有两个功能。如果它处于高位,微控制器将在正常模式下运行。该引脚由电阻器在内部上拉。因此,即使用户没有连接任何电阻器,微控制器也将在正常模式下运行

    当复位引脚处于低位时,微控制器进入编程。在此模式下可进行两种编程:ISP编程和并行编程。

  29. 安尼什

    哦,对不起,我没有完全阅读这篇文章。不过我还有一个问题。串行到usb转换器是否可以与此ISP程序员一起工作?

  30. 安尼什

    嗨,拉凯什,
    因此,atmega32不需要编程电压。但它是如何在编程模式和正常模式之间切换的呢?喜欢这些照片吗

  31. 拉凯什

    哦,对不起。关于电压,我的意思是13.2V。ATmega32不需要它。某些微控制器在某些编程模式下需要该电压。

  32. 拉凯什

    @舒利德
    ATmega32不需要任何电压,因为一些ATtiny微控制器或一些PIC微控制器需要它。电路5V调节器需要变压器,它为微控制器供电。
    关于齐纳二极管,它实际上并不转换电压。术语“成形”更适合于其操作。齐纳二极管通过放电电流将两个节点之间的电压降低到齐纳二极管的额定电压。

  33. 舒利德

    另一件事,Rakesh,变压器(如图3所示),您是否使用它为uC提供编程电压(~13.2V)?

  34. 舒利德

    拉凯什…

    “齐纳二极管为信号提供必要的调节。其连接方式可将±12伏信号转换为适用于微控制器的+5-0伏信号…”-齐纳二极管可以转换电压吗?或者你说的是降低电压??

Baidu