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

Atmega128 И Lcd 5110


dikabraz

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

Здравствуйте, после трех дней жесткого сношения с контроллером, экранчиком, паяльником и Atmel Studio, решился задать вопрос сюда, надеясь на помощь.

Есть задача- подключить дисплей от нокии 5110 к атмеге128. Мануал http://cxem.net/mc/mc274.php не помогает.

Питание завожу на экран отдельно, от usb-ttl(может выдавать 3.3в), сигнал с атмеги, работающей на 5в, пробовал на сигнальные ставить по 10кОм и без них. "PBx" менял на "PINBx"- не помогает. пробовал различнейшие либы для работы- ноль реакции. как, кстати, и на популярный 1602 экран.

атмега распаяна на отладочной плате MD-3, программируется USB-ASP через avrdude, код в AtmelStudio.

Кстати, почему я менял PB на PINB- светодиод зажигается, только если к нему обратиться (1 << PINBx).

Уже все волосы на жголове себе повырывал, помогите, люди добрые

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Ну во-первых PINx используется для опроса лапки, а если хотите записать что-либо на эту лапку ( подать на нее лог ) используют PORTx. Регистр DDRx отвечает за направление порта, его настраивают на вход( если вы хотите опросить PINx) или на выход (чтобы записать в PORTx).

Во вторых дисплей работает( 5110) по аппаратному spi и вам нужно в датащите посмотреть на каком порту он находится у меги128 и соответственно туда его подключить а в хидере уже потом поправить название порта на тот к которому подключили.

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Ну во-первых PINx используется для опроса лапки, а если хотите записать что-либо на эту лапку ( подать на нее лог ) используют PORTx. Регистр DDRx отвечает за направление порта, его настраивают на вход( если вы хотите опросить PINx) или на выход (чтобы записать в PORTx).

Во вторых дисплей работает( что один что второй) по аппаратному spi и вам нужно в датащите посмотреть на каком порту он находится у меги128 и соответственно туда его подключить а в хидере уже потом поправить название порта на тот к которому подключили.

Если не ошибаюсь, в номых атмегах можно изменять состояние ножки PINXn'ом, PXn у меня не срабатывает.

нужно подключать MOSI-MOSI или MOSI-MISO ? SCK к SCK это понятно, а вот остальные 2 ноги? на любой порт уже?

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

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

вы не можете изменить состояние pinx'ом это можно сделать portx'ом, у каждой ножке есть альтернативное значение оно написано в скобках возле названия каждой ножки. в видеоуроке KOBZAR'а на этом форуме есть пример подключения.

у дисплея нету выводов mosi и miso.

http://forum.cxem.ne...9 вот 7й видеоурок про подключение дисплея.

но я вам рекомендую начать с простого а именно понять сначала как работает pinx, portx, ddrx

потом помигать светодиодом и т.д.

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

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

В данной схеме надо подключить MOSI и SCK, остальные произвольно. Вот тут обсуждалось и в 1128 посте было решено.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

вы не можете изменить состояние pinx'ом это можно сделать portx'ом, у каждой ножке есть альтернативное значение оно написано в скобках возле названия каждой ножки. в видеоуроке KOBZAR'а на этом форуме есть пример подключения.

у дисплея нету выводов mosi и miso.

http://forum.cxem.ne...9 вот 7й видеоурок про подключение дисплея.

но я вам рекомендую начать с простого а именно понять сначала как работает pinx, portx, ddrx

потом помигать светодиодом и т.д.

Спасибо, я знаю про ddr, port и pin, НО! на PORTB3 ноль реакции. а если я в PINB3 запишу 1 или 0, то будет изменение состояния светодиода, напрмер. Почему?

В данной схеме надо подключить MOSI и SCK, остальные произвольно. Вот тут обсуждалось и в 1128 посте было решено.

Огромное спасибо, через пару часов отпишу о результате!

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

В какой IDE вы работаете? и можно на код ваш взглянуть, если это не секрет конечно. желательно бы еще схему как вы дисплей подключили. просто в студии6 нельзя например записать PORTB3 = 1, не прокатит такое. а в записывать в PINx это вообще не по правилам, это регистр служит исключительно для опроса.

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

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

PORTB3 = 1, не прокатит такое.

Ага, поскольку PORTB3 = PB3 = 3 - просто числовая константа, которой присваивать другие значения нельзя.

С другой стороны, скорее всего имеется в виду конструкция, аналогичная cvavr'овской PORTB.3=x; которая может не работать если PB3 висит на активном аппаратном модуле, UART, SPI или, скажем, OC0A, не знаю что там в m128.

записывать в PINx это вообще не по правилам, это регистр служит исключительно для опроса.
В новых контроллерах вроде добавили фичу, что запись в PINx инвертирует соответствующий PORTx.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

как это можно в контроллер добавить, все эти псевдоимена типа PORT PIN DDR указаны в файле-библиотеки которая подключается в начале проекта, iom.h вроде бы. ну и мега128 не такой уж и новый контроллер. только если с обновлением IDE переписали библиотеку и добавили эти фичи

