自制 USBasp

CListery ARE YOU OK?

本文将 STEP BY STEP 介绍如何制作一个 USBAsp 烧录器,如果在制作过程中遇到问题,请先检查焊接是否有问题,再检查是否与本教程的操作是否有出入

准备材料

要点提醒

  • 电路中的 3V3、68Ω 相当重要,不能随意更换为其他参数
  • 仅支持 Atmega8、Atmega48、Atmega88 系列单片机制作 USBasp
  • 如果你对你的焊接水平不够自信,那么最好先焊接好 USBasp 上的 Type-C 接口,然后再用万用表检查是否短路和虚焊,避免烧毁 PC 的 USB 接口

开始制作

  1. 给 Arduino UNO 烧写 ArduinoISP 程序

    • 打开 ArduinoISP 示例代码
      Open ArduinoISP examples code
    • 并将其编译上传到 Arduino UNO
  2. 将两块板子按以下表格连接

    Arduino UNOUSBasp(SPI2)
    5V(OUT)VCC
    GNDGND
    D13SCK
    D12MISO
    D11MOSI
    D10RST
  3. 先烧录一个测试代码以保证 USBasp 上的单片机工作没有问题

    首先短接 USBASP、SELF_PROG 跳线
    如果是全新的芯片,有可能会无法写入,在烧录之前需要用镊子短接一下 SLOW_SCK

    • 编译并上传 GPIO 检测代码

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      void setup()
      {
      DDRC = 0xFF;
      PORTC = 0xFF;
      }

      void loop()
      {
      PORTC = 0xFE;
      delay(500);
      PORTC = 0xFD;
      delay(500);
      }
    • 等待写入完成后,PC0、PC1 这两个 IO 口连接的 LED 将会开始交替闪烁(如果没有输出,那你就得检查下焊接了)

  4. 通过 AVRDUDE 配置 USBasp

    如果是全新的芯片,有可能会无法写入,在烧录之前需要用镊子短接一下 SLOW_SCK

    • 打开 AVRDUDE,并烧录固件,我这里使用的是 Atmega8a
      flash firmware

    • 设置熔丝位(千万千万要小心,设置错误会导致锁芯片)

      • 这里提供几个芯片的熔丝设置
        TARGETLFUSEHFUSE
        Atmega80xEF0xC9
        Atmega480xFF0xDD
        Atmega880xFF0xDD

      如果你的芯片与我使用的不一样,那就需要参考芯片手册,并在 https://www.engbedded.com/fusecalc 先尝试熔丝位设置

      atmega8-fuse

    断开 SELF_PROG 跳线

  5. 安装驱动

    • 断开两块板子的连接,将 USBasp 连接到 PC
    • 打开设备管理器,没问题的话将会显示 USBasp,如果显示的是 libusb 那就需要安装驱动
    • 打开 Zadig,在 Options 中勾选 “List ALL Devices”
    • 在第一个下拉框中选中 libusb 设备
    • 在驱动选择中选中 WinUSB,然后点击 Install WCID Diver
    • 安装完成后设备管理器应该就正常显示 USBasp 了
  6. 在 ArduinoIDE 中使用 USBasp 给其他芯片烧写 bootloader

    这里以 Atmega328P-AU 为例

    USBasp flash atmega328p

题外话

这块板子也可以作为最小板使用,只需要断开 USBASP 跳线,一些外围电阻、稳压管可以去掉

  • 标题: 自制 USBasp
  • 作者: CListery
  • 创建于 : 2024-07-18 17:04:41
  • 更新于 : 2024-11-15 15:53:32
  • 链接: http://clistery.github.io/2024/07/18/mcu/make-a-usbasp-for-atmel-avr-mcu/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论