Дисплеи от мобильных телефонов- осцилограммы работы

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

Флаг SPIF не установится на симуляции. Нужно в I/O установить его самому, чтобы программа прошла дальше.
Giggity giggity goo!
Реклама
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Либо экран нерабочий либо я чтото протупил. Вот все что я добавил в программу:

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

#define F_CPU 1000000UL
#include <util/delay.h>
#include <avr/io.h>
//
//Бла-бла-бла... тут куча кода...
//
_delay_ms(1000);

LCD_SetOutputRectangle(0,0,131,175);
for(unsigned short n=0;n<132*176;n++) LCD_SetPixel(LCD_BLACK);
_delay_ms(2000);
	
    while(1)
    {
		
        LCD_SetOutputRectangle(0,0,131,175);
        for(unsigned short n=0;n<132*176;n++) LCD_SetPixel(LCD_RED);
        _delay_ms(2000);
        LCD_SetOutputRectangle(0,0,131,175);
        for(unsigned short n=0;n<132*176;n++) LCD_SetPixel(LCD_GREEN);
       delay_ms(2000);
       LCD_SetOutputRectangle(0,0,131,175);
        for(unsigned short n=0;n<132*176;n++) LCD_SetPixel(LCD_YELLOW);
        _delay_ms(2000);
       LCD_SetOutputRectangle(0,0,131,175);
        for(unsigned short n=0;n<132*176;n++) LCD_SetPixel(LCD_BLUE);
       _delay_ms(2000);
}
Ну и еще я убрал заголовок функции init и поместил все ее содержимое в функцию main
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Реклама
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

Либо экран нерабочий либо я чтото протупил. Вот все что я добавил в программу:
Нет, тут надо сперва разобраться с инициализацией.
Отсюда будут следующие вопросы:
1) Как у вас подключен дисплей? Все уровни согласованы на (примерно) 3 вольта?
2) Инициализация портов как проходит? Дело в том, что инициализацию дисплея нужно запускать после того, как вы уже настроили нужные вам порты на микроконтроллере, а также настроили SPI. Может быть, вы в продолжении инициализации "портите" настройки портов, которые сделала функция LCD_Init().
Вот как инициализирую я:

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

 //настраиваем порты
#define SPI_DDR_SCK  DDRB
#define SPI_SCK      5
#define SPI_DDR_MISO DDRB
#define SPI_MISO     4
#define SPI_DDR_MOSI DDRB
#define SPI_MOSI     3
#define SPI_DDR_SS   DDRB
#define SPI_SS       2 

...


