MSP430G2452 и SD карта

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

GreatDrek - я уже упоминал, что в коде по той ссылке используется не программный, а аппаратный драйвер SPI. Т.к. задействован модуль USCI_B0 в МК, то, следует задействовать выводы 6,7,14,15 корпуса F2553, а для управления специфичными выводами ЖКИ дополнительно используются выводы как описано в файле lcd.h проекта:

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

#define LCD_nRES BIT0 // port 2
#define LCD_nSCE BIT1 // port 2
#define LCD_Dc BIT2   // port 2
Насчет названий, MOSI = SIMO = SDIN и т.д.
Последний раз редактировалось Ser60 Вт июл 02, 2013 18:39:23, всего редактировалось 1 раз.
Реклама
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Я попутал, я хотел сказать аппаратный.
Реклама
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

MOSI и я находил, я не могу найти D/C, SCE, VOUT, RES.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Я-же привел выше выдержку из кода:
D/C = LCD_Dc BIT2 // port 2
SCE = LCD_nSCE BIT1 // port 2
RES = LCD_nRES BIT0 // port 2
VOUT - (из статьи) Отвечает за контраст, по умолчанию должен быть подключён к земле через конденсатор 4.7uF
Реклама
Эиком - электронные компоненты и радиодетали
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Вот на этой картинке можете написать распиновку для дисплея?

Изображение
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Похоже Вы не читаете, что я Вам пишу. Я уже 2 раза все словами описал, а нарисовать картинку - это уже слишком. Не понимаю, что может быть неясно. Последний раз:
SCK - P1.5
SDIN - P1.7
D/C - P2.2
SCE - P2.1
RES - P2.0
Остальные выводы ЖКИ для питания.
Реклама
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Подключаю, заливаю программу и ничего.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Конечно, ничего не будет. Я-же говорил - пишите сами. Или читайте ДШ, чтобы разбираться в программе со знанием дела. Беглый просмотр кода выявил, что порт P1 не настроен на работу с SPI (?!)

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

