roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 май 2025, 18:50

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




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 13 ноя 2007, 22:10 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
у нас в комиссионках SD карточки на 16-32 метра стоят 50р.
соответственно шесть проводков можно подпаять напрямую без картридера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 13 ноя 2007, 23:08 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Обижаешь! 16м уже давно лежит приготовленая (шла в комплекте с фотиком) да и sd-разъем уже давно выпаян из "нерабочего" кард-ридера ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 14 ноя 2007, 08:30 
Не в сети
Аватара пользователя

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Ну раз такое дело, то тогда пиши ворклог, подробненький с коментариями. Для чайников как я.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Быстренько причесал и из своей проги всунул...
СообщениеДобавлено: 18 ноя 2007, 12:38 
Не в сети

Зарегистрирован: 18 ноя 2007, 12:06
Сообщения: 3
Код:
#include <mega128.h>
#include <spi.h>
#include <delay.h>   

#define reset PORTC.4 //RESET от LCD подключён к 39-й ноге МК
#define DC PORTC.5    //Выбор режима ввода данных(1=D-данные /0=C- команды) от LCD подключён к 40-й ноге МК
//VDD на +5В.
// SCLK LCD на 11-ю ногу МК (SCK)
// SDIN LCD на 12-ю ногу МК (MOSI)
// CS LCD на земле.
//Vout (7нога) LCD на + кондёра 1-4.7мкФ и на землю.

void main(void)
{   
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization /output
PORTB=0x00;
DDRB=0xFF;
// Port C initialization
PORTC=0xFF;
DDRC=0xF0;
// Port G initialization
PORTG=  0b11111011;
DDRG=   0b00000100;
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2*3000,000 kHz  //  У меня кварц 12МГц.
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x01;   

//////////////////////////////START///////////////////////
     // ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
DC =0;    // режим приёма команд
reset =0; //сбросить LCD
delay_ms(1); // задержка 1мСек.
reset=1;
delay_ms(1);
          spi(0x21);     // включить питание, расшир. команды
   spi(0xC8);     // включить внутренний источник питания
         spi(0x06);     // выбрать температурный режим
   spi(0x13);     // выбрать систему питания 
   spi(0x20);     // установить обычный набор инструкций
   spi(0x0C);     // устаноить режимы -дисплей пустой, обычное отображение
delay_us(500);   
//дисплей готов, виден всякий бред...
/*
unsigned int i;                           
DC=0 ;                // режим приёма кодов
          spi(64);    // адрес строки = 0
          spi(128);   // адрес столбца = 0
DC =1;                 //режим приёма данных
for(i=0;i<909;i++) spi(0xAA);   // запись (вывод на экран) чёрточек   , если не 0хAA , а скажем 0х00, то весь экран "очистится".
Можно только по сюда написать, а дальше моё извращение (вырезал из своей програмы и быстренько причесал для форума)
*/
while (1)
{                         
       // Place your code here
if (PIND.4 == 0) {   // при замыкании кнопки (29нога МК) на массу.
unsigned int i;                           
DC=0 ;                // режим приёма кодов
          spi(64);    // адрес строки = 0
          spi(128);   // адрес столбца = 0
DC =1;                 //режи приёма данныйх
for(i=0;i<909;i++) spi(0x0F);   // запись (вывод на экран) чёрточек                   
                       }; // скобка для if         
 
   // работает ли МК и бегает ли по циклу (тест...)   
PORTG = 255; // включить пищалку или чветодиод (у меня, посто так собрана схема)   на любой ноге порта G
delay_ms(350); // пауза 350 мС 
PORTG = 0; // выключить пищалку
delay_ms(350); // пауза 350 мС
             
if (PIND.5 == 0) {   //  при замыкании кнопки (30нога МК) на массу.
unsigned int i;
DC=0 ;                // режим приёма кодов
          spi(64);    // адрес строки = 0
          spi(128);   // адрес столбца = 0
DC =1;                 //режи приёма данныйх
for(i=0;i<909;i++) spi(0x55);   // запись (вывод на экран) линий                 
                       }; // скобка для if             
                };   // общий цикл 
        };   // майн

добавил тег CODE <V>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 18 ноя 2007, 20:27 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2006, 17:09
Сообщения: 664
Откуда: Всеволожск (СПб)
прог. языки: С, C++, Python, Lua, VHDL, Verilog, Forth
ФИО: Олег Белоусов
Ну так я все так и делаю... Короче с SPI у меня все хорошо - SD у меня завелась! Не сразу правда, но теперь вылизал, все работает. Так, что приеду из командировки и буду возвращаться к ЖКИ ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Кстати , обдумываю как подключить несколько
СообщениеДобавлено: 18 ноя 2007, 21:31 
Не в сети

Зарегистрирован: 18 ноя 2007, 12:06
Сообщения: 3
Кстати , обдумываю как подключить несколько устройств на SPI (контакты то одни).
Надо на SPI с LCD еще и микруху (контроллер времени, ну время и дату храни и считает) посадить.
А у LCD нет никаких запрещающих сигналов.

Буду думать как усроить выбор между подключёнными МС.


ЗЫ: На частоту передачи данных посмотрел?
SPCR=0x50;
SPSR=0x01; /// ????

// SPI Clock Rate: 2*3000,000 kHz

У меня atmega 128-16AI, кварц на 12МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 18 ноя 2007, 22:01 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
а чипселект т.е. CS для чего богом дан?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 18 ноя 2007, 22:06 
Не в сети

Зарегистрирован: 18 ноя 2007, 12:06
Сообщения: 3
А чего он селект? (может он внутри там чегото селект.. страницы памяти хотябы...)
Если он чип сет ? Тогда я всё понял.
А пишут то! что пишут то?!

По бумагам он SCE - Chip Enable - разрешение работы чипу ( контроллеру LCD)
А точнее (почитал) при 1 на SCE SPI интерфейс игнорируется.
Он уменя просто на перемычку посажен зараза. Надо перепоять немнога.

Ну тогда все хорошо.
Надо тока подключить DS1302 или DS1338C. Кокуюнить найти и побаловаться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 09 окт 2008, 09:31 
Не в сети

Зарегистрирован: 03 апр 2007, 17:37
Сообщения: 7
Откуда: Макеевка
http://kazus.ru/forum/topics/8548.html вот тут почитайте, там много про дисплеи написано. И библиотеки есть под CVAVR.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SPI LCD Nokia 3410 96х65 200р.
СообщениеДобавлено: 09 окт 2008, 10:33 
Не в сети

Зарегистрирован: 21 сен 2008, 19:28
Сообщения: 5
Используется в проекте http://forum.rcdesign.ru/index.php?showtopic=28745&st=1380&start=1380 - листайте вверх.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2

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


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

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


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

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