Перейти к содержанию

Модуль ic2 работа часов и внешней памяти EEPROM вместе


Рекомендуемые сообщения

Не могу заставить работать модуль, отдельно все работает, но если хочу и считывать внешнюю EEPROM и работать с часами, то часы стоят и показывают ерунду, вот скетч

#include <Wire.h>
#include <Eeprom24C32_64.h>
#define EEPROM_ADDRESS  0x50
static Eeprom24C32_64 eeprom(EEPROM_ADDRESS);


#include <DS1307.h>
// Init the DS1307
DS1307 rtc(SDA, SCL);


void setup() {
  // put your setup code here, to run once:
// Initialize serial communication.
    Serial.begin(9600);
        
    // Initialize EEPROM library.
    eeprom.initialize();

    const word address = 0;
    
    // Write a byte at address 0 in EEPROM memory.
    Serial.println("Write byte to EEPROM memory...");
    eeprom.writeByte(address, 0xAA);
    
    // Write cycle time (tWR). See EEPROM memory datasheet for more details.
    delay(10);
    
    // Read a byte at address 0 in EEPROM memory.
    Serial.println("Read byte from EEPROM memory...");
    byte data = eeprom.readByte(address);
    
    // Print read byte.
    Serial.print("Read byte = 0x");
    Serial.print(data, HEX);
    Serial.println("");


    //Запуск времени
  // Set the clock to run-mode
  rtc.halt(false);
  // Set SQW/Out rate to 1Hz, and enable SQW
  rtc.setSQWRate(SQW_RATE_1);
  rtc.enableSQW(true);
}

void loop() {
  // put your main code here, to run repeatedly:
delay(1000);
Serial.println(rtc.getTimeStr());
}

IC2 сканер видит 2 устройства с разными адресами, может кто сталкивался?

2017-12-08_10-48-03.jpg

а вот тест часов

#include <Wire.h>
#include <Eeprom24C32_64.h>
#define EEPROM_ADDRESS  0x50
static Eeprom24C32_64 eeprom(EEPROM_ADDRESS);


#include <DS1307.h>
// Init the DS1307
DS1307 rtc(SDA, SCL);


void setup() {
  // put your setup code here, to run once:
// Initialize serial communication.
    Serial.begin(9600);
        
    // Initialize EEPROM library.
   // eeprom.initialize();

   // const word address = 0;
    
    // Write a byte at address 0 in EEPROM memory.
    Serial.println("Write byte to EEPROM memory...");
   // eeprom.writeByte(address, 0xAA);
    
    // Write cycle time (tWR). See EEPROM memory datasheet for more details.
    delay(10);
    
    // Read a byte at address 0 in EEPROM memory.
    Serial.println("Read byte from EEPROM memory...");
   // byte data = eeprom.readByte(address);
    
    // Print read byte.
    Serial.print("Read byte = 0x");
   // Serial.print(data, HEX);
    Serial.println("");


    //Запуск времени
  // Set the clock to run-mode
  rtc.halt(false);
  // Set SQW/Out rate to 1Hz, and enable SQW
  rtc.setSQWRate(SQW_RATE_1);
  rtc.enableSQW(true);
}

void loop() {
  // put your main code here, to run repeatedly:
delay(1000);
Serial.println(rtc.getTimeStr());
}

 

2017-12-08_10-49-51.jpg

Ссылка на комментарий
Поделиться на другие сайты

Такие вещи нужно самому писать, без ардуиновских библиотек. Неизвестно, что они там с шиной делают...
У меня в текущем проекте стоят часы и еепромина на одной шине - проблем нет никаких.

Ссылка на комментарий
Поделиться на другие сайты

Библиотека eeprom маленькая там 4 функции всего, библиотека часов чуть побольше, но тоже ничего особого, задается адрес и  Wire.beginTransmission(); и Wire.endTransmission();

могу сказать одно, что лучше я не напишу...

да и я понимаю что лучше писать не на Arduino, но знаний пока не хватает, да и ветка вроде как ардуино, или я перепутал?

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

22 минуты назад, 3d_killer сказал:

могу сказать одно, что лучше я не напишу...

А Вы попробуйте. Если оно всё заработает - это уже будет лучше !
"Под лежачий камень вода не течёт" (c)
Найдите нормальную библиотеку I2C и с её помощью напишите свой код для часов и епром. Сначала по-отдельности. Потом уже и вместе соедините.

22 минуты назад, 3d_killer сказал:

но тоже ничего особого

Это на первый взгляд ничего сложного. На самом деле, там достаточно сложный механизм.
АрдуБиблиотеки основаны на С++ классах. И для каждого модуля (часы и еепром), где-то там внутри, создаются разные экземпляры этого класса, работающие с одним ресурсом (шиной i2c). Это уже косяк. Оно может работать, а может и не работать. И ели работать, то коряво. А если разные библиотеки юзают разные типы классов I2C, то это уже не косяк, а катастрофа...

Вам нужно найти библу для I2C, создать его единственный экземпляр класса и работать только с ним. Тогда счастье Вам обеспечено.

Да и, собственно, библу I2C тоже можно не искать. Сделайте свою, с программным I2C, а не аппаратным. Там всё ограничивается всего-лишь обычным дёрганьем ног, ничего сложного.

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Все заработало, проблема была в том что от часов я использовыход sqw с частотой 1гц для прерывания, в этом прерывании и производил попытку записи и чтения, когда сделал это в основной программе то все заработало

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В 09.12.2017 в 20:34, 3d_killer сказал:

Все заработало, проблема была в том что от часов я использовыход sqw с частотой 1гц для прерывания, в этом прерывании и производил попытку записи и чтения, когда сделал это в основной программе то все заработало

Здравствуйте. Не можете поделиться опытом решения проблемы с работой с EEPROM в DS1307. Как адресовать память при записи и чтении если адресный линии не выведены?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...