темброблок на R2S15902FP
темброблок на R2S15902FP
пытаюсь сделать управление микросхемой R2S15902FP
за основу взял инфу с сайта
http://forum.rcl-radio.ru/viewtopic.php?id=15
если просто беру скетчи с сайта, который выше, то все работает и управляется нормально
пытаюсь создать пользовательский блок на основании "тест инфо" но чего то не того , громкость регулируется но неправильно( наоборот ) и тихо
в последствии хочу сделать управление R2S15902FP с помощью ESP8266
может кто сможет помочь , а то я в не очень , а метод ТЫКА не прокатил
за основу взял инфу с сайта
http://forum.rcl-radio.ru/viewtopic.php?id=15
если просто беру скетчи с сайта, который выше, то все работает и управляется нормально
пытаюсь создать пользовательский блок на основании "тест инфо" но чего то не того , громкость регулируется но неправильно( наоборот ) и тихо
в последствии хочу сделать управление R2S15902FP с помощью ESP8266
может кто сможет помочь , а то я в не очень , а метод ТЫКА не прокатил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
темброблок на R2S15902FP
[ref]solo[/ref], Чуток попутали в вызове Slot1, поправил, а так в целом все верно...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
темброблок на R2S15902FP
Оффтоп. Не пробывали применить ADAU1701? Интересный аудиопроцессор, хорошие возможности, программируется аналогично флпрог, есть своя графическая программа, какая никакая поддержка.
темброблок на R2S15902FP
не так совсем не работаетAlexCrane писал(а): 20 дек 2021, 20:41 [ref]solo[/ref], Чуток попутали в вызове Slot1, поправил, а так в целом все верно...
proba нано v2.flp
не у меня просто есть ( достался по случаю, музыкальный ящик ) в котором управление звуком идет микрухой R2S15902FP, вот и пытаюсь оживитьcom писал(а): 20 дек 2021, 20:46 Оффтоп. Не пробывали применить ADAU1701? Интересный аудиопроцессор, хорошие возможности, программируется аналогично флпрог, есть своя графическая программа, какая никакая поддержка.
Отправлено спустя 2 минуты 52 секунды:
вот если заливаю такой скетч в ардуино
[spoiler]
//#include <R2S15902FPM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <R2S15902FP.h>
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
//#include <IRremote.h>
LiquidCrystal_I2C lcd(0x3F,16,2); // Устанавливаем дисплей
//IRrecv irrecv(12); // указываем вывод модуля IR приемника
Encoder myEnc(9, 8);// DT, CLK
//decode_results ir;
byte a1[8] = {0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
byte a2[8] = {0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
byte a3[8] = {0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000};
unsigned long time,oldPosition = -999,newPosition;
int menu,vol,vol_d,treb,treb_d,bass,bass_d,in;
byte w,w2,z,z0,z1,r_l;
void setup(){
//irrecv.enableIRIn(); // запускаем модуль IR
lcd.init();lcd.backlight();// Включаем подсветку дисплея
lcd.setCursor(0,0);lcd.print(" R2S15902FP ");delay(2000);
Serial.begin(9600); lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
pinMode(DATA, OUTPUT); // D2
pinMode(CLK, OUTPUT); // D3
pinMode(10,INPUT);// МЕНЮ КНОПКА SW энкодера
MsTimer2::set(3, to_Timer);MsTimer2::start(); // АКТИВИРУЕМ ПРЕРЫВАНИЯ ДЛЯ ЭНКОДЕРА
vol = EEPROM.read(0);treb = EEPROM.read(1);bass = EEPROM.read(2);in = EEPROM.read(3);
delay(100);cl();
audio();
}
void loop(){
if(digitalRead(10)==LOW){menu++;cl();time=millis();w=1;w2=1;if(menu>3){menu=0;}}// меню
if(menu==0){
if (newPosition != oldPosition){oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;vol_func();audio();}
lcd.setCursor(0,0);lcd.print("VOLUME ");
lcd.print(" ");lcd.print(-vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=48-vol;
if(w2==1){
for(z=0,z0=0,z1=0;z<=vol_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}w2=0;}}
///////////////////////// TREBLE +/-14 dB /////////////////////////////////////////////////////////
if(menu==1){
if (newPosition != oldPosition) {
oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_func();audio();}
lcd.setCursor(0,0);lcd.print("TREBLE ");
lcd.print(" ");lcd.print(14-treb*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");treb_d=28-treb*2;
if(w2==1){
for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}w2=0;}}
///////////////////////// BASS +/-14 dB /////////////////////////////////////////////////////////
if(menu==2){
if (newPosition != oldPosition) {
oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bass_func();audio();}
lcd.setCursor(0,0);lcd.print("BASS ");
lcd.print(" ");lcd.print(14-bass*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");bass_d=28-bass*2;
if(w2==1){
for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}w2=0;}}
///////////////////// IN /////////////////////////////////////////////////////////////////////////
if(menu==3){
if (newPosition != oldPosition) {
oldPosition = newPosition;
in=in-newPosition;myEnc.write(0);newPosition=0;time=millis();cl();w=1;w2=1;in_func(); if(in==3){r_l=1;}else{r_l=0;}audio();}
lcd.setCursor(0,0);lcd.print("INPUT ");lcd.print(in+1);
}
if(millis()-time>10000 && w==1){
EEPROM.update(0,vol);EEPROM.update(1,treb);EEPROM.update(2,bass);EEPROM.update(3,in);
menu=0;w=0;w2=1;cl();}
}
void in_func(){if(in>3){in=0;}if(in<0){in=3;}}
void bass_func(){if(bass>14){bass=14;}if(bass<0){bass=0;}}
void treb_func(){if(treb>14){treb=14;}if(treb<0){treb=0;}}
void vol_func(){if(vol<0){vol=0;}if(vol>99){vol=99;}}
void cl(){
//ir.value=0;
delay(300);lcd.clear();}
void to_Timer(){newPosition = myEnc.read()/4;}
void audio(){
Slot1(in,3,r_l,0,bass,treb,0);
// input selector 1...4 === int 0...3, in4 === multi in
//REC-Output Gain Control int 0...6 dB === int 0...3
//L/R Input 0 === IN1...3, 1 === IN4 MULTI
//ADC Input ATT 0...-6 dB === int 0...3
//bass int 0 === +14dB int 8 === 0dB int 15 === -14dB
//treble int 0 === +14dB int 8 === 0dB int 15 === -14dB
//Input Gain 0...14 dB === int 0...7
Slot2(5,vol,5,vol); // gain0, volume0, gain1, volume1
Slot3(5,vol,5,vol); // gain2, volume2, gain3, volume3
Slot4(5,vol,5,vol); // gain4, volume4, gain5, volume5
// gain 0...14 dB === int 0...7
// volume 0...-99 dB === int 0...100
}
[/spoiler]
то все работает отлично
темброблок на R2S15902FP
спасибо за внимание к теме
из выше сказанного мне почти нечего не понятно
скажу что пробовал
так как в программировании я почти "0" но методом тыка пробовал вносить изменения в пользовательский блок
но пользовательский блок так и не заработал нормально ,
если заливаю скетч из сообщения выше то при управлении "громкость" выходной сигнал нарастает от мин до мах
если заливаю скетч с FLProg с пользовательским блоком, то при вращении энкодера значение переменной "volum" увеличивается , а уровень выходного сигнала уменьшается , и при значении где то 20 исчезает совсем ( складывается такое впечатление, что не те биты попадают на управление микросхемы )
и я не понимаю из за чего это происходит то ли рассогласования тайминга между clock и data ( осциллографа посмотреть сигналы нету) то ли еще по какой то причине
из выше сказанного мне почти нечего не понятно
скажу что пробовал
так как в программировании я почти "0" но методом тыка пробовал вносить изменения в пользовательский блок

если заливаю скетч из сообщения выше то при управлении "громкость" выходной сигнал нарастает от мин до мах
если заливаю скетч с FLProg с пользовательским блоком, то при вращении энкодера значение переменной "volum" увеличивается , а уровень выходного сигнала уменьшается , и при значении где то 20 исчезает совсем ( складывается такое впечатление, что не те биты попадают на управление микросхемы )

темброблок на R2S15902FP
у меня на плате сделана разводка всех входов кроме in_3 если смотреть по даташифтуav писал(а): 22 дек 2021, 13:15 Вопрос... по какой схеме вы делаете аудиопроцессор. У автора библиотеки на форуме есть обновленная схема и исправленная библа. Добавились отдельные входы звука 5.1 в связи с этим изменилась функция управления параметров селектора входов.
https://www.renesas.com/us/en/document/ ... -datasheet
конкретно сейчас ковыряюсь с управлением сигнала который приходит на IN_2
Да я сам взялся ковыряюсь с этим блоком , на фирме решили сделать корпоратив , ну и понадобилась музыка .
Сейчас попробую залить скеч в ЕСП8266 может поможет, за одно и проверю масштабирование
темброблок на R2S15902FP
av писал(а): 22 дек 2021, 16:32 Какой дисплей будет использоваться для отображения и настройки параметров ?
планирую телефон
о спасибо про пины проверил пины (2. 3.) нано, переносятся в esp как 4 и RX соответственноav писал(а): 22 дек 2021, 16:32 назначением пинов подключения DATA, CLK. Не знаю как вы назначите эти пины для ЕСП.
а покажите как можно регулировать частоту вывода DATA , Clk чета мне кажется шо ЕСП сильно быстро генерит частоту , а судя по датшифту частота должна быть не выше 125кГц ( 8мкС )
У вас нет необходимых прав для просмотра вложений в этом сообщении.
темброблок на R2S15902FP
подправил не помогло , все без измененийav писал(а): 22 дек 2021, 19:11 Кстати в блоке есть ошибка. Вход R_L_in имеет тип boolean (из библиотеки), а не тип integer.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
темброблок на R2S15902FP
Я думаю, лишние библиотеки нужно удалить, в приложенном блоке встроены четыре, какую из них ардуино берет.... Поэтому и все гадания в каком месте и какого типа R_L
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
темброблок на R2S15902FP
спасибо
но чего то таво ругается на вот ЭТО
if (Old_Selector != Selector || Old_Out_gain != Out_gain || Old_att != att || Old_R_L_in != R_L_in || Old_bass != bass || Old_treb != treb || Old_in_gain != in_gain)
[spoiler]
C:\Users\solo\AppData\Local\Temp\flprog\pr1\pr1.ino: In function 'void loop()':
pr1:166:37: error: 'Old_Out_gain' was not declared in this scope; did you mean 'Old_out_gain'?
166 | if (Old_Selector != Selector || Old_Out_gain != Out_gain || Old_att != att || Old_R_L_in != R_L_in || Old_bass != bass || Old_treb != treb || Old_in_gain != in_gain)
| ^~~~~~~~~~~~
| Old_out_gain
pr1:175:58: error: 'treble' was not declared in this scope; did you mean 'treb'?
175 | Slot1(Selector, Out_gain, att,R_L_in, bass, treble,in_gain); //выполняем функцию настройки параметров если функция сравнения неравенства была успешной
| ^~~~~~
| treb
Несколько библиотек найдено для "EEPROM.h"
Используется: D:\FLpog7.4\PortableFLProg_7-4-1_Win64\ideV8\portable\packages\esp8266\hardware\esp8266\3.0.2\libraries\EEPROM
Не используется: d:\FLpog7.4\PortableFLProg_7-4-1_Win64\ideV8\portable\sketchbook\libraries\E2PROM
exit status 1
'Old_Out_gain' was not declared in this scope; did you mean 'Old_out_gain'?
[/spoiler]
Отправлено спустя 1 минуту 26 секунд:
а проект
но чего то таво ругается на вот ЭТО
if (Old_Selector != Selector || Old_Out_gain != Out_gain || Old_att != att || Old_R_L_in != R_L_in || Old_bass != bass || Old_treb != treb || Old_in_gain != in_gain)
[spoiler]
C:\Users\solo\AppData\Local\Temp\flprog\pr1\pr1.ino: In function 'void loop()':
pr1:166:37: error: 'Old_Out_gain' was not declared in this scope; did you mean 'Old_out_gain'?
166 | if (Old_Selector != Selector || Old_Out_gain != Out_gain || Old_att != att || Old_R_L_in != R_L_in || Old_bass != bass || Old_treb != treb || Old_in_gain != in_gain)
| ^~~~~~~~~~~~
| Old_out_gain
pr1:175:58: error: 'treble' was not declared in this scope; did you mean 'treb'?
175 | Slot1(Selector, Out_gain, att,R_L_in, bass, treble,in_gain); //выполняем функцию настройки параметров если функция сравнения неравенства была успешной
| ^~~~~~
| treb
Несколько библиотек найдено для "EEPROM.h"
Используется: D:\FLpog7.4\PortableFLProg_7-4-1_Win64\ideV8\portable\packages\esp8266\hardware\esp8266\3.0.2\libraries\EEPROM
Не используется: d:\FLpog7.4\PortableFLProg_7-4-1_Win64\ideV8\portable\sketchbook\libraries\E2PROM
exit status 1
'Old_Out_gain' was not declared in this scope; did you mean 'Old_out_gain'?
[/spoiler]
Отправлено спустя 1 минуту 26 секунд:
а проект
У вас нет необходимых прав для просмотра вложений в этом сообщении.
темброблок на R2S15902FP
ура на ардуино и на ESP заработало
с еспешкой были маленькие проблемы, при питании от юсб проходили какие то помехи ( постоянное хрюкание )
и сигнал R_L_in почему то не переключатся с веб интерфейса , ну это мелочи может перересую мордочку и все у нормализуется
все с меня причитается
сяду рисовать мордочку для управления


с еспешкой были маленькие проблемы, при питании от юсб проходили какие то помехи ( постоянное хрюкание )
и сигнал R_L_in почему то не переключатся с веб интерфейса , ну это мелочи может перересую мордочку и все у нормализуется
все с меня причитается
сяду рисовать мордочку для управления
темброблок на R2S15902FP
спасибо я это уже исправил , У меня вчера были с этим проблемы по этому долго не мог понять почему я меняю библиотеки ( только я менял библиотеки у которых 6 переменных и 7 переменных в строке void Slot1) а в скетче использовалась только одна на 7 переменных .
Это я так методом тыка пытался создавать сам пользовательский блок
Это я так методом тыка пытался создавать сам пользовательский блок
темброблок на R2S15902FP
подскажите пж
в веб интерфейсе есть виджет "Кнопка ", можно где то, что то подправить чтобы увеличить размер тыкательного места
в свойствах кнопки написано стиль stBtn
В настройках веб интерфейса есть упоминание рядом с "stBtn" {margin 5px} если увеличить значение цифирьки то становится более крупная надпись а тыкательное место не увеличивается
в веб интерфейсе есть виджет "Кнопка ", можно где то, что то подправить чтобы увеличить размер тыкательного места
в свойствах кнопки написано стиль stBtn
В настройках веб интерфейса есть упоминание рядом с "stBtn" {margin 5px} если увеличить значение цифирьки то становится более крупная надпись а тыкательное место не увеличивается
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: diman27 и 0 гостей