Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18
  1. #1
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    184

    Вопрос TDA8425 audio CPU ПРОБЛЕМА!!!

    Добрый вечер всем!

    Собрал процессор на TDA8425, по датышу. ошибок в схеме нет, проверил. Она общается по i2c, написал на ардуине минимальный скетч чтобы просто выставить громкость, режим, вход. Но при подачи сигнала на выходе всегда пусто (тихо)

    Грешу на скетч, так как не особо силен, и наверняка накидал грабли.
    PHP код:
    #include <Wire.h>  // Библиотека

    byte MAD B10000010// адрес модуля
    byte VL B11111111;  // Громкость левого канала
    byte VR B11111111;  // Громкость правого канала
    byte BA B11110110;  // Регулировка НЧ / Басса
    byte TR B11110110;  // Регулировка ВЧ
    byte S1 B11001010;  // Функция входа

    void setup() 
    {
      
    pinMode(13OUTPUT);
      
    digitalWrite(13LOW);
      
    Wire.begin();    // Включить i2c
      
    set();
    }

    void loop()        // Главный цикл
    {
    }

    void set()        // Главный цикл
    {
      
    Wire.beginTransmission(MAD);      // начало передачи, с адресом нужного нам Slave
      //Wire.write(MAD); // отправляем данные для выбраного Slave
      
    delay(100);
      
    Wire.write(B00000000);
      
    delay(100);
      
    Wire.write(VL);
      
    delay(100);
      
    Wire.endTransmission();            // конец передачи
      
    delay(100);   
      
      
    Wire.beginTransmission(MAD); // отправляем данные для выбраного Slave
      
    delay(100);
      
    Wire.write(B00000001);
      
    delay(100);
      
    Wire.write(VR);
      
    delay(100); 
      
    Wire.endTransmission();            // конец передачи
      
    delay(100); 
      
      
    Wire.beginTransmission(MAD); // отправляем данные для выбраного Slave
      
    delay(100);
      
    Wire.write(B00000010);
      
    delay(100);
      
    Wire.write(BA);
      
    delay(100);
      
    Wire.endTransmission();            // конец передачи
      
    delay(100);   
      
      
    Wire.beginTransmission(MAD); // отправляем данные для выбраного Slave
      
    delay(100);
      
    Wire.write(B00000011);
      
    delay(100);
      
    Wire.write(TR);
      
    delay(100);  
      
    Wire.endTransmission();            // конец передачи
      
    delay(100);   
      
      
    Wire.beginTransmission(MAD); // отправляем данные для выбраного Slave
      
    delay(100);
      
    Wire.write(B00001000);
      
    delay(100);
      
    Wire.write(S1);
      
    delay(100); 
      
    Wire.endTransmission();            // конец передачи
      
    delay(100);                       // пауза
      
    digitalWrite(13HIGH);

    В чем я ошибся?

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    Возможно что устройство должно как то инициализироваться. В даташите не описан процесс инициализации?

  3. #3
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    184

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    Цитата Сообщение от Chip Посмотреть сообщение
    Возможно что устройство должно как то инициализироваться. В даташите не описан процесс инициализации?
    Датыш могу приложишь.

    вот тут уже разбирали этот проц. у него все заработало.

    кусок кода для регулировки громкости лев или прав канала
    PHP код:
    void VL(signed char VLbyte//Громкость левого канала
    {
     
    if (
    VLbyte>6VLbyte 6;            //6 дБ наш максимум
    if (VLbyte<-64VLbyte = -80;        //-80 дБ наш минимум
    if (VLbyte<-80VLbyte = -80;
     
    if (!(
    VLbyte%2))                    //если идем с шагом 2 дБ
     
    {
       if (
    VLbyte == -80)               //если -80
         
    {
          
    I2CStart();
          
    I2CSend(0x82);               //адрес тда8425
          
    I2CSend(0x00);               //байт выбора левого канала
          
    I2CSend(192 0);            //шлем нулевое значение
          
    I2CStop();
         } else
           {
             
    I2CStart();
             
    I2CSend(0x82);
             
    I2CSend(0x00);
             
    I2CSend(192 | (63 - (6-VLbyte)/2));  //иначе шлем по формуле
             
    I2CStop();
           }
     }
    //!VLbyte


  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    А для чего после отправки данных выдерживается пауза 100мс?

  5. #5
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    184

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    Цитата Сообщение от Chip Посмотреть сообщение
    А для чего после отправки данных выдерживается пауза 100мс?
    Можно в принципе убрать. там в датише указано что после получения первого байта проц отвечает мастеру, после второго тоже отвечает что понял задачу. и после третьего. я поставил выдержку чтобы все это прошло. как то так.

  6. #6
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    399

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    А что приходит в ответ, и приходит ли? Возможно это поможет понять где проблема?

  7. #7
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    184

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    Цитата Сообщение от manu_245 Посмотреть сообщение
    А что приходит в ответ, и приходит ли? Возможно это поможет понять где проблема?
    по датышу в ответ проц должен прижать SDA к земле. На сколько я понял
    Датыш

  8. #8
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    399

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    По даташиту (стр.9, fig. 4,5), вроде как, после включения команды должны идти одна за другой без STO после каждой, и с одним стопом в конце. А в скетче получается, команды уходят как не после ресета. (стр. 9. fig.6). Ну и я бы посмотрел, что приходит в ответ.

  9. #9
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    Код:
    #include <Wire.h>  
    
        #define  MAD 130 // адрес модуля аудио процессора
        #define LC 0 // адрес левого канала  
        #define RC 1 // адрес правого канала  
    
    void setup()  
    { 
       Wire.begin();    // Включить i2c  
    } 
    
    void loop()        // Главный цикл 
    { 
      set(LC,  63 );
      delay(1000);
      set(LC, 0); 
      delay(1000);
      set(RC, 63); 
      delay(1000);
      set(RC, 0); 
      delay(1000);
    } 
    
       void set(byte sab, byte volume)        
    { 
      Wire.beginTransmission(MAD);      // начало передачи, с адресом аудио процессора   MAD
      Wire.write( sab ); //  SAB адрес   
      Wire.write(volume);  //уровень
      Wire.endTransmission();            // конец передачи  
    }
    Последний раз редактировалось Chip; 18.06.2013 в 11:41.

  10. #10
    Пользователь Аватар для 496385290
    Регистрация
    07.03.2011
    Возраст
    32
    Сообщений
    79
    Вес репутации
    184

    По умолчанию Re: TDA8425 audio CPU ПРОБЛЕМА!!!

    а зачем через секунду громкость в 0 выставлять? чтобы проверить каждый канал по отдельности, тогда надо хотя бы сек 3
    Последний раз редактировалось Chip; 18.06.2013 в 11:39.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •