DS2430A: работа с EEPROM по шине 1-Wire |
Добавил(а) microsin | ||||||
Компания Dallas Semiconductor выпускает энергонезависимые микросхемы памяти, в которых для доступа используется популярная однопроводная шина 1-Wire [1]. В этой статье описывается работа с такой микросхемой из программы для AVR (макетная плата AVR-USB-MEGA16, микроконтроллер ATmega32A, кварц 12 МГц). [Микросхема памяти DS2430A, обзор] DS2430A представляет собой энергонезависимую память (nonvolatile EEPROM) на 256 бит. DS2430A уже немного устарела, и производитель рекомендует её заменить на более современную - DS2431 1024-Bit 1-Wire EEPROM. Основные возможности DS2430A: - 256 бит памяти организованы как одна страница из 32 байт с произвольным доступом по адресу к каждому байту. - Кроме 256 бит памяти EEPROM, имеется 64-битный нестираемый идентификатор микросхемы, который прописан на заводе. Этот идентификатор состоит из 8 бит кода семейства, 48 бит серийного номера, и для их проверки имеется 8 бит CRC (контрольная сумма для проверки достоверности данных). 8-битный код семейства указывает для управляющего микроконтроллера тип подключенной микросхемы. 48-битный идентификатор уникален для каждого экземпляра микросхемы, и благодаря ему можно несколько микросхем подключить параллельно к шине 1-Wire, и осуществлять к ним раздельный доступ. - В микросхему встроен специальный multidrop контроллер, который обеспечивает совместимость по шине с другими продуктами стандарта MicroLAN. - Микросхема подключается и питается через один единственный провод шины 1-Wire. - Микросхему можно подключить напрямую к ножке порта любого микроконтроллера, и передавать данные памяти со скоростью 15.3 килобита в секунду. - Детектор присутствия (presence detector) выдает подтверждение, когда устройство чтение подает питание на микросхему через шину 1-Wire. - Микросхема поставляется в недорогих корпусах TO-92 (3 вывода) или TSOC и UCSP (6 выводов, для одностороннего монтажа). Для всех корпусов вывод 1 земля (общий провод, GND), а вывод 2 шина 1-Wire (по ней одновременно передается питание и передаются данные). - Напряжение питания для чтения и записи лежит в широком диапазоне 2.8 .. 5.25V, допустимый температурный диапазон от -40 до +85 oC. Более подробную информацию можно получить из даташита на микросхему (можно взять из папки doc архива по ссылке [2]). [Проект DS2430A-reader] Вся система состоит из LCD-индикатора SC2004ASLT-EH-G (20x4 символов, нерусифицированный), и нагрузочного резистора 4.7 кОм для шины 1-Wire (через которую подключена микросхема DS2430A). Индикатор подключен по четырехпроводной шине данных, к старшей тетраде 8-битной шины индикатора. На схеме показано подключение индикатора и микросхемы DS2430A к макетной плате AVR-USB-MEGA16. Сигналы LCD_D4, LCD_D5, LCD_D6, LCD_D7 подключены к шине данных индикатора, LCD_E подключен к выборке индикатора, LCD_RS сигнал для переключения данные/команда, сигнал LCD_RW переключает режим чтение или запись. Сигнал MEM_B1 - шина 1-Wire, по которой микросхема DS2430A получает питание и обменивается данными (питание обеспечивает нагрузочный резистор 4.7 кОм). К ножкам BTN_UP, BTN_DOWN, BTN_LEFT, BTN_RIGHT, BTN_ENTER подключена 5-кнопочная клавиатура (простые замыкатели на землю GND). На рисунке показана разводка всех сигналов к портам макетной платы AVR-USB-MEGA16. Для работы с микросхемой DS2430A предназначено простейшее меню: Read (чтение данных микросхемы в буфер) Write (запись буфера в микросхему), Edit (редактирование содержимого памяти). По пунктам меню осуществляется навигация в виде курсора из символов квадратных скобок. Кнопка ENTER запускает выполнение пункта меню. О состоянии операции чтения/записи выводятся соответствующие сообщения (READ OK, WRITE OK). Если нет доступа к микросхеме DS2430A (например, она не подключена или неисправна), то выдается сообщение об ошибке (NO IC). Шестнадцатеричный редактор памяти (режим Edit) устроен очень просто - содержимое буфера распечатывается на экране в виде HEX-дампа, и текущий редактируемый байт показывается мигающим курсором. Кнопки UP и DOWN меняют содержимое байта (его данные), а кнопки LEFT и RIGHT меняют адрес редактируемого байта. Кнопка ENTER служит для выхода из режима редактирования буфера. После того, как буфер отредактирован, его можно записать в микросхему памяти DS2430A операцией Write. Исходный код проекта можно скачать в архиве по ссылке [2]. Назначение папок архива: В корневой папке лежат все файлы исходного кода проекта (AVR Studio ver. 4.19). Скомпилировать проект можно из среды AVR Studio любой версии начиная с ver. 4.19 через меню Build -> Rebuild All, а также из командной строки с помощью утилиты make. Для этого перейдите в папку debug или release и выполните команды наподобие следующих (на примере release): make --makefile=Makefile.release clean [Ссылки] 1. iButton: описание протокола, электронный замок на ключах-таблетках. |