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

 
 
> STM32F429 + VS1053 - нет звука, почему?
hd44780
сообщение Jul 16 2017, 14:02
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Привет всем.

Приобрёл тут китаёзный модуль на VS1053b - http://www.ebay.com/itm/New-Sell-Style-MP3...MMAAOSwjDZYdasE
Отличается от тамошней картинки только наличием у меня резюка R5 - там на фото он отсутствует, у меня 100 кил в землю. Это нога 34, GPIO1.

Проблема такая: все регистры читаются, пишутся, ID нормальный приходит, всё типа ок, а звука нету - ни синуса, ни декодированного файла. Короче, партизан на допросе.
Пытался гнать к него MP3 и WAV (файлы проверенные, F105+VS1053 их играет норм) - тоже тишина, но судя по времени работы функции проигрывания файла - понимает и декодит нормально. Время работы функции совпадает с длительностью звучания файлов - проверено.

Файл драйвера (без функции проигрывания, если надо - выложу) приложил, сам он рабочий, переделанный с великолепно работающей связки F105+VS1053 (переделана только работа с ногами проца/SPI).
Переделал вроде без ошибок - этот же драйвер понимает и VS1003, который нормально свистит синусами и играет музыку на том же F429 проце (дискаверина).

Уже мозг весь об неё сломал, помогите кто может плиз. Или это китаёзы брак пригнали??

Что ещё бросилось в глаза - все GPIO ноги в ДШ (также как и на моей работающей плате с Ф105) притянуты к земле 100к резюками.
На этом модуле - резюк только на ноге 34, остальные, похоже, висят в воздухе.

Пытался менять кварц (у китайцев стоял 12.288МГц, ставил 24.576, как на моей рабочей плате), подправил соответствующим образом инициализацию - ничего не дало. Поставил обратно родной 12.288.

PS.
Опыт работы с этими микрухами есть, успешно заводил VS1011e, VS1003 и такой же 1053.
Но с тупым молчанием микросхемы сталкиваюсь впервые. crying.gif

Спасибо.
Прикрепленные файлы
Прикрепленный файл  vs1011.zip ( 21.24 килобайт ) Кол-во скачиваний: 10
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
hd44780
сообщение Jul 20 2017, 18:49
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Впаял кварц 24.578. Функцию писка немного переписал:

CODE
void vs1011_sinewave_beep ( )
{
// n =
const uint8_t sine_on [ 8 ] = { 0x53, 0xEF, 0x6E, 0x04, 0x00, 0x00, 0x00, 0x00 };
const uint8_t sine_off [ 8 ] = { 0x45, 0x78, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00 };
uint8_t i;

VS1011_RESET_RES ( ); // nRESET = 0
delay_ms ( 1 );
VS1011_SET_RES ( ); // nRESET = 1
delay_ms ( 500 );

// Ждать, пока DREQ == 0
while ( VS1011_DREQ != SET );

vs1011_writeCommand ( VS1011_MODE, SM_SDINEW | SM_TESTS | SM_CLK_RANGE );

for ( i = 0; i < 8; i ++ )
vs1011_writeData ( sine_on [ i ] );

delay_ms ( 250 );

for ( i = 0; i < 8; i ++ )
vs1011_writeData ( sine_off [ i ] );

delay_ms ( 250 );
} // vs1011_sinewave_beep


вызываю в цикле. Пищит нормально в оба уха, no problem, как говорят. Частоту на выходе, правда, не мерял. Текущий драйвер прилагаю.

А вот с проигрыванием беда - mp3 проигрываются буквально как на магнитофоне с завышенной скоростью движения ленты. Другие форматы не пробовал.
функция проигрывания файла самая примитивная, без наворотов:
CODE

uint8_t readBuf [ READBUF_SIZE ];

// Проигрываемый файл
FIL file;

// Проиграть файл
bool Play_file ( char *fName )
{
FRESULT res;
UINT nRead;

// открыть файл
res = f_open ( &file, fName, FA_OPEN_EXISTING | FA_READ );
if ( res != FR_OK )
return false;

// цикл проигрывания
while ( 1 )
{
// Ждать запроса данных от VS
// DREQ == 1 - посылать
// DREQ == 0 - ждать
while ( vs1011_isDataReq ( ) == false );

res = f_read ( &file, readBuf, 32, &nRead );
if ( res != FR_OK || nRead != 32 )
{
break;
} // if
vs1011_send32 ( readBuf );
} // while

// закрыть файл
f_close ( &file );

// послать 2к нулей для очистки внутренних буферов VS
for ( nRead = 0; nRead < 2048; nRead ++ )
vs1011_writeData ( 0 );

// Сброс VS
vs1011_reset ( );

return true;
} // Play_file

