我使用Boarduino和30行面包板为ATtiny编程。我加载了一个不太复杂的草图,称为ArduinoISP(现在默认包含在Arduino IDE中),突然我有了一个正在工作的程序员。Atmel出售一款不错的编程器,价格在30到40美元之间,并且有很多工具包可以使价格更便宜。
一旦找到了工作的程序员,并做了些指示灯,我就感到非常高兴。但是,现在我可怜的boarduino被卡在程序员的职责上。
据我所知,程序员按住复位按钮,然后在MOSI和MISO引脚上进行发送和接收。 我认为SCK未使用或至少不需要。 (根据ATtiny数据表,需要SCK,如果没有它,我的程序员将无法工作,而且我找不到我认为不需要的地方。)
为什么我需要硬件编程器才能传输串行信号?我的意思是,让我们假设我愿意用手指按住复位按钮,而不是使用IC。剩下的就是串行发送和接收,所以我只需要三根线GND,RXD和TXD。哎呀,如果我有“ DTR”线或其他任何东西,您甚至可以使用串行电缆按住复位按钮。
为什么所有这些硬件解决方案也需要精美的软件(例如AVRdude或AVR Studio或其他)?
我的意思是我可以理解一条USB电缆,该电缆将微控制器作为大容量存储设备呈现出来,并允许您拖动二进制文件进行编程(例如此ARM开发板)。仅硬件,使用标准软件驱动程序。
我也可以理解纯软件的解决方案(使用FTDI芯片之类的东西简化从USB到芯片的连接线)。所有精美的编程协议都将由计算机上的软件处理,而硬件将只是一些电线。
为什么我们同时涉及(复杂的)软件和硬件?我的意思是,据我所知,对微控制器进行编程非常容易,但是当我刚接触它时,我真的很担心自己如何从mouser或digikey购买芯片而无需花一些专家来编写引导加载程序为了我。
我敢肯定有一个很好的理由(这不是我编写软件或开始制造拖放式USB编程器),但是作为一个新手,我不知道它是什么。