usb spi闪存设备如何将程序写入atmega?

时间:2017-01-02 12:29:52

标签: spi atmega

atmega微控制器具有内部可编程存储器。因此usb闪存设备通过spi将数据写入atmega的内部存储器或存储程序并作为slave工作?我也想知道atmega可以获取程序,文件在MicroSD并在没有内部存储器的情况下运行,或者需要在内部磁盘中运行程序,然后在MicroSD中包含程序?我不知道该程序在atmega微控制器中如何工作。

2 个答案:

答案 0 :(得分:1)

有几种方法可以对AVR进行编程:

  • 使用外部程序员。芯片在此期间处于复位状态。然后程序员使用特殊的特殊协议直接写入控制器内的闪存。这就是您的USB编程设备可能将代码写入AVR的方式。有几种协议,但最常见的协议使用SPI使用的相同引脚。你不应该因为这个而混淆它们; - )。

  • 控制器自行编写程序。芯片正在积极执行程序。芯片上的该程序从例如指令获取指令。一张SD卡并使用SPM指令将其复制到本地闪存。

AVR只能从它自己的闪存中获取指令 - 你不能直接从RAM或任何其他外部源执行。

答案 1 :(得分:0)

您可以在AVR设备数据表的末尾或中间找到此问题的最佳答案(例如ATMEGA 328P-PU)。如果你正在使用一些与计算机连接的闪存设备,启动后会有一些初始化顺序,然后会发送一些4字节命令,这些命令可以显示微控制器,存储闪存和/或eeprom的值,熔丝位或关注擦除等也有可读芯片的ID。 Atmega微控制器也可以采用并行模式进行编程,其中一些位用于发送命令,即数据位上的数据。

如果您要求从SD卡或任何其他设备下载程序,可以通过SPM写入闪存,如上所述。有些设备没有下载器的部分闪存 - 如果我记得ATMEGA 48,并且具有可配置部分内存的设备也可用于下载器,可以处理这个,例如。 ATMEGA 88,168,328。因此,如果您想从SPI,USART,TWI等下载程序,您需要配置保险丝位并创建下载程序,以便为您完成。我不确定,ATMEGA 48如何做到这一点,但有可能通过SPM指令编写整个flash。

然而,您可以在数据表中找到最佳答案。在255页面上,您可以找到更多信息。 http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf