Например TDA7294

Форум РадиоКот • Просмотр темы - Ищу проекты c EEPROM at24cXX
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср дек 24, 2025 05:29:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 58 ]    , , 3
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 06, 2009 23:54:09 
Родился

Зарегистрирован: Пт фев 06, 2009 23:37:54
Сообщений: 1
Рейтинг сообщения: 0
Для 24С16 я сделал так:
//Для записи байта по адресу
void eeprom_write(unsigned short address, unsigned char data)
{
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | ((address>>8)&0b00000111)<<1);
i2c_write(address);
i2c_write(data);
i2c_stop();
delay_ms(10);
}
////Для чтения байта по адресу
unsigned char eeprom_read(unsigned short address)
{
unsigned char data;
i2c_start();
i2c_write(EEPROM_BUS_ADDRESS | ((address>>8)&0b00000111)<<1);
i2c_write(address);
i2c_start();
i2c_write((EEPROM_BUS_ADDRESS | ((address>>8)&0b00000111)<<1)|1);
data=i2c_read(0);
i2c_stop();
return data;
}
Конечно можно упростить, но я оставил так!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Вт дек 14, 2010 11:40:08 
Родился

Зарегистрирован: Вт дек 14, 2010 11:15:48
Сообщений: 7
Рейтинг сообщения: 0
Привет всем!
Я понимаю, что тема уже отюзана и давно, но все же я споткнулся именно на адресации и не далее как два дня назад и бьюсь над это темой уже третий день.
Итак, я НЕ ПОНИМАЮ, откуда почтенный народ взял, что память у именно этой МС (АТ24С16) разбита как 8 страниц по 256 байт???? Открываем его родной даташит на стр. 3 и внизу читаем
" AT24C16A, 16K SERIAL EEPROM: Internally organized with 128 pages of 16 bytes
each, the 16K requires an 11-bit data word address for random word addressing. "

Т.е. английским по белому написано, что страниц как раз 128 по 16 байт на странице!
При чем после записи каждой страницы надо выдерживать паузу в 10 мс иначе нифига не запишет.

Пробовал писать данные как написано тут на форуме, т.е. сразу 100 байт подряд на определенную станицу. Потом считал то же самое и увидел, что записано только 16 байт при чем 6 раз переписывалось и записалось последние 4 байта, за которыми следуют предыдущие 10 байт. И далее чем 16 байт записано не было.
А как только сделал все по даташиту, т.е. с разбивкой на страницы по 16 байт с паузой между страницами и о чудо! все записалось именно так как и планировалось.

Очень жду мнение тех, что реально работал ИМЕННО с ЭТОЙ МС, а не с 24с32 или 24с256.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 00:21:26 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 18, 2007 14:09:34
Сообщений: 24
Откуда: Воронеж
Рейтинг сообщения: 0
Увидел, как прочитать 24с64.
А как ее записать???
Бьюсь уже 3 часа и не выходит. С примером вроде все понятно, читаю/записываю 24с16 -все ок.
Напишите кусок исходника ))

И еще вопрос: Могу ли я повесить на эту же шину температурный датчик, например lm75 или ds1621. Будут они работать вместе (24c64 и ds1621)??


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 13:37:09 
Вымогатель припоя

Зарегистрирован: Ср янв 05, 2011 10:03:18
Сообщений: 581
Рейтинг сообщения: 0
sich_zp писал(а):
Т.е. английским по белому написано, что страниц как раз 128 по 16 байт на странице!
При чем после записи каждой страницы надо выдерживать паузу в 10 мс иначе нифига не запишет.
Можно и поллинговать.
Цитата:
Пробовал писать данные как написано тут на форуме, т.е. сразу 100 байт подряд на определенную станицу. Потом считал то же самое и увидел, что записано только 16 байт при чем 6 раз переписывалось и записалось последние 4 байта, за которыми следуют предыдущие 10 байт. И далее чем 16 байт записано не было.
В полном соответствии с ДШ. Превышение адреса (для этой МС) вызывает "возврат" на начальные адреса с перезаписью предыдущего контента. См. ДШ Write Operation стр. 8
А кто это по 100 байт в один присест пишет? В глаза ему хочу посмотреть. :)

_________________
С уважением,
Виктор.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 13:41:37 
Вымогатель припоя