Размер буфера 2 кила (там был кеш с опережающим чтением, я его пока выкинул), но то пофиг, ни на что не влияют.

В чём ещё могут быть траблы?

PS.
начинаю думать, что этот модуль - вообще брак полный crying.gif .
Прикрепленные файлы
Прикрепленный файл  vs10xx.zip ( 21.3 килобайт ) Кол-во скачиваний: 8
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jul 20 2017, 20:01
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(hd44780 @ Jul 20 2017, 21:49) *
вызываю в цикле. Пищит нормально в оба уха, no problem, как говорят. Частоту на выходе, правда, не мерял. Текущий драйвер прилагаю.
В чём ещё могут быть траблы?
PS.
начинаю думать, что этот модуль - вообще брак полный crying.gif .

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

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

по буратинному мп3 - настройки проверили, вот тут всё правильно:

В CLOCK_F пишу 0xE430.

и нет ли случайно записи в этот регистр?
Код
playSpeed makes it possible to fast forward songs. Decoding of the bitstream is performed, but only each playSpeed frames are played. For example by writing 4 to playSpeed will play the song four times as fast as normal, if you are able to feed the data with that speed. Write 0 or 1 to return to normal speed. SCI DECODE TIME will also count faster. All current codecs support the playSpeed configuration.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2017, 09:39
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(Jury093 @ Jul 20 2017, 23:01) *
и нет ли случайно записи в этот регистр?
Код
playSpeed makes it possible to fast forward songs. Decoding of the bitstream is performed, but only each playSpeed frames are played. For example by writing 4 to playSpeed will play the song four times as fast as normal, if you are able to feed the data with that speed. Write 0 or 1 to return to normal speed. SCI DECODE TIME will also count faster. All current codecs support the playSpeed configuration.

не, я таким тюнингом вообще никогда не занимался.
Но пойду раскурю эту тему, может там мусор какой валяется ... У китайцев схема несколько упрощена в сравнении с тем, что нарисовано в ДШ sad.gif .

ЗЫ
купил модуль, чтобы не делать самому плату, а тут такая хрень. Чип у меня и свой уже 3 года в коробке где-то валяется ..

Цитата(Jury093 @ Jul 20 2017, 23:01) *
у вас очевидный прогресс - плата раньше "му" не говорила, теперь уже пищит синусом.. измерить надо обязательно - так вы поймете правильность частоты для эталонного синуса

Угу. Поленились ребяты эти GPIO0 и GPIO1 вместе спаять ... Потому и молчала.
Там ещё куча ног в воздухе у них висит - GPIO2...GPIO7. Там I2S для внешнего ЦАПа и ещё один SPI какой-то что-ли.
Синус померю осциллом, отпишусь.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jul 21 2017, 10:18
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(hd44780 @ Jul 21 2017, 12:39) *
Синус померю осциллом, отпишусь.

на всякий случай - в моем предыдущем сообщение было не утверждение а вопрос вот по этой настройке в исходниках:
Код
*         F = 24576/2 = 12288кГц = 12288000 Гц
*        SC_FREQ = (12288000-8000000)/4000 = 1072 = 0x0430 =    100 0011 0000 - 12 бит
*
*        CLOCK_F = 0xE000 | 0x0000 | 0x0430 = 0xE430
*
*        SC_MULT = 5, SC_ADD = 7
*        F = 12.288 * (5+2) = 86,016 MHz
*/
//        vs1011_writeCommand ( VS1011_CLOCKF, 0xE430 | 0x1800 );        // 0xFC30
        vs1011_writeCommand ( VS1011_CLOCKF, 0xE430 );

явно расчет делался на 12.288МГц, а т.к. сейчас у вас кварц 24.576МГц, то частота для фирвари будет в 2 раза выше, возможно ей это не нравится отсюда и фальцет на мп3..
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2017, 10:45
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Сорри, я не понял, что это был вопрос. Да, расчёты все на 12.288, т.к. кварц 24.576, то везде задаётся
vs1011_writeCommand ( VS1011_MODE, SM_SDINEW | SM_CLK_RANGE ); // 0x8800
SM_CLK_RANGE - 15 бит в 1 - кварц 24..26.
А в расчётах магического числа для CLOCK_F в доке вообще ни звука об этом.
Я для интереса пытался рассчитывать для 24.576 - результат не влез в отведённые 10 бит.

