Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

PCF2119 - Чтение данных с ЖКИ

Непрочитано 25.11.2014, 13:13  
Auratos
Частый гость
 
Регистрация: 06.10.2014
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Auratos на пути к лучшему
По умолчанию PCF2119 - Чтение данных с ЖКИ

Добрый день. В данный момент я на руках имею 2 ЖКИ: WO1602A-NGG и JCC7816. Эти ЖКИ взаимозаменяемые, имеют одинаковый контроллер PCF2119. Проблема в том, что с одной и той же прошивкой WO1602A-NGG функционирует как надо, а JCC7816 не подает признаков жизни. Сейчас я пробую передать через интерфейс I2C 1 символ и попробовать считать значение по адресу, куда он был записан, ну или состояние регистра BF_AC, чтобы понять, осуществляется ли вообще связь с ЖКИ. С передачей символа проблем нет, вот только я что-то запутался с процедурой чтения:
Код:
byte i2cReadByte(void)
{
    i2cStart();         // Сформировать на I2C шине комбинацию СТАРТ
    i2cSendByte(0x76);  // Передать SLAVE адрес устройства с битом операции записи
    i2cSendByte(0x00);	// Control byte
    i2cSendByte(0x80);  // set DDRAM address
    i2cStop();          // Сформировать на I2C шине комбинацию СТОП
    Delay100TCYx(50);
    i2cStart();         // Сформировать на I2C шине комбинацию СТАРТ
    i2cSendByte(0x76);  // Передать SLAVE адрес устройства с битом операции записи
    i2cSendByte(0x40);  // set CGRAM address
    i2cSendByte(0x55);  // передаю символ
    //i2cStop();                  // Сформировать на I2C шине комбинацию СТОП
    //Delay100TCYx(50);
    i2cRestart();
    i2cSendByte(0x77);  // Передать SLAVE адрес устройства с битом операции чтения
// вот на этом моменте и остановился, т.к. не понял, как считать состояние BF_AC или как указать адрес для считывания

    SSP1CON2bits.RCEN = 1;
    for ( timer = 0; timer ‹ 30000; timer++) 
        if (!SSP1CON2bits.RCEN )
            goto end;
    end:
        i2cNack();
        i2cStop();
        return SSPBUF;
}
Подскажите, пожалуйста, как дальше следует поступить.
Реклама:
Auratos вне форума  
Непрочитано 25.11.2014, 14:22  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,457
Сказал спасибо: 3,225
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
Вопрос Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от Auratos Посмотреть сообщение
Код:
i2cSendByte(0x76); // Передать SLAVE адрес устройства с битом операции записи
 i2cSendByte(0x00); // Control byte
ЕМНИП, согласно спецификации I2C, после передачи адреса ведомого и бита R/W надо повторно дать посылку start (без stop).
ForcePoint вне форума  
Непрочитано 25.11.2014, 14:38  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от ForcePoint Посмотреть сообщение
ЕМНИП
Изменяет - slave должен ACK выдать, а дальше по всякому бывает.
_Артём_ вне форума  
Непрочитано 25.11.2014, 14:40  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от Auratos Посмотреть сообщение
Код:
byte i2cReadByte(void)
{
    i2cStart();         // Сформировать на I2C шине комбинацию СТАРТ
    i2cSendByte(0x76);  // Передать SLAVE адрес устройства с битом операции записи
}
Подскажите, пожалуйста, как дальше следует поступить.
Может попробывать i2cSendByte(0x74); ?
В даташите кстати примеры кода есть, они не подходят?
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
Auratos (27.11.2014)
Непрочитано 25.11.2014, 15:31  
Auratos
Частый гость
 
Регистрация: 06.10.2014
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Auratos на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от _Артём_ Посмотреть сообщение
Может попробывать i2cSendByte(0x74); ?
В даташите кстати примеры кода есть, они не подходят?
Если вы предлагаете попробовать 0x74 вместо 0x76, то это будет неправильно, т.к. 0x76 - это адрес с битом записи контроллера PCF2119 именно из даташита. А в самом даташите я не нашел пример с чтением с ЖКИ, про него говорится только вскользь, зато с записью примеров достаточно.
Auratos вне форума  
Непрочитано 25.11.2014, 15:35  
Auratos
Частый гость
 
