В этой статье показано оригинальное применение небольшого графического LCD-модуля. Прошлым летом, графический LCD-модуль SG12232C продавался за 1500 йен и я купил его. Но я не мог найти хорошее применение ЖК-модулю, и собирался отправить его в коробку с хламом, поэтому я пытался найти ему хоть какое-то применение.
Просто отображение любых неподвижных изображений не круто, сначала я пытался отображать форму звуковой волны в режиме реального времени как цифровой осциллограф, а затем и спектральный анализ при помощи FFT. Устройство контроля спектра, кажется сделано хорошо, с учетом реализации на дешевом микроконтроллере.
Аппаратная часть
SG12232C является полноценным графическим ЖК-модулем с разрешением 122(H)х32(V) точек. На плате есть два LCD контроллера Epson S1D15200. S1D15200 может отображать до 61(H)х32(V) точек и каждый управляет половиной ЖК-дисплея. SG12232C требуется меандр 2 кГц в качестве тактового сигнала для ЖК-дисплея и оно должно подаваться пока питание включено, иначе ЖК-дисплей может быть поврежден. Можно выбрать интерфейс шины на основе 8080 или 6800. 4-битного режима как у HD447880 нет, доступен только 8-битный режим и это требует как минимум 14 линий ввода/вывода.
На изображении показана собранная плата и её схема. Использован микроконтроллер Atmel ATmega8, который оцифровывает входящей звуковой сигнал и отображает формы волн на ЖК-модуле. Это не сложно для изготовления. Я использовал MAX293, эллиптический фильтр 8-го порядка в качестве сглаживающего фильтра. SCF очень полезен и дешев по сравнению с дискретным LPF.
Программа
Изображение ниже показывает процесс внутреннего прохождения сигнала. Оцифрованные блоки данных преобразуется FFT и отображаются как бары в левой половине (64 точки) ЖК-дисплея. Форма волны отображаются в правой половине (58 точек) с циклическим сдвигом сигнала.
Операции выполняются с 16-битной фиксированной точкой. Эти 128 точечные процессы FFT, применяющие интервалы, операции бабочки и скалярный выход, могут быть выполнены в режиме реального времени (в течение 7,3 мс). Это довольно быстро, учитывая обработку дешёвым микроконтроллером. Спектр делений отображается в порядке основной частоты х0 (постоянная составляющая), основной частоты x1, x2, x3, … слева направо. Частота дискретизации составляет 9,6 кГц и основная частота (частотное разрешение) примет вид: 9.6k/128=75 Гц.
Также есть библиотеки FFT с неподвижной точкой для AVR-GCC. Они написаны на ассемблере и оптимизированы для megaAVR.
Вот некоторые формы волн, меандр, пилообразная волна и sin(х)/х. Вы можете обнаружить, что они отображаются так же, как в учебнике.
Видео работы: видео 1, видео 2, видео 3, видео 4
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8 | 1 | ATmega8-16AC | ||
U2 | Микросхема | MAX293CPA | 1 | |||
C? | Конденсатор электролитический | 10 мкФ | 1 | |||
C | Конденсатор | 1 мкФ | 2 | неполярный | ||
Конденсатор | 100 нФ | 5 | ||||
Конденсатор | 22 пФ | 2 | ||||
R1 | Резистор | 150 кОм | 1 | |||
R2 | Резистор | 51 кОм | 1 | |||
Резистор | 100 кОм | 1 | ||||
Резистор | 20 кОм | 1 | ||||
Резистор | 10 кОм | 2 | ||||
Резистор | 4.7 кОм | 1 | ||||
VR1 | Подстроечный резистор | 2 кОм | 1 | |||
VR2 | Подстроечный резистор | 5 кОм | 1 | |||
VR3 | Подстроечный резистор | 10 кОм | 1 | |||
Y1 | Кварц | 16 МГц | 1 | |||
LCD | LCD-дисплей | SG12232C | 1 | 122х32, два контроллера S1D15200 | ||
P1 | Разъём | 2 контакта | 1 | разъём питания | ||
P2 | Разъём | PLD-20 | 1 | разъём LCD | ||
P3 | Разъём | PLD-6R | 1 | разъём ISP | ||
Разъём | 2 контакта | 1 | вход аудиосигнала | |||
SW | Кнопка | замыкающая | 1 | |||