ftp27 Опубликовано 11 октября, 2012 Поделиться Опубликовано 11 октября, 2012 Работаю с микроконтроллером 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); } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Электронщик Опубликовано 11 октября, 2012 Поделиться Опубликовано 11 октября, 2012 Как буд - то питание на дисплей с определённой частотой идёт найди питание дисплея и посмотри чё туда идёт с МК 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
ftp27 Опубликовано 11 октября, 2012 Автор Поделиться Опубликовано 11 октября, 2012 Как буд - то питание на дисплей с определённой частотой идёт найди питание дисплея и посмотри чё туда идёт с МК Тут нет питания так таковой. Есть четыре COM на которые поочередно что то подается напряжение, и еще куча ног на специальные порты на МК. Суть в том что МК, если верить какой то pdf-ки с сайта TI, выдает переменное напряжение на COM0-COM3 последовательно и в соответствии включает нужные пины на МК. Ну я все о том, что питания LCD нет. Это просто матрица с кристаликами и выходами к ним. Память LCD находиться в MK. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторовОбязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Электронщик Опубликовано 11 октября, 2012 Поделиться Опубликовано 11 октября, 2012 Так дисплей же или с ОА или с ОК а МК выводит единицы или нули на аноды или катоды ведь так 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 11 октября, 2012 Автор Поделиться Опубликовано 11 октября, 2012 Так дисплей же или с ОА или с ОК а МК выводит единицы или нули на аноды или катоды ведь так Я немного не понимаю что такое ОА и ОК... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Электронщик Опубликовано 11 октября, 2012 Поделиться Опубликовано 11 октября, 2012 общий анод, общий катод -1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 11 октября, 2012 Автор Поделиться Опубликовано 11 октября, 2012 Хмм. Ну так или иначе, с мк идет именно то, что показывается на LCD. Как я уже говорил, устройство LCD максимально просто, все грабли в подключении или прошивке МК. По этому поводу и вопрос 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Cobban Опубликовано 15 октября, 2012 Поделиться Опубликовано 15 октября, 2012 (изменено) Я бы уменьшил коэф. деления для частоты драйвера LCD. Попробуйте написать так: LCDACTL = LCDON + LCDSON + LCD4MUX + LCDFREQ_32; Хотя на счет "LCDSON" не уверен. Так дисплей же или с ОА или с ОК а МК выводит единицы или нули на аноды или катоды ведь так Нет. ЖКИ иначе устроен. Изменено 15 октября, 2012 пользователем Cobban 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Rhime Опубликовано 15 октября, 2012 Поделиться Опубликовано 15 октября, 2012 Давно не игрался с МСП по этому по программе не подскажу. Но копать нужно в сторону частоты обновления экрана. Она должна быть как минимум в 2 а то и в 3 раза выше. Ну и стоит проверить есть ли смена полярности на управляющих выводах МК. Хотя если изображение есть то и смена тоже есть. Скорей всего проблема в частоте обновления экрана. 0 - А совесть в курсе? - А совесть в доле! :-D Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле. Все грамматические ошибки являются авторским стилем изложения материала. Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 18 октября, 2012 Автор Поделиться Опубликовано 18 октября, 2012 По поводу частоты, я пробовал 32. Мне кажется тут наводки какие то, у меня там проводов целая кипа на дисплей 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
tvilsa Опубликовано 21 октября, 2012 Поделиться Опубликовано 21 октября, 2012 (изменено) Подключал ЖК экран к контроллеру 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 Изменено 21 октября, 2012 пользователем tvilsa 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
tvilsa Опубликовано 21 октября, 2012 Поделиться Опубликовано 21 октября, 2012 Вот нашел техасовский пример именно для вашего экрана //****************************************************************************** // 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 } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 14 марта, 2013 Автор Поделиться Опубликовано 14 марта, 2013 Вот нашел техасовский пример именно для вашего экрана //****************************************************************************** // 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 } Буквально на днях пришли платы со схемой. Ваш пример выдает аналогичный вариант, все моргает и не выводится все что нужно. Т.к. плата уже полностью печатная и дорожки максимально короткие, о наводках никакой речи идти не может. Подключал ЖК экран к контроллеру 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 я уверен. По распиновке все подключалось. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 15 марта, 2013 Автор Поделиться Опубликовано 15 марта, 2013 Попробовал цепануть осциллографом COM0. Увидел там такое Это уже совсем не нормально выглядит о_О 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 15 марта, 2013 Автор Поделиться Опубликовано 15 марта, 2013 Припаял электролит на 10uF на ногу LCDCAP микроконтроллера. Получил такую штуку Видно что сразу стало получше. Но дисплей все еще каловратит 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
NebsteR Опубликовано 15 марта, 2013 Поделиться Опубликовано 15 марта, 2013 400мс период этого дела? Не многовато ли? 0 > Правила форума < ...из древних времен доходят до нас слухи о колдунах и волшебниках... - кто бы мог подумать, что так может начинаться дипломная работа по радиотехнике... ...это не дым от канифоли, нет... это души умерших транзисторов.... Первый закон Ома: никому не рассказывать про Ома! Ну вот, а ты говорил ноль... Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 15 марта, 2013 Автор Поделиться Опубликовано 15 марта, 2013 400мс период этого дела? Не многовато ли? Вот уж не знаю. Вот COM3 (желтый) и COM2(Синий). 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ftp27 Опубликовано 20 марта, 2013 Автор Поделиться Опубликовано 20 марта, 2013 В результате долгих подборов, все же было выявлено необходимое кол-во сегментов которые должны были бы быть задействованы в проекте. С этим набором ничего не мерцает. Поэтому было решено так это и оставить 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.