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

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

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

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

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

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


 
Опции темы
Непрочитано 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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,789
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
ForcePoint на пути к лучшему
Вопрос Re: PCF2119 - Чтение данных с ЖКИ

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

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

Сообщение от Auratos Посмотреть сообщение
Если вы предлагаете попробовать 0x74 вместо 0x76, то это будет неправильно, т.к. 0x76 - это адрес с битом записи контроллера PCF2119 именно из даташита.
Возможно я и неправ - я думал, что к шине может быть подключено более 1 контроллера с разными адресами (некоторые биты адреса при этом обычно задаются перемычками).
_Артём_ вне форума  
Непрочитано 25.11.2014, 17:17  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
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.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,789
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
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, время: 15:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot