Драйвер для LCD от Nokia 3310

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Драйвер для LCD от Nokia 3310

Сообщение DataLife »

Ребята, доброго времени суток.

Решил я по эксперементировать с дисплеем от Nokia 5510 (он же 3310).
Скачал все необходимые файлы и демо-прошивки. Для начала залил их, дабы проверить правильность подключения.
Дисплей завёлся и показывал всё верно. Подошла прошивка для оригинальной модели дисплея.

Теперь решил смастерить что-то своё: взял часть кода из предложенной программы, выкинул лишнее. Теперь должна выводиться только одна строчка, в конце которой должны постоянно увеличиваться значения. Всё просто.
Однако, CVAVR что-то сильно заупрямился. Ругается такими бранными словами:

Код: Выделить всё

Linker error: global RAM variables size: 1802 bytes is too large

Или лыжи не едут, или ... таблица АСКИ засоряет всю память RAM ... Но как у всех работают проекты на АТмега8, если памяти не хватает на всю таблицу ? ...

Вот тут и возникает вопрос, как её правильно сократить? Просто выкинуть неиспользуемые символы (строки)?

Попробовал удалить неиспользуемые символы. Что-то этот вариант не катит, компилятор "проглатил" такую версию, но экран молчит.

Вот код:
Спойлер

Код: Выделить всё

/*****************************************************
ATmega8
4,000000 MHz
*****************************************************/

#include <mega8.h>

#include <delay.h>
#include <stdlib.h>
#include <stdio.h>

#include <n3310lcd.c>

void main(void)
{
unsigned char i;

LcdInit();

while (1)
    {
    LcdClear();

    for (i=0; i<100; i++)
        {
        sprintf (lcd_buf, "Буфер=%u", i);
        LcdString(1,1);
        LcdUpdate();
        delay_ms(500);
        }
       
    };
}
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Pin-JT
Родился
Сообщения: 2
Зарегистрирован: Ср янв 07, 2015 11:25:54

Вопрос "Драйвер для LCD от Nokia 3310"

Сообщение Pin-JT »

Драйвер для LCD от Nokia 3310
При компиляции в "CV AVR" вылетает ошибка:
Изображение

Котаны, как поправить??? :dont_know:
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

А что собираете-то? Свое или из статьи?
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
coding
Встал на лапы
Сообщения: 92
Зарегистрирован: Пт ноя 25, 2011 18:20:52
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение coding »

Народ, для AvrStudio никто не переписал драйвер?
Аватара пользователя
coding
Встал на лапы
Сообщения: 92
Зарегистрирован: Пт ноя 25, 2011 18:20:52
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение coding »

Пробую сам перевести. Вроде все понятно, кроме подключения 2х пинов:
#define LCD_SS_PORT PORTD // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
Что это за нога дисплея?
И эта
#define LCD_CPORT PORTD // Chip-Select; любой пин любого порта
Какая из них должна быть задействована при программном spi?
спасибо
delphiec
Родился
Сообщения: 10
Зарегистрирован: Вт май 05, 2015 09:54:28

Re: Драйвер для LCD от Nokia 3310

Сообщение delphiec »

Действительно есть вопрос по поводу порта
#ifndef SOFT_SPI
#define LCD_SS_PORT PORTB // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
#define LCD_SS_DDR DDRB
#define LCD_SS_PIN 0
#endif

Так как по схеме включения используется всего 5 пинов на МК, и если смотреть на аппаратные, то SS подключается к D/C на дисплее, а в конфиге он первым обозначен.
Как быть?
delphiec
Родился
Сообщения: 10
Зарегистрирован: Вт май 05, 2015 09:54:28

Re: Драйвер для LCD от Nokia 3310

Сообщение delphiec »

При подключении любой версии драйвера возникает куча ошибок, IDE AtmelStudio 6.
I need help :))
Вложения
4.jpg
(197.76 КБ) 701 скачивание
3.jpg
(208.13 КБ) 379 скачиваний
2.jpg
(244.81 КБ) 647 скачиваний
1.jpg
(234.77 КБ) 656 скачиваний
Freezer_s
Родился
Сообщения: 2
Зарегистрирован: Вт ноя 10, 2015 11:43:29

Re: Драйвер для LCD от Nokia 3310

Сообщение Freezer_s »

coding писал(а):Пробую сам перевести. Вроде все понятно, кроме подключения 2х пинов:
#define LCD_SS_PORT PORTD // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
Что это за нога дисплея?
И эта
#define LCD_CPORT PORTD // Chip-Select; любой пин любого порта
Какая из них должна быть задействована при программном spi?
спасибо


Списался с Автором, для тех кто как и я не разобрался даю пояснения:

//LCD Port & pinout setup. Примечание: порты с "кривой" адресацией (типа порт G и т.п.) не поддерживаются


#define LCD_RST_PORT PORTA // (RST) сброс экрана; любой пин любого порта
#define LCD_RST_DDR DDRA
#define LCD_RST_PIN 0

#define LCD_CPORT PORTA // (SCE) Chip-Select; любой пин любого порта
#define LCD_CDDR DDRA
#define LCD_CPIN 1

#define LCD_DC_PORT PORTA // (D/C) выбор команда-данные; любой пин любого порта
#define LCD_DC_DDR DDRA
#define LCD_DC_PIN 2

#define LCD_MOSI_PORT PORTA // (SDIN) выход данных SPI, должен быть соответствующий пин аппаратного SPI, если он используется
#define LCD_MOSI_DDR DDRA
#define LCD_MOSI_PIN 3