DDRB=(0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0)|(1<<SD_CS);
 DDRD=(0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
 DDRC=(0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
 
 SPI_DDR_SCK|=(1<<SPI_SCK);  
 SPI_DDR_MOSI|=(1<<SPI_MOSI);  
 SPI_DDR_MISO&=(0xff^(1<<SPI_MISO));  
 SPI_DDR_SS|=(1<<SPI_SS);  
 
 //задаём состояние портов
 PORTB=0xff;
 PORTD=0xff;
 PORTC=0xff;
 //настраиваем SPI
    SPCR=(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(0<<SPR1)|(0<<SPR0);
SPSR=(1<<SPI2X);//удвоенная скорость SPI

LCD_Init();
3) Какое у вас питание микроконтроллера? На какой частоте? Очень может быть, что если у вас он питается от 3.3 В (тогда диоды и резисторы не нужны в схеме, что я приводил), а частота выбрана 8 МГц , то Atmega8L не запустится на такой частоте при таком низком напряжении питания. А может, у вас просто Atmega8 без литеры L, для которой верхнее питание 4.5 В, а вы её запускаете на 3.3. Так тоже работать не будет.
(Хотя у вас указано #define F_CPU 1000000UL, стало быть, у вас всё же 1 МГц, но вдруг это просто от старого проекта осталось :) )
4) Если у вас инициализация дисплея пройдёт успешно, то вы увидите хаотический набор точек на дисплее. После этого можете смело рисовать - всё получится.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

da-nie, да, контроллер без буквы L, я все посадил на питание 3 вольта, диоды и резисторы не ставил. Инициализацию брал с Вашей программы (я там почти нирчего не менял). Частота с внутреннего генератора на 1мГц без кварца. я вчера вспомнил что както дисплею подавал 3.7 вольт, наверное тогда и спалил... Жалко, у меня только один такой, остальные от самсунгов и какието непонятные... Вобщем могу подключить только этот, на остальные не найду распиновки и команд... Буду пробовать подавать 5 и 3.3 вольта соответственно если найду кренку на 3.3

В той программе что вы давали SPI не настроено?
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Ничерта не работает, наверное сдохший дисплей. У кого есть инициализация hp10534? это вроде от какогото сименса чернобелый. Еще есть от сименса CX75 (lph8924-2) если ктото с такими работал...
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Реклама
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

да, контроллер без буквы L, я все посадил на питание 3 вольта
Не будет работать. Только Atmega8L работает при таком низком напряжении, как я уже выше писал.
я вчера вспомнил что както дисплею подавал 3.7 вольт, наверное тогда и спалил...
Это вряд ли. Он и с 5 сразу не сгорает.
если найду кренку на 3.3
Попробуйте стабилитроном 3.6 получить.
В той программе что вы давали SPI не настроено?
Нет, не настроено. Его надо было настраивать отдельно.
Ничерта не работает, наверное сдохший дисплей
Чтобы в этом убедиться, надо сначала собрать корректную схему.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение ChipKiller »

da-nie писал(а):
да, контроллер без буквы L, я все посадил на питание 3 вольта
....Не будет работать. Только Atmega8L работает при таком низком напряжении....
...будет работать и на 3 вольтах, но не на максимальной частоте... В качестве стабилизатора на 3.3v подойдет например LD1117S33
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

...будет работать и на 3 вольтах, но не на максимальной частоте... В качестве стабилизатора на 3.3v подойдет например LD1117S33
Часть экземпляров запустится, остальные - нет (речь не про часовой ведь кварц?). Те, что запустятся будут работать весьма нестабильно. При минимальном напряжении в 4.5 Вольта для atmega8 частота 1 МГц может быть вообще недостижима на 3.0 В.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Foks »

da-nie писал(а):Не будет работать. Только Atmega8L работает при таком низком напряжении, как я уже выше писал.
Согласно даташиту, да, но на практике еще ни одной не попадалось, чтобы не работала. Вообще, не факт, что в них есть отличия, может отличаться только тест-цикл, и из-за него и цена. А микроконтроллеры с буквой "А" заменили и тех и других, и тоже есть вероятность, что они просто сделали перехарактиризацию и подвинули спек для надёжности. Ааа, нет, вру, там поменялся тех. процесс.
da-nie писал(а):При минимальном напряжении в 4.5 Вольта для atmega8 частота 1 МГц может быть вообще недостижима на 3.0 В.
У Вас на практике такое случалось? Не то чтобы я Вам не верил, просто хочу уточнить, потому что у меня при трёх вольтах на 8 МГц они работали, причем одинаково что буквой "L" что без неё. Может конечно единичные экземпляры такие попались, т.к. в серийном производстве плат на AVR я не участвовал :)
Giggity giggity goo!
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Я конечно извиняюсь что влезаю в ваш спор но кто может мне скинуть готовый код для инициализации дисплея чтобы оно работало? Можно даже и без SPI но чтобы оно работало. Полностью весь код от а до я. Я новичек и незнаю как настраивать SPI итд итп. Раньше программировал на Паскале, писал игры и программы но с железом толком ниразу вплотную не связывался. у кого есть полный код чтоб я запихнул его без изменений и чтоб прошла инициализация дисплея LPH9157-2. Логическую часть программы я допишу сам...
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

У Вас на практике такое случалось? Не то чтобы я Вам не верил, просто хочу уточнить, потому что у меня при трёх вольтах на 8 МГц они работали, причем одинаково что буквой "L" что без неё.
Да, случалось. У меня была собрана говорящая приставка к будильнику (с частотой работы МК 1 МГц), где была микросхема atmega168 (минимальное напряжение 2.7 В). Ввиду того, что питание у меня было от 4-х пальчиковых батарей (т.е. 6 вольт) я поставил два диода для уменьшения его примерно на 1.3 В. Всё работало. После этого я поставил аккумуляторы по 1.2 В (т.е. батарея стала давать 4.8 В или чуть меньше). После диодов осталось 3.3-3.5 В. Всё работало. Но стоило поставить Atmega8L, как диоды пришлось убрать - едва запускался контроллер и питание чуть-чуть проседало (там был ЦАП и динамик с усилителем), как Atmega8L просто дохла. А ведь её минимальное напряжение 3.3 В и небольшой просадки от нагрузки хватало для Atmega168, но для Atmega8L это оказалось неподъёмным.
Я конечно извиняюсь что влезаю в ваш спор но кто может мне скинуть готовый код для инициализации дисплея чтобы оно работало? Можно даже и без SPI но чтобы оно работало. Полностью весь код от а до я. Я новичек и незнаю как настраивать SPI итд итп.
Вот. Для WinAVR.
LCD-C75(Green).rar
(21.37 КБ) 297 скачиваний
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

da-nie, спасибо, щас буду пробовать но зачем так много библиотек? Допустим прерывания... разве они используются в программе?
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

da-nie, спасибо, щас буду пробовать но зачем так много библиотек? Допустим прерывания... разве они используются в программе?
Да просто за компанию. :) Потому что я оттуда выкинул UART и SD-карту. :)
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

