Стерео аудиопроцессор LC75343M (производства компании Sanyo) предназначен для регулирования громкости и тембра, содержит селектор входов. Аудиопроцессор может регулировать тембр по 2 и 3 полосам в зависимости от схемы подключения, имеет групповую и раздельную регулировку громкости.
Основные характеристики аудиопроцессора LC75343M
- Регулировка громкость от 0 дБ до -78 дБ (64 шага регулирования)
- от 0 дБ до -50 дБ (шаг 1 дБ),
- от -50 дБ до -70 дБ (шаг 2 дБ),
- от -70 дБ до -78 дБ (шаг 4 дБ)
- Независимая и групповая регулировка громкости
- Регулировка тембра ±10 дБ с шагом 2 дБ
- Трех полосная регулировка тембра
- 5-и канальный стерео селектор входов
- Предварительный усилитель входов от 0 дБ до +30 дБ (шаг 2 дБ)
- Напряжение питания от 4,5 В до 9 В
- Управление цифровое 3-Wire (максимальная тактовая частота 500 кГц)
- Входное сопротивление 50 кОм
- Коэффициент нелинейных искажений 0.007 %
Даташит содержит 3-и типовые схемы включения LC75343M, для тестирования была выбрана схема № 3, с трех полосным регулированием тембра.
Для управления LC75343M используются цифровые входы CL, DI и CE. Конфигурация данных состоит в
общей сложности из 40 битов, первые 8 бит — адрес и остальные 32 бита — данные.
Ниже показан тестовый скетч запуска LC75343M, который позволяет регулировать громкость и тембр по 3-м полосам, управлять коммутатором входов.
#define CE 3 #define DI 2 #define CL 4 byte input_m[8]={0b0001,0b1001,0b0101,0b1101,0b0011,0b0111,0b1111}; byte input_gain_m[16]{0b0000,0b1000,0b0100,0b1100,0b0010,0b1010,0b0110,0b1110,0b0001,0b1001,0b0101,0b1101,0b0011,0b1011,0b0111,0b1111}; byte volume_m[64]{0b000000,0b100000,0b010000,0b110001,0b001000,0b101000,0b011000,0b111000,0b000100,0b100100,0b010100,0b110100,0b001100, 0b101100,0b011100,0b111100,0b000010,0b100010,0b010010,0b110010,0b001010,0b101010,0b011010,0b111010,0b000110,0b100110,0b010110,0b110110, 0b001110,0b101110,0b011110,0b111110,0b000001,0b100001,0b010001,0b110001,0b001001,0b101001,0b011001,0b111001,0b000101,0b100101,0b010101, 0b110101,0b001101,0b101101,0b011101,0b111101,0b000011,0b100011,0b010011,0b110011,0b001011,0b101011,0b011011,0b111011,0b000111,0b100111, 0b010111,0b110111,0b001111,0b101111,0b011111,0b111111}; byte ch_sel_m[3]{0b10,0b01,0b11}; byte tembr_m[11]{0b1010,0b0010,0b1100,0b0100,0b1000,0b0000,0b1001,0b0101,0b1101,0b0011,0b1011}; void setup() { pinMode(CE,OUTPUT);pinMode(DI,OUTPUT);pinMode(CL,OUTPUT); digitalWrite(CL,LOW);digitalWrite(CE,LOW);digitalWrite(DI,LOW); audio_R();audio_L(); } void loop() { } void audio_R(){Write(0,0,1, 0 , 5,5,5 );} void audio_L(){Write(0,0,0, 1 , 5,5,5 );} void Write(byte input,byte input_gain,byte volume,byte ch_sel,byte treb,byte mid,byte bass){ digitalWrite(CL,LOW); digitalWrite(CE,LOW); byte addr = 0b01000001; for(int i = 7; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (addr >> i) & 0x01); digitalWrite(CL,HIGH); } digitalWrite(CE,HIGH); for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (input_m[input] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (input_gain_m[input_gain] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 5; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (volume_m[volume] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 1; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (ch_sel_m[ch_sel] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (tembr_m[treb] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (tembr_m[mid] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (tembr_m[bass] >> i) & 0x01); digitalWrite(CL,HIGH); } for(int i = 3; i >= 0; i--){ digitalWrite(CL,LOW); digitalWrite(DI, (0b1101 >> i) & 0x01); digitalWrite(CL,HIGH); } digitalWrite(CL,LOW); digitalWrite(CE,LOW); }
Подключение к Arduino Nano осуществляется по четырем проводам — CE, DI, CL и GND
#define CE 3 // D3
#define DI 2 // D2
#define CL 4 // D4
Основные функции управления:
void audio_R(){Write(0,0,1, 0 , 5,5,5 );}
void audio_L(){Write(0,0,0, 1 , 5,5,5 );}
Громкость каждого канала регулируется раздельно. Функции позволяют регулировать основные параметры аудиопроцессора, всего доступно семь параметров.
Параметры регулирования:
- Write(0,0,1, 0 , 5,5,5 ) — коммутатор входов (byte 0…4 === input 1…5)
- Write(0,0,1, 0 , 5,5,5 ) — предусилитель входа (byte 0…15 === 0…30 dB)
- Write(0,0,1, 0 , 5,5,5 ) — независимая регулировка громкости для каждого канала (byte 0…63 === от -90 до 0 dB)
- Write(0,0,1, 0 , 5,5,5 ) — независимая регулировка громкости (0 — левый канал, 1 — правый канал)
- Write(0,0,1, 0 , 5,5,5 ) — Регулировка тембра TREBLE (byte 0…10 === +10 … -10 dB, byte 5 === 0 dB)
- Write(0,0,1, 0 , 5,5,5 ) — Регулировка тембра MIDDLE (byte 0…10 === +10 … -10 dB, byte 5 === 0 dB)
- Write(0,0,1, 0 , 5,5,5 ) — Регулировка тембра TREBLE (byte 0…10 === +10 … -10 dB, byte 5 === 0 dB)