#define LCD_CLK_PORT PORTA // (SCK) тактирование SPI, должен быть соответствующий пин аппаратного SPI, если он используется
#define LCD_CLK_DDR DDRA
#define LCD_CLK_PIN 4


#ifndef SOFT_SPI // это читается как SOFT_SPI НЕОПРЕДЕЛЕН! если SPI программный то тут ниче не трогаем!!!
#define LCD_SS_PORT PORTB // ChipSelect SPI, должен быть соответствующий пин аппаратного SPI и настроен на выход
#define LCD_SS_DDR DDRB
#define LCD_SS_PIN 0
#endif

тоесть все что находится после строчки #ifndef SOFT_SPI относится ТОЛЬКО К АППАРАТНОМУ SPI и если протокол программный то эти строчки не имеют значения!
Аватара пользователя
Airatius
Нашел транзистор. Понюхал.
Сообщения: 177
Зарегистрирован: Чт окт 20, 2011 13:35:06
Откуда: Казань
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Airatius »

Прошу прощения, встал на те же грабли при компиляции с файлом n3310lcd.o
Проект свой, использовал библиотеку автора.
Вроде ничего не напутал.
Прошу ткнуть носом.
Много раз прикручивал чужие библиотеки к своим проектам, но с таким в первый раз столкнулся.
Спасибо!

P.S. Проект полностью прилагаю.
3PL.zip
(133.22 КБ) 247 скачиваний
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

Попробуйте собрать под другой версией CVAVR. Еще вариант - скопируйте все соlержимое драйвера в main.c и посмотрите, как соберется.
В каких-то проектах сталкивался с подобной ошибкой, вроде бы было как раз при переходе на более свежую версию CVAVR'a.
Оптимизм х (Опыт + Знания) = const
Spinaker
Родился
Сообщения: 3
Зарегистрирован: Пн апр 07, 2014 10:13:24

Re: Драйвер для LCD от Nokia 3310

Сообщение Spinaker »

Господа, прочитал всю ветку... ...у меня два вопроса:
1. что считается "второй" версией библиотеки. В той, которую я скачал (в ) define SOFT_SPI отсутствует. Вывод на дисплей (в Протеусе) происходит со сдвигом по горизонтали нижней части изображения.
2.где, все-таки, скачать "правильный" pictures.c
Спасибо.
Вложения
3310.JPG
(54.8 КБ) 623 скачивания
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Re: Драйвер для LCD от Nokia 3310

Сообщение Aheir »

Если скачать драйвер версии 2 в самом низу статьи , то искомая строчка

Код: Выделить всё

#define SOFT_SPI 1   // если определено - используем программный SPI, иначе - аппаратный


там таки есть, проверил...

За Протеус ничего не скажу.

Не знаю насчет правильного picture.c, но свой я, по-моему, нигде не выкладывал... А, можно, например, глянуть в Дозиметре, там должен быть)
Оптимизм х (Опыт + Знания) = const
Spinaker
Родился
Сообщения: 3
Зарегистрирован: Пн апр 07, 2014 10:13:24

Re: Драйвер для LCD от Nokia 3310

Сообщение Spinaker »

Спасибо за помощь! В софтовом варианте пример работает... в аппаратном же картинка (в протеусе) плывет слева направо. Строку "SPCR = SPCR_val;" в библиотеке для аппаратного режима раскомментировал, иначе инициализация не проходила. С "pictures.c" тоже разобрался - это должен быть текстовый файл-библиотека с "оцифрованной" картинкой 1110100100... Демки от автора "_demo 3310 chinese.hex" отображаются корректно и они, скорее всего, реализованы аппаратно. Что-то, по-моему в библиотеке для аппаратного режима "недокручено" или есть еще настройки, которых пока я не нашел... Пробовал снижать скорость передачи данных, игрался с разрешением экрана по Х - не помогло... //#define china тоже не рулит.. Использую CVAVR 2.05 Пока...тупик..
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Драйвер для LCD от Nokia 3310

Сообщение DataLife »

Смотрю год никто не поднимал эту тему, поиграю в археолога.

Завалялся у меня дисплейчик от нокия 5110, купленый давным-давно на E-bay.

Вот такой:
Изображение

Когда только его купил, помню игрался и вставлял вашу библиотеку версии 2, всё работало...

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

Вот такие вот некрасивости получаются.

Изображение Изображение

На дисплей выводится просто прогресс-бар с заполнением 50% (для теста). Место вставки - строка 1.

Как видно, первая строка смещена как вниз, так и вправо. Так же, есть мерцание, примерно 3 Гц.

Из настроек были произведены только настройки портов. Пробовал тыкать и китай-версию и оригинал, нет эффекта.

Мк - Мега8, 8 МГц.

В данной ветке кто-то уже боролся с мерцанием, подскажите как?
И, самое важное, как убрать косяк положения строк?

#update
Пробовал компелировать под разными версиями CVAVR: и 2,05 и 3,12 - нет эффекта. Мерцает и всё смещено.

Могу ещё заметить, что при печати строк каждая смещается на определённое кол-во точек и получается некая лесенка. Если строка переполняется - её продолжение идёт с края дисплея, как и должно быть.

Основной код до боли простой:

LcdBarLine(1, 50);
LcdUpdate();

#update 2

Нашёл своё сообщение тут от 14-го да, вверху странички.
Я писал, что дисплей нормально работает на демо-прошивке, причём "под оригинал". Залил, проверил - да.... Так и есть ... Мистика...

#update 3

Попробовал аппаратный SPI, не помогло. Даже версия драйвера 1 не помогла. Однако на ней пропали мерцания, снова мистика.

Вот ступенечки: Три строки, начало в первой позиции.
Изображение Изображение
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Ответить

Вернуться в «Статьи»