Главная » Микроконтроллеры
Призовой фонд
на октябрь 2020 г.
1. 1500 руб
Сайт Паяльник
2. Тестер компонентов MG328
Сайт Паяльник
3. 150 руб.
От пользователей


Сверхъяркие 5мм светодиды разных цветов. 50 шт

STM32F4. Урок 19 - Работа с EEprom M24C02 по I2C

Данная библиотека необходима для работы с микросхемой M24C02 (256Byte EEPROM) на внешнем модуле, подключенном через интерфейс I2C к STM32F4. К линиям SCL и SDA необходимо подключить подтягивающие вверх резисторы по 4,7кОм, иначе интерфейс работать не будет. Возможно подключение до 8 микросхем M24C02, но тогда необходимо использование третьего адресного вывода. Для работы библиотеки необходимо также подключить низкоуровневую библиотеку для работы с I2C.

Демонстрация работы:

http://mikrocontroller.bplaced.net/wordpress/wp-content/uploads/2013/03/m24c02.jpg

Используемые выводы:

SCL к PB6
SDA к PB7

Требования:

   Подключаемые модули CooCox-IDE: отсутствуют.
   Поддерживаемые библиотеки: STM32_UB_I2C1.

Перечисления:

typedef enum {
  M24C02_0 = 0xA0, // A2=0, A1=0, A0=0
  M24C02_1 = 0xA2, // A2=0, A1=0, A0=1
  M24C02_2 = 0xA4, // A2=0, A1=1, A0=0
  M24C02_3 = 0xA6, // A2=0, A1=1, A0=1
  M24C02_4 = 0xA8, // A2=1, A1=0, A0=0
  M24C02_5 = 0xAA, // A2=1, A1=0, A0=1
  M24C02_6 = 0xAC, // A2=1, A1=1, A0=0
  M24C02_7 = 0xAE  // A2=1, A1=1, A0=1
}I2C_ADR_M24C02_t;

Функции:

ErrorStatus UB_M24C02_Init(I2C_ADR_M24C02_t slave);                             // Инициализация EEProm
int16_t UB_M24C02_ReadByte(I2C_ADR_M24C02_t slave, uint8_t adr);                // читать байт из памяти EEPROM
int16_t UB_M24C02_WriteByte(I2C_ADR_M24C02_t slave, uint8_t adr, uint8_t wert); // писать байт в память EEPROM

Пример использования:

//--------------------------------------------------------------
// File     : main.c
// Datum    : 07.03.2013
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F4
// IDE      : CooCox CoIDE 1.7.0
// Module   : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo der M24C02 Library
// Hinweis  : Diese zwei Files muessen auf 8MHz stehen
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------

#include "main.h"
#include "stm32_ub_m24c02.h"
#include "stm32_ub_led.h"

int main(void)
{
  ErrorStatus check;
  int16_t wert;

  SystemInit(); // инициализация настроек кварца

  UB_Led_Init(); // инициализация светодиодов

  // инициализация EEprom через I2C-1 с адресом 0xA2
  check=UB_M24C02_Init(M24C02_1);
  if(check==SUCCESS) {
	  UB_Led_On(LED_GREEN);

	  // записать значение 0x12 по адресу 0x03
	  UB_M24C02_WriteByte(M24C02_1,0x03,0x12);
	  // зачитать новое значение
	  wert=UB_M24C02_ReadByte(M24C02_1,0x03);
	  // проверка, все ли в порядке
	  if(wert==0x12) {
		  UB_Led_On(LED_BLUE);
	  }
	  else {
		  UB_Led_On(LED_ORANGE);
	  }
  }
  else {
	  UB_Led_On(LED_RED);
  }

  while(1)
  {

  }
}

В приложении проект CooCox и отдельная библиотека для использования в других проектах. Автор оригинала статьи просит задавать вопросы на его сайте на немецком или английских языках.

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
владислав #
Как зашить в память 24с02 ряд цифр?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Сатфайндер Конструктор регулируемого преобразователя напряжения LM317
вверх