Чтение Flash памяти

Алгоритм чтения Flash памяти данных приведен ниже (подробности загрузки команд, адресов и данных см. в разделе Программирование Flash памяти).

  1. Загрузить команду 0000 0010.
  2. Загрузить младший адрес ($00 - $FF).
  3. Загрузить старший адрес (для ATmega603: $7F, для ATmega103: $FF).
  4. Установить OE в состояние 0 и BS1 в состояние 0. По выводам PB(7 - 0) можно считать младший байт данных
  5. Установить BS в состояние 1. По выводам PB(7 - 0) можно считать старший байт данных.
  6. Установить OE в состояние 1

Команда загружается только перед чтением первого байта.

Чтение памяти EEPROM

Алгоритм чтения EEPROM памяти данных приведен ниже (подробности загрузки команд, адресов и данных см. в разделе Программирование Flash памяти).

  1. Загрузить команду 0000 0011.
  2. Загрузить младший адрес EEPROM ($00 - $FF).
  3. Загрузить старший адрес EEPROM (для ATmega603: $07, для ATmega103: $0F).
  4. Установить OE в состояние 0 и BS1 в состояние 0. По выводам PB(7 - 0) можно считать байт данных EEPROM.
  5. Установить OE в состояние 1.

Команда загружается только перед чтением первого байта.

Программирование битов-предохранителей

Алгоритм программирования битов-предохранителей приведен ниже (подробности загрузки команд, адресов и данных см. в разделе Программирование Flash памяти).

  1. Загрузить команду 0100 0000.
  2. Загрузить данные
    Бит 5 = 0 программирует SPIEN бит-предохранитель. Бит 5 = 1 стирает SPIEN бит-предохранитель.
    Бит 3 = 0 программирует EESAVE бит-предохранитель. Бит 3 = 1 стирает EESAVE бит-предохранитель.
    Бит 2 = всегда в состоянии 1.
    Бит 1 = 0 программирует SUT1 бит-предохранитель. Бит 1 = 1 стирает SUT1 бит-предохранитель.
    Бит 0 = 0 программирует SUT0 бит-предохранитель. Бит 0 = 1 стирает SUT0 бит- предохранитель.
  3. Подать на вывод WR отрицательный импульс и ожидать перехода вывода RDY/BSY на высокий уровень.

Программирование битов блокирования

Алгоритм программирования битов блокирования приведен ниже (подробности загрузки команд, адресов и данных см. в разделе Программирование Flash памяти).

  1. Загрузить команду 0010 0000.
  2. Загрузить данные.
    Бит 2 = 0 программирует бит блокирования 2.
    Бит 1 = 0 программирует бит блокирования 1.
  3. Подать на вывод WR отрицательный импульс и ожидать перехода вывода RDY/BSY на высокий уровень.

Биты блокирования могут быть очищены только при выполнении операции очистки кристалла.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: