Перейти к содержанию

Msp430 С Lcd Экранчиком. Проблема С Частотой


Рекомендуемые сообщения

Работаю с микроконтроллером msp430f4784 и LCD экранчиком SBLCDA4. В микроконтроллере встроен драйвер LCD, поэтому разобраться в его работе было не сложно. Составил табличку, набросал программу. Результат, как всегда, не оправдал ожиданий. Изображение мерцало. Такое чувство, что динамическая индикация происходит очень медленно, Но часовой кварц стоит, и указан номинал конденсаторов на нем. UART же как то работал.

Эмпирическим путем было выяснено, что мерцание иногда пропадает если взяться за землю на программаторе. Пробовали питать всю схему от источника питания, без участия программатора, все равно все так же мерцает. Перепаял кварц максимально близко к микроконтроллеру, а так же заземлил его корпус. Это тоже не помогло. Идеи уже кончились..

Прикладываю с программой пару гифок, как все это происходит на деле

#include "msp430.h"
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;				
FLL_CTL0 |= XCAP10PF;					
LCDACTL = LCDON + LCD4MUX + LCDFREQ_128;
LCDAPCTL0 = LCDS0+LCDS4+LCDS8+LCDS12+LCDS16+LCDS20;
P5SEL = BIT2+BIT3+BIT4;				
for( i = 0; i < 11; i ++)
{
 LCDMEM[i] = 0xFF;						
}

_BIS_SR(LPM3_bits);					
}

Ссылка на комментарий
Поделиться на другие сайты

Как буд - то питание на дисплей с определённой частотой идёт найди питание дисплея и посмотри чё туда идёт с МК

Тут нет питания так таковой. Есть четыре COM на которые поочередно что то подается напряжение, и еще куча ног на специальные порты на МК. Суть в том что МК, если верить какой то pdf-ки с сайта TI, выдает переменное напряжение на COM0-COM3 последовательно и в соответствии включает нужные пины на МК. Ну я все о том, что питания LCD нет. Это просто матрица с кристаликами и выходами к ним. Память LCD находиться в MK.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Так дисплей же или с ОА или с ОК а МК выводит единицы или нули на аноды или катоды ведь так

Я немного не понимаю что такое ОА и ОК...

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Хмм. Ну так или иначе, с мк идет именно то, что показывается на LCD. Как я уже говорил, устройство LCD максимально просто, все грабли в подключении или прошивке МК. По этому поводу и вопрос :)

Ссылка на комментарий
Поделиться на другие сайты

Я бы уменьшил коэф. деления для частоты драйвера LCD.

Попробуйте написать так:

LCDACTL = LCDON + LCDSON + LCD4MUX + LCDFREQ_32;

Хотя на счет "LCDSON" не уверен.

Так дисплей же или с ОА или с ОК а МК выводит единицы или нули на аноды или катоды ведь так

Нет. ЖКИ иначе устроен.

Изменено пользователем Cobban
Ссылка на комментарий
Поделиться на другие сайты

Давно не игрался с МСП по этому по программе не подскажу. Но копать нужно в сторону частоты обновления экрана. Она должна быть как минимум в 2 а то и в 3 раза выше. Ну и стоит проверить есть ли смена полярности на управляющих выводах МК. Хотя если изображение есть то и смена тоже есть. Скорей всего проблема в частоте обновления экрана.

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Подключал ЖК экран к контроллеру MSP430F449. Вроде особых проблем не заметил. В качестве исходника брал пример от техаса.

Мне почемуто кажется у Вас ошибка с подключением ЖК к контроллеру. Такое ощущение что линии ЖК которые COM подключены к линиям контроллера Sx.

Попробуйте для начала сделать так

#include "msp430.h"
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;							
FLL_CTL0 |= XCAP10PF;								
LCDACTL = LCDON + LCDSON + LCD4MUX + LCDFREQ_128;
LCDAPCTL0 = LCDS0+LCDS4+LCDS8+LCDS12+LCDS16+LCDS20;
P5SEL = BIT2+BIT3+BIT4+BIT5;                        
for( i = 0; i < 11; i ++)
{
	 LCDMEM[i] = 0xFF;											
}
P1DIR = 0x22;							 // P1.1,5 to output direction
P1SEL = 0x22;							 // P1.1,5 to output MCLK & ACLK

}

и ногу R03 заземлить.

Потом померяйте (если конечно есть чем :-)) на ногах 1.1 частоту MCLK и на 1.5 ACKL. Мало ли что там с частотами.

Хотя на счет "LCDSON" не уверен.

Да нет все нормально. Этот бит служит для организации мигания.