void SpiInit() 
{
    P3SEL |= 0x0A;    <- зачем это??? в МК нет P3
    P1SEL |= 0xE0;    <- надо добавить
    P1SEL2 |= 0xE0;   <- надо добавить
Кроме того, в файлах lcd.cpp и main.cpp замените в include тип Вашего МК:

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

#include "msp430g2553.h"
Это лишь беглый просмотр. Если не будет работать - вникайте в ДШ, будут вопросы по нему - отвечу. Отлаживать эту программу мне некогда.
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Все равно не работает, как можно писать драйвер если я не знаю с чего начинать даже.
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Как вообще можно проверить работоспособность дисплея без драйвера?
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: MSP430G2452 и SD карта

Сообщение YS »

я не знаю с чего начинать
С чтения документации.

Я сам с нуля писал драйвер для этого ЖК (правда, под AVR). Ничего там сложного нет. Просто надо подойти систематически и не ждать результатов без понимания и через десять минут.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Ладно я сейчас опишу свои мысли, а вы если не трудно скажите, что не так.

SCK
(в документации SCLK)
Тактовый сигнал SPI (Что он делает не пойму? )

SDIN
Линия данных SPI (По этому проводу мы отправляем наши байты?)

D/C
Этот пин выбирает устанавливает – является передаваемый байт командой или данными. 1 – данные, 0 – команда. ( То есть если на этот выход подается + то дисплей принимает данные, если - то команды. Команды типа управления дисплеем? Какие данные?)

SCE
Чип селект. При нуле на SCE — чип дисплея принимает данные с входящей линии, при единице – находится в состоянии высокого импеданса, то есть отключён от линии.(сигнал ноль-активен) (То есть если мы подаем ток, то дисплей отрисовывает то что принял?)


RES
Сигнал сброса внутренних регистров контроллера экрана и видеопамяти. Данный сигнал ноль-активен (Если нам надо сбросить текущий кадр например то подаем минус на этот выход?)
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: MSP430G2452 и SD карта

Сообщение YS »

Что он делает не пойму?
Я уже писал ранее, что для ясности Вам нехудо бы прочесть про интерфес SPI, коли уж Вы его используете. Посмотреть на временные диаграммы, проникнуться его работой. Вы с тех пор хотя бы в Википедию сходили почитать про SPI? Похоже, что нет.
Команды типа управления дисплеем? Какие данные?
А вот про это уже надо читать в том даташите, что я привел в предыдущем сообщении.

Генеральная идея такая: дисплей от Nokia 3310 это LCD-стекляшка, которой управляет контроллер PCD8544. Связь с этим контроллером (передача команд и данных) идет через SPI. Контроллер принимает команды и данные картинки. Команды выполняет, данные отрисовывает на стекляшке (в частности, в соответствии с параметрами, установленными с помощью команд). Потому Вам надо:

1. Почитать, что такое SPI и с чем его едят. Сама тема проще пареной репы и расписана на каждом углу, я не буду это переписывать тут руками заново.

2. Прочесть документацию на сам контроллер стекляшки и понять, какие команды для чего и каков формат данных/команд. Опять же, я не собираюсь переписывать уже написанное.

3. Опционально - почитать, как реализован и управляется модуль SPI конкретно в Вашем контроллере. Это уже в User's Guide на интересующее семейство MSP430. Если решите писать софтовый SPI - этот шаг можно пропустить.
Последний раз редактировалось YS Вт июл 02, 2013 22:35:37, всего редактировалось 1 раз.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Упс, YS уже опередил.
GreatDrek писал(а):как можно писать драйвер если я не знаю с чего начинать даже
Встречный вопрос - как можно что-то пытаться сделать с МК, если нет понимания что делаете? Значит, надо снача почитать литературу.
GreatDrek писал(а):Как вообще можно проверить работоспособность дисплея без драйвера?
Никак! Прото никак.
SCK
Тактовый сигнал SPI (Что он делает не пойму? )
Он служит для синхронизации обмена данными. Подробности про протокол SPI в википедии.
http://ru.wikipedia.org/wiki/Serial_Per ... _Interface
SDIN
Линия данных SPI (По этому проводу мы отправляем наши байты?)
Да! Подробности про протокол SPI в википедии.
Этот пин выбирает устанавливает – является передаваемый байт командой или данными. 1 – данные, 0 – команда. ( То есть если на этот выход подается + то дисплей принимает данные, если - то команды. Команды типа управления дисплеем? Какие данные?)
Первая часть - ответ ДА! Про команды дисплея см. стр. 14 ДШ на контроллер, что YS прислал. Вообще, прочитайте этот документ внимательно прежде чем задавать вопросы. Все, что не команда ЖКИ, то данные. Например, какие пикселы на экране подсвечивать.
SCE
Чип селект. При нуле на SCE — чип дисплея принимает данные с входящей линии, при единице – находится в состоянии высокого импеданса, то есть отключён от линии.(сигнал ноль-активен) (То есть если мы подаем ток, то дисплей отрисовывает то что принял?)
Не совсем. При подаже 0в ЖКИ активизитрует SPI интерфейс и принимает с него команды/данные. Перед каждой посылкой данных/команд этот вывод следует обнулять и устанавливать в 1 после окончания посылки. Это написано в протоколе SPI в Вики. Почитайте сначала.

RES
Сигнал сброса внутренних регистров контроллера экрана и видеопамяти. Данный сигнал ноль-активен (Если нам надо сбросить текущий кадр например то подаем минус на этот выход?)
Этот вывод для возврата контроллера ЖКИ в первоначальное состояние. После сброса его нужно будет заново активизировать. Подробности в ДШ.

Опцию (3) из сообщения выше я-бы перевел в разряд обязательных. Без освоения всей рекомендованной литературы и не пытайтесь что-то сделать с ЖКИ. Успех может быть только случайным.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: MSP430G2452 и SD карта

Сообщение YS »

Опцию (3) из сообщения выше я-бы перевел в разряд обязательных.
Если писать софтовый SPI, то про модуль в МК можно не читать. :)