Зарегистрирован: Ср янв 05, 2011 10:03:18
Сообщений: 581
Рейтинг сообщения: 0
SergeiSam писал(а):
Бьюсь уже 3 часа и не выходит. С примером вроде все понятно, читаю/записываю 24с16 -все ок.
Так они ж разные по ширине адреса. И блоки у них разные.
Цитата:
И еще вопрос: Могу ли я повесить на эту же шину температурный датчик, например lm75 или ds1621. Будут они работать вместе (24c64 и ds1621)??
Каждый класс устройств на шине I2C имеет свой адрес, прописанный изготовителем. С адресными расширениями внутри класса. Смотрите описания устройств и читайте описание I2C.

_________________
С уважением,
Виктор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 22:15:37 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 18, 2007 14:09:34
Сообщений: 24
Откуда: Воронеж
Рейтинг сообщения: 0
У меня с англ не очень хорошо и мне тяжело читать даташиты (((

Я увидел пример именно чтения 24с64. А как в нее запиисывать не могу разобраться! Помогите в этом.

И если еще, можно ли подробно объяснить (на приимере EXСEL, если возможно) про страницы и все про эти имикросхемы памяти, что бы мне было понятно :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 23:02:36 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
SergeiSam писал(а):
Я увидел пример именно чтения 24с64. А как в нее запиисывать не могу разобраться! Помогите в этом.

Вот те и пример чтения... и пример записи.....

Тут работа с 24C64
Спойлер
Код:
//#######################################################################################################################
//#
//#    ФУНКЦИИ РАБОТЫ С ПАМЯТЬЮ 24C64
//#
//#######################################################################################################################

//ФУНКЦИЯ АДРЕСАЦИИ ПАМЯТИ 24C64 (установка внутреннего указателя)
//АРГУМЕНТ - адрес в EEPROM
void IICMemAdr (int EEAdr)
{
    do {
        IICStart ();
    }
    while (IICByteWrite (0xA0));                //писать в EEPROM

    IICByteWrite ((uint8_t) (EEAdr >> 8));        //старший байт адреса блока данных
    IICByteWrite ((uint8_t) EEAdr);                //младший байт адреса блока данных
}


//ФУНКЦИЯ ЧТЕНИЯ БАЙТА ДАННЫХ ИЗ МС 24C64
//АРГУМЕНТ - адрес байта данных в EEPROM
//ЗНАЧЕНИЕ - байт данных
char IICMemReadByte (int EEAdrRead)
{
    IICMemAdr (EEAdrRead);
    IICStart ();
    IICByteWrite (0xA1);                        //читать из EEPROM
    char temp = IICByteRead (1);                //читаем данные (без подтверждения)    
    IICStop ();
    return temp;
}


//ФУНКЦИЯ ЗАПИСИ БАЙТА ДАННЫХ В МС 24C64
//АРГУМЕНТ_1 - адрес байта данных в EEPROM
//АРГУМЕНТ_2 - байт данных
void IICMemWriteByte (int EEAdrWrite, char byte)
{
    IICMemAdr (EEAdrWrite);
    IICByteWrite (byte);                        //пишем данные    
    IICStop ();
}
                        


//ФУНКЦИЯ ЧТЕНИЯ БЛОКА ДАННЫХ ИЗ МС 24C64
//АРГУМЕНТ_1 - указатель на адрес загрузки в SRAM
//АРГУМЕНТ_2 - адрес начала блока данных в EEPROM
//АРГУМЕНТ_3 - длина блока данных
void IICMemReadData (char* pAdrLoad, unsigned int EEAdrRead, unsigned int length)
{
    IICMemAdr (EEAdrRead);                        //установка внутреннего указателя

    IICStart ();
    IICByteWrite (0xA1);                        //читать EEPROM

    while (1){

        char temp;
        if (--length)
            temp = IICByteRead (0);                //читаем данные с подтверждением
        else
            temp 
= IICByteRead (1);                //читаем данные без подтверждения (последний байт)

        *pAdrLoad++ = temp;

        if (! length){
            IICStop ();
            return;
        }
    }
}


//ФУНКЦИЯ ЗАПИСИ БЛОКА ДАННЫХ В МС 24C64
//АРГУМЕНТ_1 - указатель на адрес чтения из SRAM
//АРГУМЕНТ_2 - адрес начала блока данных в EEPROM
//АРГУМЕНТ_3 - длина блока данных
void IICMemWriteData (char* pAdrSave, unsigned int EEAdrWrite, unsigned int length)
{
    while (1){
        IICMemAdr (EEAdrWrite);
        do{
            IICByteWrite (*pAdrSave ++);        //пишем данные в цикле
            EEAdrWrite ++;
            if (-- length == 0){                //если указанная длина блока исчерпана - выход
                IICStop ();
                return;    
            
}
        }
        while ((char) EEAdrWrite & 0x1f);        //проверка на выход из 32-х байтной страницы
        IICStop ();
    }
}
 

Тут процедуры IIC (софтовый вариант)
Спойлер
Код:
//#######################################################################################################################
//#
//# ФУНКЦИИ ОБСЛУЖИВАНИЯ ИНТЕРФЕЙСА I2C (софтовый вариант)
//#
//#######################################################################################################################

//задержка 2 микросекунды для формированя временных задержек IIC
NOINLINE void Delay2Mks (void)
{
    _delay_us (2);
}


//ФУНКЦИЯ ФОРМИРОВАНИЯ СОСТОЯНИЯ START ПО ИНТЕРФЕЙСУ IIC
void IICStart (void)
{
    IICDDR &= ~(IICData | IICClc);
    Delay2Mks();

    IICDDR |= IICData;                            //подтяжка data к нулю
    Delay2Mks();

    IICDDR |= IICClc;                            //подтяжка clc к нулю
    Delay2Mks();            
}


//ФУНКЦИЯ ФОРМИРОВАНИЯ СОСТОЯНИЯ STOP ПО ИНТЕРФЕЙСУ IIC
void IICStop (void)
{
    IICDDR |= (IICData | IICClc);
    Delay2Mks();

    IICDDR &= ~IICClc;                            //подтяжка data к нулю
    Delay2Mks();

    IICDDR &= ~IICData;                            //подтяжка clc к нулю
    Delay2Mks();            
}


//ФУНКЦИЯ ЗАПИСИ БАЙТА ПО ИНТЕРФЕЙСУ IIC
//АРГУМЕНТ - байт данных для вывода по IIC
//ЗНАЧЕНИЕ - флаг подтверждения 0 (есть подтверждение) или 1 (нет подтверждения) 
char IICByteWrite (char byte)
{
    for (char i = 0; i<8; i++)
        byte = IICBit (byte);

    byte = 0x80;                                
    return IICBit 
(byte);                        //возвращаем бит подтверждения (0-есть бит подтверждения, 1-нет)
}


//ФУНКЦИЯ ЧТЕНИЯ БАЙТА ПО ИНТЕРФЕЙСУ IIC
//АРГУМЕНТ - значение бита подтверждения (0 - есть подтверждение, 1 - нет подтверждения)
//ЗНАЧЕНИЕ - принятый байт
char IICByteRead (char bit)
{
    char byte = 0xFF;
    for (char i = 0; i<8; i++)
        byte = IICBit (byte);

    bit <<= 7;
    IICBit (bit);                                //передать значение бита подтверждения
    return byte;                                //возвращаем принятый байт
}


//ФУНКЦИЯ ЗАПИСИ\ЧТЕНИЯ БИТА ПО ИНТЕРФЕЙСУ IIC
//выводится значение старшего бита аргумента
//принятый бит возвращается в младшем бите предварительно сдвинутого влево аргумента
char IICBit (char byte)                        
{
    if (byte & 0x80)                        //выводимый бит
        IICDDR &= ~IICData;                 //вывод 1 на линию данных
    else 
        IICDDR 
|= IICData;                    //вывод 0 на линию данных
    Delay2Mks();

    IICDDR &= ~IICClc;                        //старт строб импульса
    while (! (IICPIN & IICClc)){}            //ожидание формирования строба
    Delay2Mks();

    char temp;    
    if 
(IICPIN & IICData)                    //принимаем бит
        temp = 1;
    else
        temp 
= 0;
    IICDDR |= IICClc;                        //завершить строб

    byte <<= 1;
    byte |= temp;
    return byte;
}
 


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 23:09:24 
Первый раз сказал Мяу!

Зарегистрирован: Вс фев 18, 2007 14:09:34
Сообщений: 24
Откуда: Воронеж
Рейтинг сообщения: 0
shads, большое спасибо.
Я нашел только что русский даташит на 24с128 и мне стало понятно многое.
Я только что записал и прочитал 24с64.
Теперь мне хотелось бы понять про страницы. Что это за страницы и как располагаюстся мои байты в памяти?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн дек 24, 2012 23:38:17 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
Т.к. запись в флэш память занимает время, то обычно используется буфер, который позволяет быстро вогнать порцию данных...
В 24С64 буфер равен 32 байта.. Если надо загонять в МС до 32-х байт, то информация помещается в этот буфер. После того как МС получила команду стоп, начинается фактическая запись в флэш память, эта процедура занимает определенное время, в течение которого флэшка не будет отвечать на внешние команды.....

Если надо записать в 24С64 больше данных чем размер буфера (32 байта), то происходит это так:
1. Инициализируем внутренний указатель флэш памяти,
2. Если МС не подтвердила чтение, идем опять на п1.
3. Выводим данные в флэш память, до адреса кратного 32-м, далее опять на п1.
При этом конечно не забываем подсчитывать количество переданных байт.....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Ср сен 11, 2013 19:36:53 
Открыл глаза

Карма: 2
Рейтинг сообщений: 7
Зарегистрирован: Вт мар 12, 2013 09:13:16
Сообщений: 78
Рейтинг сообщения: 0
Товарищи. у кого нить есть проект под winavr? Бьюсь уже несколько дней с 24с16. Код взял тут _http://avrlab.com/node/84.
Пишу и читаю так
Спойлер
Код:
int main(void)//Основная программа

{   //Инициализация EEPROM
   EEOpen();

   _delay_ms (15);//Небольшая задержка

        //Конфигурируем модуль USART на скорость 115200кБит/с при частоте кварца 16МГц

   USART_Init (8);//115200 16MHz

for(address=0; address<25; address++)//цикл с пределами памяти
   {
   int a = 77;
   EEWriteByte(address,a);
   _delay_ms (100);// задержка
   }
   while(1)//Вечный цикл   
   {
   eeread ();//Выполняем чтение заданной области памяти из микросхемы EEPROM
   }
   _delay_ms (5000);// задержка
   
}

По уарту ничего не видно, а хотелось бы получить хоть какой нить результат.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Чт сен 12, 2013 17:30:29 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4595
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Код:
   while(1)//Вечный цикл   
   {
   eeread ();//Выполняем чтение заданной области памяти из микросхемы EEPROM
   }
Хороший код, ничего не скажешь :facepalm: Что Вы с ним хотите увидеть, если у Вас программа тупо циклится ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Чт сен 12, 2013 22:22:40 
Открыл глаза

Карма: 2
Рейтинг сообщений: 7
Зарегистрирован: Вт мар 12, 2013 09:13:16
Сообщений: 78
Рейтинг сообщения: 0
Аlex писал(а):
Хороший код, ничего не скажешь :facepalm: Что Вы с ним хотите увидеть, если у Вас программа тупо циклится ?

Прошу прощения у Великого Гуру. Посмотрев на код фукции eeread
Спойлер
Код:
void eeread (void)//Функция чтения данных из памяти EEPROM

{   for(address=0; address<25; address++)//цикл с адресами данных

   {b = EEReadByte(address);//присваиваем переменной b прочитанный байт данных

   USART_Transmit(b);//Передаем прочитанный байт по USART

   }

   USART_Transmit(0x0d);//переход в начало строки

     USART_Transmit(0x0a);//переход на новую строку

}
я неосторожно подумал, что сия конструкция в майне вернет мне данные, записанные в первых 25 ячейках памяти.
Если я неправ-прошу наставить на путь истинный


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Пн окт 21, 2013 16:44:22 
Встал на лапы

Зарегистрирован: Пт мар 04, 2011 13:06:42
Сообщений: 108
Откуда: Украина, Ахтырка
Рейтинг сообщения: 0
Вот моя библа:
Используется так:
Код:
 data_ir_eep0[0] = eep_read_(0xA1,0x00);
   
        for(byte_mass=1; byte_mass<100; byte_mass++)
        {
        data_ir_eep0[byte_mass] = eep_read_page();
        }
       
        for(byte_mass=0; byte_mass<100; byte_mass++)
        {
        data_ir_eep1[byte_mass] = eep_read_page();
        }
       
        data_end_read = eep_read_page_end();


Читаем 200 байт :)

Код:
  for(byte_mass=0; byte_mass<7; byte_mass++) // Запись первой половины блока (одной команды ДУ)
    {
       eep_write_1byte_page(0xA1, byte_block_cnt, data_ir_eep0[byte_block_cnt]);

      for(byte_mass1=0; byte_mass1<16; byte_mass1++)
        {
         eep_write_page(data_ir_eep0[byte_block_cnt++]);
         if(byte_block_cnt>99)
         {
          byte_mass1=16;
          byte_mass=7;
          byte_block_cnt=100;
         } 
        }
       
      i2c_stop_();
      delay_ms(25);   
    }


Пишем 100 байт

Код:
  eep_correct = eep_read_(0xA0,28);  // читаем байт 

Код:
eep_write_(0xA0 ,0x00, x) // пишем 1 байт (значение х)


Вложения:
24C08.rar [1.38 KiB]
Скачиваний: 422
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Ср мар 16, 2016 07:59:16 
Родился

Зарегистрирован: Ср мар 16, 2016 07:37:44
Сообщений: 2
Рейтинг сообщения: 0
shads писал(а):
Если надо записать в 24С64 больше данных чем размер буфера (32 байта), то происходит это так:
1. Инициализируем внутренний указатель флэш памяти

Доброго дня!
Можете поподробнее объяснить: что это за "внутренний указатель"?
Как раз столкнулся с проблемой, что при записи большого массива данных приходится выдерживать 5 мс между порциями данных, иначе происходит запись некорректных данных.
Не хотелось бы терять время впустую (пишется сразу по 1-2 Кб), поэтому как нужно правильно организовать проверку?
Использую библиотеку: http://www.electroons.com/blog/hello-world/
Память: AT24C64.
Спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Ср мар 16, 2016 11:29:56 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
Простой внутренний счётчик адреса.
При чтении считаем от адреса инициализации до последнего адреса памяти(её размера), затем происходит переполнение и счётчик скатывается в нулевой адрес.
При записи счётчик считает до 32-х байт(до размера страницы), затем скатывается в начальный адрес.
Максимум что можно сделать - это писать целую страницу за раз.
Для записи больших блоков советую применить флеш память из 25-й серии, там размер страницы от 256 байт и время программирования байта поменьше.
А вообще у stm32 большая внутренняя перепрограммируемая память, зачем использовать медленную внешнюю?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Ср мар 16, 2016 16:18:39 
Родился

Зарегистрирован: Ср мар 16, 2016 07:37:44
Сообщений: 2
Рейтинг сообщения: 0
uk8amk писал(а):
А вообще у stm32 большая внутренняя перепрограммируемая память, зачем использовать медленную внешнюю?

Спасибо за ответ!
Тут 2 нюанса, из-за которых выбор сделан в пользу внешней памяти:
1) У STM32 общая Flash память для программы и для данных. Соответственно с ростом программы или данных может возникнуть наложение, что приведет к ошибкам.
2) Есть вероятность, что данные могут писаться часто. Однако ограниченность циклов перезаписи может привести к порче МК. Однако проще поменять внешнюю память, чем МК.
Конечно, можно использовать SD-карту, но объем данных невелик (1-2 кБ), и вероятность частой записи, как говорилось, небольшая. Ещё есть опасения по поводу файловой системы. Там тоже при частом обращении к SD возникали проблемы с порчей файлов (изменение атрибут в сторону неконтролируемого увеличения объема файла). То есть подобная проблема, что и с EEPROM. И тоже, скорее всего, связана с задержками (по тестам некоторые карты при записи могут дать случайную задержку до 1 с.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Ср мар 16, 2016 18:11:24 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
1)обычно выделяются несколько последних страниц. Как раз размер страниц 1-2 килобайт. Можно подправить скрипт компоновщика и разместить блок данных по фиксированному адресу. Никто ни на кого после этого не залезет.
2)так чтоб совсем без задержек есть FRAM как с параллельным, так и последовательным интерфейсом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ищу проекты c EEPROM at24cXX
СообщениеДобавлено: Чт апр 30, 2020 20:07:03 
Открыл глаза

Зарегистрирован: Вт фев 19, 2008 10:14:47
Сообщений: 79
Откуда: SPb
Рейтинг сообщения: 0
<Удалил сообщение, проблема не исчезла... Бьюсь дальше>
Всё. Разобрался.
Условия были выбраны не верные = вместо >, из за того, что возврат значений разный. В одном случае 0 - это ASK. А в другом вместо ASK/NASK... это кол-во отправленных байт! И голову придти не могло, что write не отвечает категорией подтверждений, а кол-вом переданных байт. Школьники и системы под их уровень интеллекта подстраивающиеся - зло!

З.Ы. Библиотека Wire в Arduino - просто ужасна и крайне не приятна, после того как работал с полноценной реализацией в софте или железе.
Чтение и запись, в 24C16A, заработало.

_________________
Если в голове каша, значит ваш котелок варит!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 58 ]    , , 3

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y