85。如何刻录引导加载程序?什么过程?


8

我想使用ATtiny85的所有六个I / O引脚,这意味着也将复位引脚用作I / O引脚,但是,我发现如果禁用RESET引脚,则无法再使用ATtiny85对ATtiny进行编程。 ISP程序员。

但是,我发现有一些ATtiny引导程序,据我所知,它们使我可以通过USB编程ATtiny,而无需RESET引脚。

我的问题是:如何将这样的引导程序(例如微核)刻录到ATtiny85?那之后我需要如何将ATtiny连接到USB(像这样?)?之后如何编程?请记住,就烧录引导程序和修改保险丝而言,我是一个完整的新手。

另外,由于我没有真正的ISP程序员,所以我将ArduinoISP草图用作我的ISP程序员,但是据我所读,这不会有问题。

编辑:我确实有我在eBay上花了几美元买的东西,我不知道如何以及是否需要使用: 在此处输入图片说明


刻录引导加载程序与刻录任何其他程序相同。但是,如果那里有坏电池并更换了复位保险丝,则您将一直受其困扰,直到获得另一个芯片或高压编程器为止。因此,我建议您在更换保险丝之前先测试USB Bootloader。您的软件USB代码可能随附有关近似 USB电接口的电路的建议。
克里斯·斯特拉顿

Answers:


1

我刚刚完成了与ATtiny84A,ATtiny85和ATmega328P的TinySafeBoot(TSB)的完全集成的Arduino-Plugin。

您可以在以下位置找到该项目:
https : //mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html

您可以按原样使用它,然后将Reset Pin用作模拟输入。仅注意电压不要低于0.6 * VCC

或者,您可以修改保险丝boards.txt以使该引脚可用:
转到Arduino Preferences,然后单击指向preferences.txt(Mine :)的链接/Users/stefan/Library/Arduino15/preferences.txt。在此文件夹中,浏览至/packages/atflash/hardware/avr/0.1.0。打开boards.txt并转到部分
ATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)

将行更改
ATTSB85.bootloader.high_fuses=0xdf

ATTSB85.bootloader.high_fuses=0x5f

重新启动Arduino并通过Arduino菜单刻录引导程序。


如果您甚至还想从ATtiny85获得另一个Pin:您可以将引导加载程序更改为仅将一个Pin用于RX和TX(请参阅TSB网站)。但是为什么要全力以赴呢?只需乘坐ATtiny84A。它具有14个引脚而不是8个引脚,成本几乎相同。

斯特凡


2
  • 是的,ATtiny85有USB接口。只需看看其中的一种开放式硬件设计,例如Digispark
  • 一个USB接口将需要两个引脚,因此使用一个来节省一个引脚并不能使我觉得性价比高。
  • 我同意@FAD的观点,即您实际上并不需要USB堆栈,而只需用UART引脚执行启动时延操作即可。
  • HVSP(高压编程)并不难。如果您已经对ArduinoISP满意,可以尝试ScratchMonkey,它使用相同的方法(使用12V电源和一个晶体管)来进行HVSP编程。

在不进行编程时,可以使用跳线关闭USB接口,或者可以将USB接口用于不干扰编程的用途。重编程通常在复位后立即完成。
AMADANON Inc.

1

的确,如果您将复位引脚用作IO,那么您需要一个特殊的编程器,我相信它可以提供高电压(如果我记得,则为12v)或类似的电压将12v电源施加到该引脚以强制其进入编程模式,然后使用普通编程器(或其他arduino)进行编程。但是,您正在寻找的东西就像在Arduino中所做的一样。arduino是通过ISP通过特殊的引导加载程序进行编程的,因此当您为微控制器加电时,引导加载程序将首先执行,并在几毫秒内检查UART引脚是否有活动,如果看到有效的内容,它将切换到编程模式,在其中等待新代码通过UART(不是ISP)进入并写入程序位置,否则引导加载程序将简单地将代码执行交给现有程序(如果有)。

这是它的工作原理的简单说明: 假设您的微控制器闪存大小为1KB,而引导加载程序为100B,则您的程序可以存储在101B +位置,最大大小为(1KB-100B)。因此,当引导加载程序启动且UART引脚上没有任何活动时,它会跳到程序的位置(在101B),而如果检测到编程活动,它将开始读取新代码并覆盖从101B开始的闪存(因此它将不会)改写自己)。

而且,您将需要USBASP首次对引导加载程序进行编程。而且,由于该芯片不支持USB,因此您不通过USB对ATtiny85进行编程,但是,您使用USB来串行模拟通过USB串行协议的芯片/模块。一些atmel微控制器具有串行支持,而其他微控制器则可以通过软件仿真来完成。

  • 就像克里斯建议的那样,在测试并验证引导加载程序工作之前,不要禁用复位引脚。


@ IgnacioVazquez-Abrams,这很酷,并且已经实现了自举程序。那时候我的信息有点旧了:)。但是,它仍然是相同的概念,只是与PC直接通信而不是USB串行仿真。谢谢

您也可以通过Arduino(UNO或equiv)将引导加载程序刻录到ATtiny。以下是一些说明:highlowtech.org/?p = 1695,或者如果您喜欢视频,请访问:youtube.com/watch?
Sourcery

这是一个关于使用Arduino的SPI编程ATtiny4 5 9 10 20和40的好页面,因此它不是ATtiny85,但我认为这是相关的。该博客还提到的一件事是,如果您将复位引脚用作I / O,则只需12v源即可触发编程模式,并且仍然可以以相同的方式对其进行编程,因此没有我以前想到的特殊编程器。junkplusarduino.blogspot.com/p/attiny10-resources.html
Fahad Alduraibi 2014年

@ FAD,4/5/9/10是与ATtiny85完全不同的野兽。的确,他们为高压编程和常规电压编程说的是相同的编程协议(TPI),但是对于其他任何ATxxx微控制器来说,事实并非如此。
microtherion 2014年

0

我确实在eBay上花了几美元买了这东西,我不知道该如何使用以及是否需要使用:

它比您的arduinoisp更好。

谷歌avrdude / avrdudess。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.