Сообщение отредактировал IgorKossak - Jul 21 2017, 13:26
Причина редактирования: бездумное цитирование


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jul 21 2017, 11:59
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(hd44780 @ Jul 21 2017, 13:45) *
Сорри, я не понял, что это был вопрос. Да, расчёты все на 12.288, т.к. кварц 24.576, то везде задаётся
vs1011_writeCommand ( VS1011_MODE, SM_SDINEW | SM_CLK_RANGE ); // 0x8800
SM_CLK_RANGE - 15 бит в 1 - кварц 24..26.
А в расчётах магического числа для CLOCK_F в доке вообще ни звука об этом.
Я для интереса пытался рассчитывать для 24.576 - результат не влез в отведённые 10 бит.

да, в документации явно не хватает четких определений..
все же попробуйте загрузить вместо 0xe430 допустим 0x4430 и послушать (на всякий случай битрейт пониже сделайте)
и хорошей проверкой будет генерация эталонного файла с синусом известной частоты, прогоном через кодек и измерением осциллом..
я так ловил искажения при подключение аудиокодека к АРМу, кстати с кварцем на 24.576 пело явно выше, вылечил переключением на тактирование от АРМа
Go to the top of the page
 
+Quote Post
hd44780
сообщение Jul 21 2017, 12:25
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(Jury093 @ Jul 21 2017, 14:59) *
все же попробуйте загрузить вместо 0xe430 допустим 0x4430 и послушать (на всякий случай битрейт пониже сделайте)
и хорошей проверкой будет генерация эталонного файла с синусом известной частоты, прогоном через кодек и измерением осциллом..


Да, сделаю, спасибо. Есть файл - звучит 440 Hz.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- hd44780   STM32F429 + VS1053 - нет звука   Jul 16 2017, 14:02
- - Jury093   Цитата(hd44780 @ Jul 16 2017, 17:02) Опыт...   Jul 16 2017, 16:59
- - hd44780   Громкость максимальная - после инициализации специ...   Jul 17 2017, 05:14
- - Genadi Zawidowski   Для проверки поставьте в конец SPI_sendByte (после...   Jul 17 2017, 05:50
- - hd44780   В течении дня попробую - отпишусь. Пока функция от...   Jul 17 2017, 08:24
|- - Jury093   Цитата(hd44780 @ Jul 17 2017, 11:24) Попа...   Jul 17 2017, 08:47
- - Jury093   похоже ваш случай: http://www.vsdsp-forum.com/phpb...   Jul 17 2017, 12:02
- - hd44780   Да, GPIO0 и GPIO1 соединить вместе на данный момен...   Jul 17 2017, 12:14
- - jcxz   Цитата(hd44780 @ Jul 16 2017, 17:02) Но с...   Jul 17 2017, 14:16
|- - hd44780   Цитата(jcxz @ Jul 17 2017, 17:16) Вам сам...   Jul 19 2017, 07:42
- - Genadi Zawidowski   выдачу через SPI дорабатывали? К снижению частоты ...   Jul 19 2017, 09:26
|- - jcxz   Цитата(Genadi Zawidowski @ Jul 19 2017, 12...   Jul 19 2017, 09:31
- - hd44780   SPI доработал - не полегчало . CODE// Чтение/зап...   Jul 19 2017, 09:45
|- - Jury093   Цитата(hd44780 @ Jul 19 2017, 12:45) Наве...   Jul 19 2017, 10:20
- - hd44780   Да, кварц 24.576 есть, как запаяю/проверю, отпишус...   Jul 19 2017, 12:23
- - hd44780   Значит так. 1. Проверил осциллом/частотомером - с...   Jul 21 2017, 17:28
|- - Jury093   Цитата(hd44780 @ Jul 21 2017, 20:28) Чё с...   Jul 21 2017, 20:27
- - hd44780   Дисплей и отладка есть, Слава Богу. В общем после...   Jul 22 2017, 09:58
|- - Jury093   Цитата(hd44780 @ Jul 22 2017, 12:58) В об...   Jul 22 2017, 11:38
- - hd44780   Да, как-нибудь гляну ...   Jul 22 2017, 18:05


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:12
Рейтинг@Mail.ru


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