Если он в единице то все сегменты которые должны светиться-светятся, если в ноле то все НЕГОРЯТ.

Вот руководство пользователя на msp430x4x первая часть архива

вторая часть архива

правда это устаревшее описание

Семейство микроконтроллеров MSP430x4xx руководство пользователя.part1.rar

Семейство микроконтроллеров MSP430x4xx руководство пользователя.part2.rar

Изменено пользователем tvilsa
Ссылка на комментарий
Поделиться на другие сайты

Вот нашел техасовский пример именно для вашего экрана

//******************************************************************************
//    MSP430x47xx Demo - LCD_A Put "0123456" on SBLCDA4 LCD
//
//  Description; Put "0123456" on SBLCDA4 LCD.
//  ACLK = LFXT1 = 32768, MCLK = SMCLK = DCO = 32xACLK = 1.048576MHz
//  //*An external watch crystal is required on XIN/XOUT for ACLK*//
//
//			    MSP430x47xx
//		    -----------------
//	    /|\|			  XIN|-
//		 | |				 | 32kHz
//		 --|RST		  XOUT|-		 SBLCDA4
//		   |				 |	    ___________
//		   |			  S4 |------>|14		 |
//		   |			  S5 |------>|13		 |
//		   |			 ..  | ....  |..		 |
//		   |			 S17 |------>|1		  |
//		   |			 COM0|------>|15		 |
//		   |			 COM1|------>|16		 |
//		   |			 COM2|------>|17		 |
//		   |			 COM3|------>|18		 |
//		   |			 S18 |------>|19		 |
//		   |			 S19 |------>|20		 |
//		   |			  .. | ....  |..		 |
//		   |			 S25 |------>|26		 |	
//		   |_________________|	   |___________|
//
//
//  P. Thanigai / K.Venkat
//  Texas Instruments Inc.
//  November 2007
//  Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.42A
//*****************************************************************************
#include <msp430x47x4.h>
// LCD segment definitions.
#define h 0x80
#define e 0x40
#define g 0x20
#define f 0x10
#define d 0x08
#define c 0x04
#define b 0x02
#define a 0x01
const char char_gen[] = {				   // definitions for digits
 a+b+c+d+e+f,							  // Displays "0"
 b+c,									  // Displays "1"
 a+b+d+e+g,							    // Displays "2"
 a+b+c+d+g,							    // Displays "3"
 b+c+f+g,								  // Displays "4"
 a+c+d+f+g,							    // Displays "5"
 a+c+d+e+f+g,							  // Displays "6"
 a+b+c,								    // Displays "7"
 a+b+c+d+e+f+g,						    // Displays "8"
 a+b+c+d+f+g							   // Displays "9"
};
void main(void)
{
 volatile unsigned int i;
 WDTCTL = WDTPW +WDTHOLD;				  // Stop WDT
 FLL_CTL0 |= XCAP14PF;					 // Configure load caps
 // Wait for xtal to stabilize
 do
 {
   IFG1 &= ~OFIFG;						 // Clear OSCFault flag
   for (i = 0x47FF; i > 0; i--);		   // Time for flag to set
 }
 while ((IFG1 & OFIFG));				   // OSCFault flag still set?

 P5SEL = 0x1C;							 // Set COM pins for LCD
 LCDACTL = LCDON+LCD4MUX;				  // 4mux LCD, ACLK/32
 LCDAPCTL0 = 0x7E;						 // Segments 4-24
 for( i = 0; i < 20; i ++)
 {
   LCDMEM[i] = 0;						  // Clear LCD
 }
 for (i=2;i<9;i++)
 {
   LCDMEM[i] = char_gen[i-2];
 }
 _BIS_SR(LPM3_bits);					   // Enter LPM3
}

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Вот нашел техасовский пример именно для вашего экрана

