roboforum.ru

Технический форум по робототехнике.
Текущее время: 04 дек 2024, 11:43

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 19 фев 2013, 22:08 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Всем доброго времени суток.
Возникла проблема, собираю некое устройство где требуется счетчик циклов реализованный на основе такого дисплея -
http://www.melt.com.ru/docs/MT-10T11.pdf
На AVRке использую аппаратный TWI.
Подключал по такой схеме:Изображение
Код чисто пробный (без проверок статуса), протеус говорит что все фурычит как надо
Код:
#include <mega8.h>

void I2C_Start (unsigned char d) {
    unsigned char result = 0x0;
    TWCR = 0xa4;  //формируем событие старт
    while (result != 0x80) {
        result = TWCR & 0x80;
    }
    result = 0x0;
    TWDR = d; //адрес приемника и бит направления передачи (0 - передача)
    TWCR = 0x84; //шлем адрес
    while (result != 0x80) {
        result = TWCR & 0x80;
    }
}

void I2C_SendByte (unsigned char d) {
    unsigned char result = 0x0;
    TWDR = d;
    TWCR = 0x84; //шлем адрес
    while (result != 0x80) {
        result = TWCR & 0x80;
    }
}

void I2C_Stop (void) {
    TWCR = 0x94; //формируем событие стоп
}

void main(void)
{

unsigned char i = 0;
unsigned char Logo10[10]={0xC0,0xB3,0xA7,0x80,0xF9,0x80,0xB8,0x80,0xF8,0x40};
unsigned char Init [5]={0xCE,0xE0,0xF8,0xF0,0x00};

DDRB = 0xfe;
DDRC = 0x00;
PORTB = 0x0;


// скорость работы интерфейса
TWBR = 0xf;
TWSR = 0x0;

//while (1){

//      if (PINB.0 == 1) {
      I2C_Start (0xa0);
      for (i=0; i<5; i++) {
        I2C_SendByte(Init[i]); // Инициализация дисплея
        }
     for(i=0; i<10; i++) {   //Цикл вывода байтов изображения
       I2C_SendByte(Logo10[i]);//Вывод очередного байта в индикатор
       }
      I2C_Stop();
      }
//      }
//}


В коде использовал стандартные байты данных для настройки дисплея и в качестве изображения долен появится логотип "МЭЛТ"
Проблема вот в чем: Тыкал осциллографом - видно что линия SDA байты шлет, а вот SCL молчит (высокий уровень). Дорожки мерил и так и этак. На ум приходят 3 вещи:
1) отгорела нога контроллера
2) кривой код
3) кривое подключение (схемотехника)
Во всех областях новичок и самоучка. Осциллограф стащил с работы на время)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 11:31 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
думаю проблема с включением дисплея (изначально)....вопрос, почему не запитали всё от 3В по человечески?

зы: по накрутили ппц сколько...

Добавлено спустя 5 минут 46 секунд:
(отвечаю и рассуждаю сам себе)

Так: http://www.atmel.com/images/doc2486.pdf - понятно, эта мега с 4.5В только работает (прискорбно).
В общем надо делать полноценный преобразователь уровней и питать дисплей 3 вольтами.

Вообще ужас какой-то, МК с этим экраном - не совместимы, точнее гемороя больше.
Мне кажется нужно либо взять мегу версии L или вообще Тиньку...ну или дисплей нормальный на 3.3 вольта хотябы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 12:00 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Madf писал(а):
думаю проблема с включением дисплея (изначально)....вопрос, почему не запитали всё от 3В по человечески?

зы: по накрутили ппц сколько...

Добавлено спустя 5 минут 46 секунд:
(отвечаю и рассуждаю сам себе)

Так: http://www.atmel.com/images/doc2486.pdf - понятно, эта мега с 4.5В только работает (прискорбно).
В общем надо делать полноценный преобразователь уровней и питать дисплей 3 вольтами.

Вообще ужас какой-то, МК с этим экраном - не совместимы, точнее гемороя больше.
Мне кажется нужно либо взять мегу версии L или вообще Тиньку...ну или дисплей нормальный на 3.3 вольта хотябы.

Я так полагаю самое простое это купить мегу версии L и перейти на 3 V... что ж попробуем, о результатах отпишусь если кому интересно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 13:05 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Только учтите, что она 8МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 13:18 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Я все таки не понял...
Во-первых, причем тут 8 МГц? частота шины I2C выставляется в соответствующих регистрах контроллера;
Во-вторых, даже если предположить что мои проблемы из-за неправильного дисплея. Мастер же у нас АВРка, она шлет данные и формирует сигнал SCL. Однако данные идут, а SCL вообще молчит, ну ни единого дрыга


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 13:55 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Частота тут при том, что я не знаю для чего и как вы там собрались использовать МК, может вам нужна скорость 16МГц, а тут 8.
У вас тут пока куча проблем с железом (куча диодов, резисторов..), вообще для I2C надо всего два резюка, я везде в своих проектах использую 10К, китайцы смотрю любят в районе 4к ставить..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 15:15 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Насчет частоты 8 МГц вполне устраивает. А вот с тактовым сигналом придется видимо ломать голову дальше


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 16:15 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Ну с Сии помочь не могу, ибо либо на баскоме пишу и на крайняк асм-вставки (редко).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 17:04 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
если в протеусе код запустился , то попробуй поменять авр .....

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 20 фев 2013, 19:53 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Romikgy писал(а):
если в протеусе код запустился , то попробуй поменять авр .....


так для начала и сделаю

Добавлено спустя 2 часа 30 минут 40 секунд:
Ох уж этот МЭЛТ. У них на сайте в каталогах продукции напротив каждой позиции ссылка на пдфник с даташитом, в котором указано напряжение питания 3В. Так вот, он тупо скопирован, а напряжение надо смотреть в маркировке конкретного ЖК индикатора. В моем случае оказалось оно 5В.
Повыкидывав на радостях стабилитроны, и подав питание, выяснилось... что ничего не изменилось, жк молчит. Но осцил показывает веселые дерганья ног SDA и SCL. Теперь грешу на резистор подтянутый к UCC индикатора. Завтра от него избавлюсь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 21 фев 2013, 20:02 
Не в сети

Зарегистрирован: 19 фев 2013, 21:35
Сообщения: 6
Заработало. Помимо дилеммы с МЭЛТовской документацией была еще ошибка в адресе слэйв устройства. Я обращался к устройству с адресом 0хА0, а надо было общаться с адресом 0х70. Спасибо Madf и Romikgy за попытку помочь)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь mega8 + LCD c I2C
СообщениеДобавлено: 21 фев 2013, 22:12 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
мэлт славен неразберихой в даташитах и множеством чуть чуть разных но очень похожих экранов

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 12 ] 

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


Кто сейчас на конференции

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO