Объявление

Свернуть
Пока нет объявлений.

Работа с EEPROM типа 24LCxx.

Свернуть
X
Свернуть

  • Работа с EEPROM типа 24LCxx.


    Компания Microchip выпускает широкий спектр недорогой энергонезависимой памяти с последовательным интерфейсом I2C. Емкость этих EEPROM начинается со 128 бит и может достигать 256 и более кбит, что позволяет применять ее в различных областях электроники. И хотя сейчас многие микроконтроллеры имеют EEPROM данных на своем кристалле, ее может оказаться недостаточно. Поэтому в некоторых случаях применение внешней памяти будет вполне оправданно (примеры применения данных микросхем имеются и на этом сайте).
    Полное описание технических характеристик EEPROM можно найти на сайте производителя, а на этой странице приведены лишь тексты подпрограмм для работы с данными микросхемами. Подпрограммы написаны для PIC-контроллеров и позволяют производить запись или чтение одного байта по заданному адресу EEPROM. Эти подпрограммы применимы для работы с микросхемами емкостью до 16 кбит. Для больших емкостей необходимо приведенные ниже подпрограммы модифицировать таким образом, что бы адрес ячейки памяти передавался двумя байтами. Так же, если за один цикл необходимо считать/записать более одного байта, то нижеприведенные подпрограммы так же необходимо модифицировать.

    Текст программы: LIST p=16c505, r=hex
    include P16C505.INC
    cblock 0x08 ;Регистры
    AddrLo ;Младший байт адреса в EEPROM
    AddrHi ;Старший байт адреса в EEPROM
    Cnt ;Счетчик
    Temp ;Регистры для хранения переменных разного назначения
    TempTr ;
    endc
    ;Константы для инициализации
    InitOption equ b'00000000'
    InitPortC equ b'00000000'
    InitPortB equ b'00000000'
    SDARecPortC equ b'00010000' ;Константа для переключения линии SDA на вход
    #define SCL PORTC,3
    #define SDA PORTC,4
    goto Begin
    Init ;Общая инициализация
    movlw InitPortB ;
    tris PORTB ;
    movlw InitPortC ;
    tris PORTC ;
    movlw InitOption ;
    option ;
    return ;
    SwReceive ;Переключение SDA на вход
    movlw SDARecPortC
    tris PORTB
    return
    Transmitt
    movwf TempTr ;
    bsf SDA ;
    call Init ;Переключить линию для передачи
    bcf SDA ;Start
    bcf SCL ;
    bcf STATUS,C ;Передача байта управления
    rlf AddrHi,0 ;и трех старших бит адреса
    iorlw b'10100000' ;
    call SendByte ;
    call SwReceive ;Переключить линию для приема подтверждения
    bsf SCL ;Прием подтверждения
    btfsc SDA ;
    goto Transmitt ;Подтверждение отсутствует
    bcf SCL ;
    call Init ;Переключить на передачу
    movf AddrLo,0 ;Передать младший байт адреса
    call SendByte ;
    call SwReceive ;Переключить линию для приема подтверждения
    bsf SCL ;прием подтверждения
    btfsc SDA ;
    goto Transmitt ;Подтверждение отсутствует
    bcf SCL ;
    call Init ;Переключить на передачу
    movf TempTr,0 ;Передача байта
    call SendByte ;
    call SwReceive ;Переключить линию для приема подтверждения
    bsf SCL ;Прием подтверждения
    btfsc SDA ;
    goto Transmitt ;Подтверждение отсутствует
    bcf SCL ;
    call Init ;Переключить на передачу
    bcf SDA ;Stop
    bsf SCL ;
    bsf SDA ;
    return
    SendByte ;Подпрограмма передачи одного байта
    movwf Temp
    movlw 0x8
    movwf Cnt
    SendBt
    clrwdt
    bcf SDA
    rlf Temp,1
    btfsc STATUS,C
    bsf SDA
    bsf SCL
    bcf SCL
    decfsz Cnt,1
    goto SendBt
    return
    Receive
    bsf SDA ;
    call Init ;Переключить на передачу
    bcf SDA ;Start
    bcf SCL ;
    bcf STATUS,C ;Передача байта управления
    rlf AddrHi,0 ;и трех старших бит адреса
    iorlw b'10100000' ;
    call SendByte ;
    call SwReceive ;Переключить на прием
    bsf SCL ;Прием подтверждения
    btfsc SDA ;
    goto Receive ;Подтверждение отсутствует
    bcf SCL ;
    call Init ;Переключить на передачу
    movf AddrLo,0 ;Передать младший байт адреса
    call SendByte ;
    call SwReceive ;Переключить на прием
    bsf SCL ;Прием подтвержедния
    btfsc SDA ;
    goto Receive ;Подтверждение отсутствует
    bcf SCL ;
    call Init ;Переключить на передачу
    bsf SDA ;Повторный Start
    bsf SCL ;
    bcf SDA ;
    bcf SCL ;
    bsf STATUS,C ;Передача байта управления
    rlf AddrHi,0 ;и трех старших бит адреса
    iorlw b'10100000' ;
    call SendByte ;
    call SwReceive ;Переключить на прием
    bsf SCL ;прием подтверждения
    btfsc SDA ;
    goto Receive ;Подтверждение отсутствует
    bcf SCL ;
    call ReceiveByte ;Прием байта
    bcf SDA ;
    call Init ;Переключить на передачу
    bsf SCL ;Передача подтверждения
    bsf SDA ;Stop
    return
    ReceiveByte ;Подпрограмма приема одного байта
    movlw 0x8
    movwf Cnt
    ReceiveBt
    clrwdt
    bsf SCL
    bcf STATUS,C
    btfsc SDA
    bsf STATUS,C
    rlf Temp,1
    bcf SCL
    decfsz Cnt,1
    goto ReceiveBt
    movf Temp,0
    movwf TempTr
    return
    Begin
    ;Пример использования подпрограмм:
    movlw 0xbc ;Запись значения 0x55 по адресу 0x2bc
    movwf AddrLo ;
    movlw 0x02 ;
    movwf AddrHi ;
    movlw 0x55 ;
    call Transmitt ;
    movlw 0xbc ;Чтение байта по адресу 0x2bc
    movwf AddrLo ;
    movlw 0x02 ;
    movwf AddrHi ;
    call Receive ;Полученное значение будет в регистре w
    goto $
    end

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    • Интерфейс USB
      admin
      Введение

      Шина USB (Universal Serial Bus - универсальная последовательная шина) появилась по компьютерным меркам довольно давно - версия первого утвержденного варианта стандарта появилась 15 января 1996 года. Разработка стандарта была инициировна весьма авторитетными фирмами - Intel, DEC, IBM, NEC, Northen Telecom...
      21.01.2017, 11:44
    • CAN протоколы высокого уровня
      admin
      Введение

      CAN протокол получил всемирное признание как очень универсальная, эффективная, надежная и экономически приемлемая платформа для почти любого типа связи данных в передвижных системах, машинах, техническом оборудовании и индустриальной автоматизации. Основанная на базе протоколов высокого уровня CAN-технология успешно конкурирует на рынке распределенных систем автоматизации. Под терминами "CAN стандарт" или "CAN протокол" понимаются функциональные возможности, которые стандартизированы в ISO 11898. Этот стандарт объединяет физический уровень (Physical Layer) и уровень канала данных (Data Link Layer) в соответствии с 7-ми уровневой OSI моделью. Таким образом, "CAN стандарт" соответствует уровню сетевого интерфейса в 4-х уровневой модели TCP/IP. Однако, практическая реализация даже очень простых распределенных систем на базе CAN показывает, что помимо предоставляемых сервисов уровня канала данных требуются более широкие функциональные возможности : передача блоков данных длинной более чем 8 байтов, подтверждение пересылки данных, распределение идентификаторов, запуск сети и функции супервизора узлов. Так как эти дополнительные функциональные возможности непосредственно используются прикладным процессом, вводится понятие уровня приложений (Application Layer) и протоколов высокого уровня. Обычно их и называют термином "CAN протоколы".
      OSI модель протоколов

      ...
      21.01.2017, 11:44
    • Микроконтроллер ATmega169 и кит AVR-Baterfly
      admin
      В ноябре 2002 года к столь полюбившемуся многим разработчикам семейству AVR низкопотребляющих 8- битных Flash микроконтроллеров корпорации Atmel добавился новый микроконтроллер ATmega169, предназначенный для работы в портативном оборудовании с автономным питанием.
      В 1997 году корпорация Atmel, один из мировых лидеров в производстве полупроводниковых приборов, таких как различные логические, смешанно-сигнальные и радиочастотные микросхемы, а так же различные приборы с энергонезависимой памятью, начала выпуск 8- битных микропроцессоров с Flash памятью своего нового семейства AVR. Корпорация Atmel является признанным лидером в технологии производства приборов с Flash памятью, что позволяет ей выпускать Flash микроконтроллеры, которые по цене сравнимы, а порой имеют и более низкую цену, чем аналогичные микроконтроллеры других производителей с ОТР памятью.
      Микропроцессоры семейства AVR содержат высокоскоростное вычислительное ядро RISC архитектуры, развитую периферию и функцию внутрисистемного программирования. Кроме того, микропроцессоры этого семейства имеют производительность 1 MIPS при тактовой частоте 1 МГц, т.е. выполняют большинство команд за 1 цикл.
      Микропроцессор ATmega169 является первым низкопотребляющим членом семейства AVR, который содержит встроенный контроллер ЖКИ. AVR ядро объединяет богатый набор команд и 32 рабочих регистра, которые могут быть напрямую подключены к АЛУ, что позволяет выполнять действия с двумя регистрами одновременно одной командой. Вычислительное ядро построено по Гарвардской архитектуре с разделенными памятью и шинами программы и данных. Процессор имеет одноуровневый конвейер, позволяющий при выполнении команды выбирать следующую. Такая архитектура вычислительного ядра позволяет выполнять команды в каждом цикле. Архитектура вычислительного ядра микропроцессора приведена на рисунке 1.
      Архитектура вычислительного ядра микропроцессора ATmega169. Рисунок 1.
      Микропроцессор содержит 16 кбайт программной Flash памяти, 512 байт EEPROM памяти, 1 кбайт SRAM, 53 линии портов ввода-вывода общего назначения, 32 рабочих...
      21.01.2017, 11:44
    • Микроконтроллеры MSP430 компании Texas Instruments c Flash-памятью.
      admin
      MSP430F11xx - это 16 -разрядный, RISC-архитектуры микроконтроллер со сверхнизким энергопотреблением и Flash-памятью программ.
      Семейство измерительных микроконтроллеров MSP430, компании Texas Instruments, наконец-то пополнилось микроконтроллерами с Flash-памятью программ. И здесь компания Texas Instruments оказалась впереди других компаний. Микроконтроллеры с Flash-памятью программ, компании Texas Instruments, имеют самое низкое энергопотребление в сравнении с микроконтроллерами других компаний. Благодаря применению Flash-памяти, появилась возможность модифицировать память программ, не снимая микроконтроллер с рабочей платы....
      21.01.2017, 11:44
    • Работа с EEPROM типа 24LCxx.
      admin

      Компания Microchip выпускает широкий спектр недорогой энергонезависимой памяти с последовательным интерфейсом I2C. Емкость этих EEPROM начинается со 128 бит и может достигать 256 и более кбит, что позволяет применять ее в различных областях электроники. И хотя сейчас многие микроконтроллеры имеют EEPROM данных на своем кристалле, ее может оказаться недостаточно. Поэтому в некоторых случаях применение внешней памяти будет вполне оправданно (примеры применения данных микросхем имеются и на этом сайте).
      Полное описание технических характеристик EEPROM можно найти на сайте производителя, а на этой странице приведены лишь тексты подпрограмм для работы с данными микросхемами. Подпрограммы написаны для PIC-контроллеров и позволяют производить запись или чтение одного байта по заданному адресу EEPROM. Эти подпрограммы применимы для работы с микросхемами емкостью до 16 кбит. Для больших емкостей необходимо приведенные ниже подпрограммы модифицировать таким образом, что бы адрес ячейки памяти передавался двумя байтами. Так же, если за один цикл необходимо считать/записать более одного байта, то нижеприведенные подпрограммы так же необходимо модифицировать.

      Текст программы:...
      21.01.2017, 11:44
    • Тепло или холодно? (Цифровые термометры Dallas Semiconductor)
      admin
      Журнал «Компоненты и Технологии» №8 2002 г.
      Ракович Н.Н. Из всех видов измерений в повседневной жизни мы чаще всего сталкиваемся с измерением температуры: при плохом самочувствии хватаемся за градусник, перед выходом на улицу смотрим на термометр за окном и т.д. Но это лишь верхушка айсберга: в медицине, промышленности, транспорте, сельском хозяйстве не обойтись без измерения температуры Такие задачи решаются при помощи электронных приборов, среди которых важное место занимают цифровые термометры (лучше в металлическом корпусе).
      Специалистам давно и хорошо известны цифровые термометры Dallas Semiconductor в корпусах ТО92, DIP и SOIC (такие как DS1620, DS1820, DS1821 и другие). В последнее время компания расширила линейку приборов в стальном корпусе microCAN, которые относятся к семейству DS192х и будут рассмотрены далее в настоящей статье. Причин тому несколько: это и уникальный регистрационный номер, и стальной корпус, и возможность работать в однопроводной сети MicroLAN (подробное описание см. http://www.rtcs.ru/case_microlan.htm или Chip News, №5-10, 2000 г.).
      Контактный термометр DS1920. DS1920 представляет собой цифровой термометр (блок-схема на рис.1) в корпусе МiсгоСАN, который обеспечивает измерение температуры в диапазоне от –55°С до +100°С с шагом 0,5°С и временем преобразования 0,2 с. Разрешающая способность 0,5°С и разрядность 9 бит обеспечивают высокую точность измерения, а доступ к внутренним счетчикам дает возможность увеличить разрешение с использованием интерполяции. Особо следует выделить наличие специального набора команд, который позволяет проводить одновременный опрос нескольких приборов DS1920, подключенных к одной шине...
      21.01.2017, 11:43
    Обработка...
    X