//******************************************************************************
// MSP430x47xx Demo - LCD_A Put "0123456" on SBLCDA4 LCD
//
// Description; Put "0123456" on SBLCDA4 LCD.
// ACLK = LFXT1 = 32768, MCLK = SMCLK = DCO = 32xACLK = 1.048576MHz
// //*An external watch crystal is required on XIN/XOUT for ACLK*//
//
//			 MSP430x47xx
//		 -----------------
//	 /|\|			 XIN|-
//		 | |				 | 32kHz
//		 --|RST		 XOUT|-		 SBLCDA4
//		 |				 |	 ___________
//		 |			 S4 |------>|14		 |
//		 |			 S5 |------>|13		 |
//		 |			 .. | .... |..		 |
//		 |			 S17 |------>|1		 |
//		 |			 COM0|------>|15		 |
//		 |			 COM1|------>|16		 |
//		 |			 COM2|------>|17		 |
//		 |			 COM3|------>|18		 |
//		 |			 S18 |------>|19		 |
//		 |			 S19 |------>|20		 |
//		 |			 .. | .... |..		 |
//		 |			 S25 |------>|26		 |	
//		 |_________________|	 |___________|
//
//
// P. Thanigai / K.Venkat
// Texas Instruments Inc.
// November 2007
// Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.42A
//*****************************************************************************
#include <msp430x47x4.h>
// LCD segment definitions.
#define h 0x80
#define e 0x40
#define g 0x20
#define f 0x10
#define d 0x08
#define c 0x04
#define b 0x02
#define a 0x01
const char char_gen[] = {				 // definitions for digits
a+b+c+d+e+f,							 // Displays "0"
b+c,									 // Displays "1"
a+b+d+e+g,							 // Displays "2"
a+b+c+d+g,							 // Displays "3"
b+c+f+g,								 // Displays "4"
a+c+d+f+g,							 // Displays "5"
a+c+d+e+f+g,							 // Displays "6"
a+b+c,								 // Displays "7"
a+b+c+d+e+f+g,						 // Displays "8"
a+b+c+d+f+g							 // Displays "9"
};
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW +WDTHOLD;				 // Stop WDT
FLL_CTL0 |= XCAP14PF;					 // Configure load caps
// Wait for xtal to stabilize
do
{
IFG1 &= ~OFIFG;						 // Clear OSCFault flag
for (i = 0x47FF; i > 0; i--);		 // Time for flag to set
}
while ((IFG1 & OFIFG));				 // OSCFault flag still set?

P5SEL = 0x1C;							 // Set COM pins for LCD
LCDACTL = LCDON+LCD4MUX;				 // 4mux LCD, ACLK/32
LCDAPCTL0 = 0x7E;						 // Segments 4-24
for( i = 0; i < 20; i ++)
{
LCDMEM[i] = 0;						 // Clear LCD
}
for (i=2;i<9;i++)
{
LCDMEM[i] = char_gen[i-2];
}
_BIS_SR(LPM3_bits);					 // Enter LPM3
}

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

post-129151-0-58128800-1363271256_thumb.jpg

Подключал ЖК экран к контроллеру MSP430F449. Вроде особых проблем не заметил. В качестве исходника брал пример от техаса.

Мне почемуто кажется у Вас ошибка с подключением ЖК к контроллеру. Такое ощущение что линии ЖК которые COM подключены к линиям контроллера Sx.

Попробуйте для начала сделать так

#include "msp430.h"
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;							
FLL_CTL0 |= XCAP10PF;								
LCDACTL = LCDON + LCDSON + LCD4MUX + LCDFREQ_128;
LCDAPCTL0 = LCDS0+LCDS4+LCDS8+LCDS12+LCDS16+LCDS20;
P5SEL = BIT2+BIT3+BIT4+BIT5;
for( i = 0; i < 11; i ++)
{
	 LCDMEM[i] = 0xFF;											
}
P1DIR = 0x22;							 // P1.1,5 to output direction
P1SEL = 0x22;							 // P1.1,5 to output MCLK & ACLK

}

и ногу R03 заземлить.

Потом померяйте (если конечно есть чем :-)) на ногах 1.1 частоту MCLK и на 1.5 ACKL. Мало ли что там с частотами.

Хотя на счет "LCDSON" не уверен.

Да нет все нормально. Этот бит служит для организации мигания.

Если он в единице то все сегменты которые должны светиться-светятся, если в ноле то все НЕГОРЯТ.

Вот руководство пользователя на msp430x4x первая часть архива

вторая часть архива

правда это устаревшее описание

Это описание мне уже знакомо. В правильности подключения LCD я уверен. По распиновке все подключалось.

Ссылка на комментарий
Поделиться на другие сайты

Припаял электролит на 10uF на ногу LCDCAP микроконтроллера. Получил такую штуку

post-129151-0-45712900-1363335294_thumb.jpg

Видно что сразу стало получше. Но дисплей все еще каловратит

Ссылка на комментарий
Поделиться на другие сайты

400мс период этого дела? Не многовато ли?

> Правила форума <

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

...это не дым от канифоли, нет... это души умерших транзисторов....

Первый закон Ома: никому не рассказывать про Ома!

Ну вот, а ты говорил ноль...

Ссылка на комментарий
Поделиться на другие сайты

В результате долгих подборов, все же было выявлено необходимое кол-во сегментов которые должны были бы быть задействованы в проекте. С этим набором ничего не мерцает. Поэтому было решено так это и оставить

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...