26.07.2021, 14:46
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Нужно сконфигурить AD5588
Задумал запрограммировать AD5588. Это такой контроллер клавиатуры, примеры программ для управления которым находятся только для Линукса.
Решил сам написать код для управления мембранной клавиатурой.
Подключил этот контроллер к порту I2C, записал в нужный регистр 0x55, соответствующие выводы отреагировали. Интерфейс работает. Но сама AD5588 очень уж замороченная в настройке.
Но может у кого то уже есть такой опыт? Где бы найти файл инициализации INIT_AD5588();
|
|
|
|
26.07.2021, 18:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
Ничего там нет замороченного. Логика простейшая и пишется на коленке.
А почему именно AD5588? У вас логика на 1.8 вольт заточена?
В аналогичной ситуации но с питанием 3.3 вольта я использовал TCA8418
|
|
|
|
26.07.2021, 19:56
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
AD5588 была куплена очень давно. Посылка шла долго - интерес тогда пропал. А сейчас вот понадобилась. У микросхемы TCA8418 похоже есть аналог PZ418, судя по всему именно его и продают все. Очень похожа на AD5588, даже названия регистров, немного цоколевкой корпуса отличается. Заказал пару штук этих аналогов, цена радует, если они еще и работать будут. Поглядим, что пришлют.
PS Хотя и цоколевка у них одинаковая.
По даташиту набил инитфайл. Получилось так:
Код:
|
I2c_Wr_Byte_AD5588(0x01, 0xA1);
I2c_Wr_Byte_AD5588(0x1D, 0x07);
I2c_Wr_Byte_AD5588(0x1E, 0x3F);
I2c_Wr_Byte_AD5588(0x23, 0x00);
I2c_Wr_Byte_AD5588(0x24, 0x00);
I2c_Wr_Byte_AD5588(0x26, 0x00);
I2c_Wr_Byte_AD5588(0x27, 0x3F);
I2c_Wr_Byte_AD5588(0x2C, 0xF8);
I2c_Wr_Byte_AD5588(0x2D, 0xFF); |
Читал (по замкнутому циклу) из регистра 0х04 и выводил на LCD
Код:
|
I2c_Rd_Byte_AD5588 (0x04, 4); |
Работает.
Последний раз редактировалось mike-y-k; 05.01.2022 в 14:23.
Причина: 6.6, оформление кода
|
|
|
|
27.07.2021, 17:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
Сообщение от optical illusion
|
Читал (по замкнутому циклу) из регистра 0х04 и выводил на LCD
|
Для проверки нормально. Но в реальной конструкции лучше работать по прерываниям.
|
|
|
|
27.07.2021, 20:37
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Обработчик прерываний что бы написать, нужно вначале запустить LCD. По идее они должны вместе работать (под RTX), как бы - дисплей. Сегодня попробовал прицепить 2.8 дюйма LCD цветной с контроллером ILI9341 - по SPI шине. Не пошло, от слова совсем. Скачал как бы "родной" инитфайл для этого контроллера, но он не "откликнулся". Сейчас понимаю, что нужно было вначале отладить SPI с монохромным LX12864, а уж потом на этот рабочий интерфейс цеплять тот цветной LCD.
В демопроектах SPI как то настроен "криво", в таком режиме он не работает с LCD.
Еще не понял почему - нужно подробно смотреть.
Взял настройки SPI из проекта CN0359 (ADI).
Там в файле /sourse/hal/drivers/lcd.c лежит инитфайл lcd_open();
Первая половина этого файла идет настройка SPI (ADUCM360) для работы с LCD, вторая половина команды для дисплея. Заменил строки с командами и все сразу пошло. Сейчас попробую сюда прицепить ILI9341 и нужно запустить DMA.
Что через DMA грузят в LCD?
Нужно иметь образ картинки в памяти МК? Или можно использовать память которая внутри ILI9341. Пишут в даташите, что там 170 килобайт внутри контроллера.
Последний раз редактировалось mike-y-k; 04.01.2022 в 19:19.
Причина: 6.6
|
|
|
|
04.01.2022, 19:12
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
Приветик.
Вытащил из "стола" плату с контроллером для AD5588. Мучаю.
Сейчас столкнулся с фигней - вот сижу, пытаюсь это "осознать".
Короче у меня прога которая управляет AD5588 сидит в отдельном модуле
"I2CeeKBD.c" и конечно хидер имеется "I2CeeKBD.h"
Ну там еще есть работа с флэшкой - все хорошо и работает.
Но пытаюсь это использовать в главной программе - main. И там не видит переменных которые находятся в "I2CeeKBD.c"
Пишу в поле до заголовка main такую описательную строку
#include "I2CeeKBD.c"
и одновременно делаю Remove этого модуля в проекте в закладке Sourse File, это KEIL.
И все начинает видеть! Все работает.
Блин а почему через проект не хочет? Что и где включить надо что бы и там работало?
Что не так делаю?
Последний раз редактировалось optical illusion; 04.01.2022 в 19:14.
|
|
|
|
04.01.2022, 19:25
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
optical illusion, дело в отсутствии
Код:
|
#include "I2CeeKBD.h" |
в main
Сам проект, как и среда не страдают избытком интеллекта на тему прототипов, типов и видимости.
Сие еще в библии от авторов языка было описано.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 05.01.2022 в 14:25.
|
|
|
|
04.01.2022, 19:31
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
У демопроектов надергано и насовано в проекты разных модулей и все работает.
Ошибки то при компиляции не выдает.
|
|
|
|
04.01.2022, 19:41
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
optical illusion, а уровень сообщений компилятора проверить? Если только ошибки…
Всегда вычищаю все на отсутствие любых сообщений…
PS Надергиваете из разных мест - так сие бывает приводит еще и к непреднамеренному использованию одной области памяти…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
Последний раз редактировалось mike-y-k; 05.01.2022 в 14:26.
|
|
|
|
04.01.2022, 20:06
|
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Нужно сконфигурить AD5588
Какие ошибки. Все без ошибок.
Еще раз: добавляем файл с исходным кодом в проект. Компилим - не видит переменных.
Добавляем этот же файл через инклуд - все работает.
Это проблема IDE, не компилятора.
Ошибок нет.
Или я сам что то делаю не правильно.
Причина в чем может быть?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:15.
|
|