Не знаеш как? Спроси у Google'а !!!

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

Все сделано по уроку, ссылка в первом посте.

Вот настройки

PB2- MOSI

PB1-SCK по датащиту.

#define LCD_PORT PORTB

#define LCD_DDR DDRB

// Распиновка порта

#define LCD_DC_PIN PB4 // DC

#define LCD_CE_PIN PB5 // SCE

#define SPI_MOSI_PIN PB2 // SDIN

#define LCD_RST_PIN PB6 // RESET

#define SPI_CLK_PIN PB1 // SCLK

распайка такая-же. абсолютно.

Фьюзы а аттаче. Может из-за них? так как работаю на встроенном генераторе стандартном. Могу включить на 4 или 16 мгц

Atmel Studio 6, код скопипасчен с урока

вот хидеры

#include <avr/io.h>

#define F_CPU 1000000L

#include <util/delay.h>

#include <avr/interrupt.h>

#include <avr/iom128a.h>

#include "n5110.h"

post-187256-0-70793900-1421270892_thumb.jpg

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

Я заказал дисплей с Китая и досихпор не могу дождаться его, уже бы сам попробовал, Мега 128 есть, куда припаять ее тоже есть а вот дисплея нету. скинте файлы проекта и файлы протеуса я у себя гляну может помогу чем нибудь

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

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

Я заказал дисплей с Китая и досихпор не могу дождаться его, уже бы сам попробовал, Мега 128 есть, куда припаять ее тоже есть а вот дисплея нету. скинте файлы проекта и файлы протеуса я у себя гляну может помогу чем нибудь

Я любитель "на живую" без протеуса работаю

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

Господа, чтобы не плодить тем, спрошу здесь.

Мне нужно выбрать контроллер под задачу:

5-6 ацп, SPI для LCD, порт на выход, штук 5 пинов на вход.

Как думаете, атмеги16 хватит? В плане памяти, для обработки всех данных. В плане программы- срабатывание группы реле на определенном значении в ацп, включение реле по таймеру. вывод на LCD только небольшое кол-во текста и значений.

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

с применением микросхемы CD4051 вам хватит atmega8

И даже по памяти будет достаточно? Так как либа для экранчика отъест бОльшую часть памяти

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

вы написали обработать 6 ацп, один порт на выход, я так понял для реле, и еще пять входов наверное пять кнопок на них повесить, с таким набором элементов я бы сделал обычную моргалку и мне хватило бы памяти. но вы же не указали что должно делать это устройство. поэтому я вам и написал что вам хватит этого мк по количеству выводов. а по флешу не знаю, все зависит от того что вы хотите)))

еще в либе на лсд можно закоментить неиспользуемые символы тем самым сэкономив чучуть флеша

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

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

вы написали обработать 6 ацп, один порт на выход, я так понял для реле, и еще пять входов наверное пять кнопок на них повесить, с таким набором элементов я бы сделал обычную моргалку и мне хватило бы памяти. но вы же не указали что должно делать это устройство. поэтому я вам и написал что вам хватит этого мк по количеству выводов. а по флешу не знаю, все зависит от того что вы хотите)))

еще в либе на лсд можно закоментить неиспользуемые символы тем самым сэкономив чучуть флеша

А так же выкинуть русский шрифт.

Грубо говоря, часовой таймер, настройка кол-ва часов включенного реле в сутки, по совпадению значения любого ацп- сигнал на пин, (совпадение на ADC0- сигнал на PORTB0, ADC1- сигнал к PORTB1 и тд), прием I2C данных и снова срабатывание пина по соответствию. Около 6(можно до трех сократить) пинов- настройка+ настойка переменным резистором через ацп. Вывод на LCD5110 значений с 6 датчиков(5 ацп, и два значения с одного устройства I2C), времени по таймеру, оставшееся время. Все. Грубо говоря, сложной логики нет, все отдельными модулями, независящими друг от друга. Вот примерный расклад. Хватит 8кб? или в сторону 16й смотреть тогда?

LCD случаем не 5110?

Оно, родимое

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

Снова я, взял 16 мегу, сделал плату, подключил дисплей- заработало.

Но: экран весь в черных точках, и текст очень плохо различим, с?баз подсветки- не имеет значения.

Питание 5в на плату беру от программатора USBASP, 3.3в от 220->usb зарадник->usbttl 3.3в. Может, наводки от сети? все брать от одного источника?

Иногда, при случайном касании какого-либо пина- начинается вакханалия, лечится замыканием rst мк на землю(подтяжка 10кОм)

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

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

Не знаеш как? Спроси у Google'а !!!

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

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

Да, резет подтянут 10ком на плюс. Сбросами лечатся глюки экрана. Помехи можно пока отложить в сторону, налажу питание и посмотрим. А вот заливка всего экрана черным- раздражает, очень плохо различимо.

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

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

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

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

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

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

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

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

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

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

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