Я когда писал драйвер для SD-карточки, специально написал софтовый SPI, потому что мне было лень читать даташит на модуль SPI в ATmega48. :)) Тем не менее, модуль софтового SPI я вынес отдельно, так что если потребуется скорость, то всегда можно раскурить даташит и прикрутить аппаратный SPI, ничего не меняя в собственно драйвере SD. :wink:

Вообще, разделение законченных кусков функционала по отдельным модулям - хорошая и полезная практика.

P.S.

Еще софтовый SPI хорош тем, что не привязан к конкретным ножкам МК - можно реализовать на любом порту и раскидать сигналы по ножкам как будет удобнее. Опять же, в случае c SD мне было лень загибать провода кренделями, и софтовый SPI дал мне возможность воткнуть их ровненько, "как есть", учтя это программно. :))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Отвечает за контраст, по умолчанию должен быть подключён к земле через конденсатор 4.7uF
Если напрямую кинуть на землю, работать не будет?
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Не будет.
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

Если не тяжело, скажите почему не будет?
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: MSP430G2452 и SD карта

Сообщение Ser60 »

Этот вывод является выходом внутреннего умножителя напряжения питания ЖКИ и требует конденсатора для стабильности. При работе правильно инициализированного дисплея напряжение на этом конденсаторе должно быть в пределах 6-8.5В.

Кстати, я не увидел в проекте установку напряжения V_LCD и bias 1:48. Т.о. напряжение на обсуждаемом выводе должно быть 0, что не верно и ЛЦД работать не должен. Не знаю зачем автор опустил некоторые строчки кода. Попробуйте заменить функцию LcdInit() на следующую:

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

void LcdInit (void)
{
    P2OUT &= ~(LCD_nRES + LCD_nSCE + LCD_Dc);
    P2DIR |= LCD_nRES + LCD_nSCE + LCD_Dc;
    P2OUT |= LCD_nRES;
    LcdSendCom( 0x21 );  // LCD Extended Commands.
    LcdSendCom( 0xE8 );  // Set LCD Vop (Contrast).
    LcdSendCom( 0x04 );  // Set Temp coefficent.
    LcdSendCom( 0x13 );  // LCD bias mode 1:48.
    LcdSendCom( 0x20 );  // LCD Standard Commands, Horizontal addressing mode.
    LcdSendCom( 0x0C );  // LCD in normal mode.
    LcdClearMemory();
}
GreatDrek
Встал на лапы
Сообщения: 81
Зарегистрирован: Чт июн 20, 2013 03:39:19

Re: MSP430G2452 и SD карта

Сообщение GreatDrek »

И вновь привет, работал не было времени разбираться с дисплеем, вот нашел время и появились можно сказать вопросы.

У SPI 4 контакта:
1) MOSI
2) MISO
3) SCK
4) CS

1) MOSI - по этому каналу мы отправляем с управляющего устройства данные на другое устройство, к примеру LCD 3310, передача данных идет по биту за такт.

2) MISO - по этому каналу, если управляемое устройство может возвращать какие ни будь данные, то оно будет возвращать их в МК например для последующей обработки, но в примере с LCD 3310 нам этот выход не нужен, так как его МК ничего не возвращает.

3) SCK - сигнал синхронизации, он сдвигает в сдвиговом регистре значение на бит, если задавать этот выход программно то можно установить время сдвига к примеру 1 секунда, тогда у нас один бит будет передаваться и приниматься со скоростью в одну секунду.

4) CS - пока на этом выходе нет сигнала идет передача данных с МК на LCD, если на выход подать ток, то в LCD перестанут записываться данные.

Ну а вопрос, если вам не сложно скажите где я ошибся и почему? Спасибо.
Ответить

Вернуться в «Разные вопросы по МК»