da-nie, извиняюсь, я наверное уже достал всех но можете мне обьяснить как подключать дисплей исходя из той программы что Вы мне скинули?

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

#define SPI_DDR_SCK  DDRB
#define SPI_SCK      5
#define SPI_DDR_MISO DDRB
#define SPI_MISO     4
#define SPI_DDR_MOSI DDRB
#define SPI_MOSI     3
#define SPI_DDR_SS   DDRB
#define SPI_SS       2
К программе подключен модуль "lcd_c75.h" почему в модуле порты настроены в одном режиме а в программе в другом? :dont_know:
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

da-nie, извиняюсь, я наверное уже достал всех
Хех! "Дорогу осилит идущий; пусть в пути ослабнут и подогнутся его ноги - он должен ползти на руках и коленях, и тогда обязательно ночью вдали увидит он яркое пламя костров и, приблизившись, увидит купеческий караван, остановившийся на отдых, и караван этот непременно окажется попутным, и найдется свободный верблюд, на котором путник доедет туда, куда нужно..." (c) Соловьёв. :)
Вы занятие по оживлению дисплея не бросаете - это хорошо. :)
но можете мне обьяснить как подключать дисплей исходя из той программы что Вы мне скинули?
Так я же картинку приводил на предыдущей странице. :)
Вот она:
Изображение

Вот к этим линиям и должен быть подключен дисплей. Если у вас 3 В, то закоротите диоды и уберите резисторы по 10 кОм.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
lawr
Встал на лапы
Сообщения: 120
Зарегистрирован: Чт фев 16, 2012 15:22:06

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение lawr »

Раньше программировал на Паскале, писал игры и программы но с железом толком ниразу вплотную не связывался. у кого есть полный код чтоб я запихнул его без изменений и чтоб прошла инициализация дисплея
На 4-й странице этой ветки ув. plutonium выложил библиотеку с комментами для этого дисплея на паскале. Все работает!
Там же и схема подключения к меге. Если есть проблемы с питанием схемы, рекомендую:
Вложения
Stab.jpg
(82.83 КБ) 529 скачиваний
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

К программе подключен модуль "lcd_c75.h" почему в модуле порты настроены в одном режиме а в программе в другом?
Потому что настройки портов можно менять. В программе задаются общие начальные настройки. А дисплей выставляет свои в LCD_Init() просто изменяя то, что уже настроено (используя логические операции). Только это, строго говоря, не модуль - в данном случае не используется раздельная компиляция и lcd_c75.h просто будет вставлен при компиляции в #include "lcd_c75.h".
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

da-nie, у меня все подключено по той схеме которую Вы мне скинули. Дисплей не реагирует вообще. Меня интересует код:

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

#define SPI_DDR_SCK  DDRB
#define SPI_SCK      5
#define SPI_DDR_MISO DDRB
#define SPI_MISO     4
#define SPI_DDR_MOSI DDRB
#define SPI_MOSI     3
#define SPI_DDR_SS   DDRB
#define SPI_SS       2
Это значит что SCK подключен к порту B 5-му биту(выводу), MISO к 4-му итд... Я правильно понял? Почему тогда на схеме другое подключение?

lawr, Я программирую на Си а не на Паскале
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение da-nie »

Это значит что SCK подключен к порту B 5-му биту(выводу), MISO к 4-му итд... Я правильно понял?
Да. SCK - это PB5. MISO - PB4. MOSI - PB3.
Почему тогда на схеме другое подключение?
Почему? По-моему, я всё один в один нарисовал. :roll: Дисплей использует из SPI линии SCK и MOSI.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Аватара пользователя
Зукс
Вымогатель припоя
Сообщения: 564
Зарегистрирован: Чт июл 21, 2011 19:56:10

Re: Дисплеи от мобильных телефонов- осцилограммы работы

Сообщение Зукс »

Значит тогда дисплей дохлый :( :( :( Не подает признаков жизни вообще
У кого есть инициализация hp10534 или lph8924-2?
Шуруп забитый молотком держится намного лучше чем гвоздь закрученный отверткой!
Ответить

Вернуться в «Периферия»