реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> SSM2603: странное смещение на выходе.
Artem_Petrik
сообщение Sep 8 2010, 10:59
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Схему включения взял из даташита. После инициализации SSM2603 на ее выходах устанавливается напряжение отличное от Vcc/2, причем в правом и левом каналах разное. При этом на выводе Vmid все в порядке. Если на вывод PBDAT подавать отличные от 0 данные, то они какбы складываются с этим непонятным оффсетом. Если результат сложения выходит за допустимые пределы, то он переполняеся так, как если сложение происходит в цифре (типа: 0xFFFFFF + 5 = 4). Т.е. такое ощущение, что SSM-ка перед ЦАП-ом прибавляет к пришедшим данным какое-то число.

Пока разбирался, выяснил, что отличное от Vcc/2 напряжение появляется после подключения к выоду сигнала от DAC. Если DAC отключить, и включать всякие bypass или sidetone, то смещение такое как надо.
От режима работы цифрового интерфейса (master/slave, кол-во бит), не зависит.

Вот пример инициализации.
Код
  // Power on CLKOUT, OSC, DAC. no power OUT, ADC, MIC, LINEIN.
  Ssm2603_WriteReg(0x06, 0x010);
  // Configure other registers.
  Ssm2603_WriteReg(0x02, 0x179); // dac volume 0dB
  Ssm2603_WriteReg(0x04, 0x012); //dacsel, mutemic.
  Ssm2603_WriteReg(0x05, 0x000);
  Ssm2603_WriteReg(0x07, 0x04A); // master 24bit I2s
  Ssm2603_WriteReg(0x08, 0x080); // 48k @ 12.288MHz
  // Wait time for charging Vmid Capasitor.
  wait_ms(1000);
  // Set ACTIVE bit in reg R9
  Ssm2603_WriteReg(0x09, 0x001);
  wait_ms(1000);        // на всякий случай :)

  // !!! Сейчас на выходе Vcc/2 как и положено.

  // Set OUT bit in R6 to 0
  Ssm2603_WriteReg(0x06, 0x007);

  // !!! Напряжение на выходах "отпрыгнуло" от Vcc/2 вниз на разные значения.


Может уважаемый All сталкивался с такой проблемой и знает как ее победить? Ато у меня уже иссякли идеи sad.gif
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Sep 8 2010, 16:22
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Удалось побороть это непонятное смещение следующим образом: после полной инициализации (как раньше) ресетнуть SSM-ку (write 0 to Reg 0F), и повторить инициализацию заново. После этого все смещения в норме (Vcc/2). Еще поиграюсь, может получится прийти к какой-то менее кривой процедуре инициализации.
Go to the top of the page
 
+Quote Post
grv
сообщение Feb 3 2011, 11:57
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



У меня что-то подобное. При подаче с другой стороны с такого же кодека синусоидального сигнала на приеме вижу смещенный синус и порванный в районе верхужки или низовья. Такое впечатление что это происходит при арифметическом переполнении в DAC, т.к. отрезанная верхушка вылазит по вертикали с другой стороны .

На чем закончилась эппопея с кодеком, удалось добиться стабильной работы? У меня такой глюк вылазит где то в 30% случаев после включеня. Читал регистры когда все ок и когда все плохо - не отличаются. Сначала грешил на i2c. тайминг. паузы.

Кстати, нарастание VMID при инициализации и 10uF кондере происходит за 1секунду а не за 100мс как кое-кто обещал sm.gif

Сообщение отредактировал grv - Feb 3 2011, 12:38
Go to the top of the page
 
+Quote Post
Artem_Petrik
сообщение Feb 3 2011, 15:44
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006



Цитата(grv @ Feb 3 2011, 13:57) *
На чем закончилась эппопея с кодеком, удалось добиться стабильной работы? У меня такой глюк вылазит где то в 30% случаев после включеня. Читал регистры когда все ок и когда все плохо - не отличаются. Сначала грешил на i2c. тайминг. паузы.

Да, пока все осталось так, как предыдущем посте описано.Из-за цейтнота некогда разбираться в причинах, работает и хорошо. У меня такой глюк не в 30% случаев, а всегда, только величина смещения меняется. Но ресет с повторной инициализацией проблему решает.

задержки я увеличивал до неприличия - не помогало, так что дело не в них.

А кондер, да, заряжается поболе секунды, со 100 мс это они привирают. Но даже если при инициализации соответствующую паузу сделать секунд 10, обсуждаемый глюк все равно не исчезает.
Go to the top of the page
 
+Quote Post
grv
сообщение Feb 3 2011, 16:25
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



Цитата(Artem_Petrik @ Feb 3 2011, 18:44) *
Да, пока все осталось так, как предыдущем посте описано.Из-за цейтнота некогда разбираться в причинах, работает и хорошо. У меня такой глюк не в 30% случаев, а всегда, только величина смещения меняется. Но ресет с повторной инициализацией проблему решает.

задержки я увеличивал до неприличия - не помогало, так что дело не в них.

А кондер, да, заряжается поболе секунды, со 100 мс это они привирают. Но даже если при инициализации соответствующую паузу сделать секунд 10, обсуждаемый глюк все равно не исчезает.


Ясно, попробую проделать у себя.
Go to the top of the page
 
+Quote Post
grv
сообщение Feb 3 2011, 22:39
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



Цитата(grv @ Feb 3 2011, 19:25) *
Ясно, попробую проделать у себя.


Попробовал.
При включении девайса питанием вроде стабильно запускается.
если включенный девайс затем перезапускать той же "двойной" процедурой снова обломс.
кстати, у меня по ходу тоже была строчка типа

wait_ms(1000); // на всякий случай sm.gif

так вот без нее холодный пуск не работает maniac.gif
Начинает напрягать отсутствие ноги Reset в кодеке.
У меня вообще может в девайсе кодека 2 быть. Чуствую интересное еще впереди.

Сообщение отредактировал grv - Feb 3 2011, 22:41
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016