Регистрация: 06.10.2014
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Auratos на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Просто вся моя затея состоит в том, чтобы вывести символ на экран рабочего ЖКИ, считать его, а уже потом попробовать полученный код применить в другому ЖКИ и посмотреть, что я считаю с него. Если раскомментировать 2 последние строки,
Код:
i2cStart();         // Сформировать на I2C шине комбинацию СТАРТ
    i2cSendByte(0x76);  // Передать SLAVE адрес устройства с битом операции записи
    i2cSendByte(0x00);	// Control byte
    i2cSendByte(0x80);  // set DDRAM address
    i2cStop();          // Сформировать на I2C шине комбинацию СТОП
    Delay100TCYx(50);
    i2cStart();         // Сформировать на I2C шине комбинацию СТАРТ
    i2cSendByte(0x76);  // Передать SLAVE адрес устройства с битом операции записи
    i2cSendByte(0x40);  // set CGRAM address
    i2cSendByte(0x55);  // передаю символ
    //i2cStop();                  // Сформировать на I2C шине комбинацию СТОП
    //Delay100TCYx(50);
то это рабочий код и символ выводится на экран. Осталось только получить его обратно
Auratos вне форума  
Непрочитано 25.11.2014, 15:49  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от Auratos Посмотреть сообщение
Если вы предлагаете попробовать 0x74 вместо 0x76, то это будет неправильно, т.к. 0x76 - это адрес с битом записи контроллера PCF2119 именно из даташита.
Возможно я и неправ - я думал, что к шине может быть подключено более 1 контроллера с разными адресами (некоторые биты адреса при этом обычно задаются перемычками).
_Артём_ вне форума  
Непрочитано 25.11.2014, 17:17  
NewWriter
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Пардон, а зачем так сложно - послать в один дисплей, прочитать из него и переслать в другой? Просто отправьте одинаковые данные в два дисплея.
I2C допускает подключение нескольких устройств на одну шину, как принимающих, так и передающих.
NewWriter вне форума  
Непрочитано 25.11.2014, 18:34  
Auratos
Частый гость
 
Регистрация: 06.10.2014
Сообщений: 10
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Auratos на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Сообщение от NewWriter Посмотреть сообщение
Пардон, а зачем так сложно - послать в один дисплей, прочитать из него и переслать в другой? Просто отправьте одинаковые данные в два дисплея.
I2C допускает подключение нескольких устройств на одну шину, как принимающих, так и передающих.
Дело в том, что я физически не могу это сделать, поэтому и работаю попеременно. Просто в данный момент ситуация требует перехода на ЖКИ JCC7816. Но он не работает, поэтому я пытаюсь выяснить, не работает с текущими параметрами, что я задаю, или не работает вообще. Для этого мне нужен набор данных на входе с точным контролируемым набором данных на выходе, чтобы поместить оба ЖКИ в одинаковые условия, и уже сделать окончательные выводы. Но пока мне не удается получить на выходе желаемый результат.
Рисунок ниже немного проливает свет на сложившуюся ситуацию, но не совсем. Просто, как я понял, сначала нужно передать 0x77, а затем 0x00, если хочу считать состояние BF_AC, или 0x40, если хочу считать данные из памяти. Но при 0x00 возвращается FF, а при 0x40 - 40.
Миниатюры:
Нажмите на изображение для увеличения
Название: Рисунок.jpg
Просмотров: 46
Размер:	224.1 Кб
ID:	72190  
Auratos вне форума  
Непрочитано 25.11.2014, 19:03  
ForcePoint
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,457
Сказал спасибо: 3,225
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: PCF2119 - Чтение данных с ЖКИ

Так может просто Vlcd надо перестроить? Поди просто кристаллов чуть других заправили и всё.
ForcePoint вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PCF2119 - Создание пользовательского символа Auratos PIC 4 06.10.2014 22:32
Чтение данных электросчетчика СКАТ 301Э/1-4 prodex Производственное оборудование 11 13.09.2013 06:16
Вывод данных с АЦП на ЖКИ Frensis777 Embedd С 25 02.04.2013 22:20
Проблема подключения ЖКИ 16х4 к ATtmega8515 orionSSV Микроконтроллеры, АЦП, память и т.д 58 31.10.2011 04:17
Управление жки на основе HD44780 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 15 08.03.2007 08:44


Часовой пояс GMT +4, время: 00:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.