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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> STM32F4Discovery + VS1011e, Как подружить?
hd44780
сообщение Sep 16 2013, 14:16
Сообщение #1


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

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



Решил наваять аппаратный MP3 плеер sm.gif

VS1011k в корпусе SOIC-28 (паять легче), его обвяз взят отсюда - http://fun4diy.com/CCS_MP3.htm ибо в доке http://www.vlsi.fi/datasheets/vs1011.pdf обломились дать схему подключения для корпуса SOIC-28.
Единственное отличие - я припаял MISO, дабы иметь двунаправленный канал с микросхемой.
И кварц у меня 24МГц.

В итоге подключение такое:
1 - DREQ - PA2
13 - MOSI - PC12 (SPI3)
12 - CLK - PC10 (SPI3)
4 - BSYNC - PA4
11 - nCS - PA3
14 - MISO - PC11 (SPI3)
26 - nRESET - PA5

Ноги 2 и 3 у меня висят в воздухе, я не въеду, куда их цеплять. Иногда их вешают на 12, 13 соответственно, иногда - нет.
MP3 пихать в него я не пытался, пока читал статус и decode time. Оба нули, хотя по доке при включении статус д.б. 0x2C.

Библиотеку для работы с ним брал отсюда - http://www.rlocman.ru/shem/schematics.html?di=33468 (мега128) за неимением ничего другого.

Кто может - посмотрите, пожалуйста, где я ошибся?
Может сама микросхема не стартует? Но когда я nReset дёргаю, в наушниках щёлкает sm.gif .

Спасибо.
Прикрепленные файлы
Прикрепленный файл  SSD1963_Coocox_mp3_VS1011k.rar ( 231.76 килобайт ) Кол-во скачиваний: 35
 


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


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Не смотрели кстати, программно сколько ЦПУ откушает? Мне кажется что немного.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 16 2013, 16:07
Сообщение #3


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

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



Программный я отсюда - http://electronix.ru/forum/index.php?showt...t&p=1182077 взял. Правда, пока переносил себе, где-то исказил работу с ЦАПом. MP3 вроде декодируется, а из наушников ни звука.

A VS1011e - потому, что для STM32F4 есть много других интересных дел sm.gif
Как при этом CPU load мерять - не знаю sad.gif .


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


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Ноги 2,3 нужно посадить на землю, через 100к резисторы.
После перевода сигнала Reset# =1 выждать некоторое время - дождаться сигнала на DREQ# который сигнализирует о завершении инициализации. И только потом отсылать команды. Или подольше сделать паузу перед первой командой.
Также все дополнительные подтягивающие резисторы приведённые в схеме (на ножках TESTx) - нужно установить.
Ещё частота SPI CLK должна быть по даташиту (стр 9): для чтения не более CLKI/6, для записи не более CLKI/4.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 16 2013, 18:19
Сообщение #5


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

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



Спасибо.

Резюки завтра припаяю, там ещё косяк нашёл - 15 ногу в землю черелз 100к запаял, а надо в лоб в Vcc.
DREQ после сброса проверяю, ещё и осциллографом смотрел.
SPI проверю, хрен знает, что у меня на AHB1 творится sm.gif . Всё, что сейчас знаю, что делитель SPI - максимальный - 256.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 19 2013, 11:58
Сообщение #6


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

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



Ноги перепаял:
2 - 100k - GND
3 - 100k - GND
15 TEST1 - +Vcc
16 TEST2 - 100k - GND
17 TEST3 - 100k - GND

изменений не заметил sad.gif .
Прозвоню ещё раз всё, если не изменится, хрен знает, может новый vs покупать придётся ... может он за 6 лет пребывания в ящике сдох от горя ...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Sep 19 2013, 15:12
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



А кварц у VS1011 запускается?
У меня на STM32F2 (совместим с STM32F4) работающему с частотой по дефаулту (кажется 16 мгц), регистр контроля SPI содержал такое значение:
SPI_CR1 = 0x034C
В вашем случае в SPI_CR1 должно быть 0x037C

Нашёл свою инициализацию VS1011E. Она на асме для IAR, потому переведу словами:
1. RES#=1
2. Пауза. Примерно 0,5 сек.
3. Запись в регистр 0 числа 0x0004 - soft.reset
4. Пауза. (такая же как и после хардварного ресета) 0,5 сек
5. Чтение регистра 0 и проверка на обнуление бита 2 - установленного прошлой командой (повторять этот шаг по кругу, пока бит не обнулится).
6. Запись в рег. 0 числа 0x0800 - включение режима "VS1002 native SPI modes"
7. Запись в рег. 3 числа 0x2EE0 - частота кварца/2 кГц; 24.000/2=12.000=2EE0 (HEX)
8. Чтение регистра 0 и проверка считанного слова на значение 0x0800 записанного на шаге [6]. Если нет, то ошибка (я не помню, нужно это или нет, но зачем-то делал проверку).

После этого можно писать данные музыки пакетами по 32 байта, по SPI с использованием сигнала XDCS, и контролируя перед посылкой пакета уровень DRQ.
Также и менять на ходу значения регистров с использованием сигнала XCS.

Ещё в VS1011 есть режим тестового вывода синусоиды описанный на стр. 36,37 даташита.

Сообщение отредактировал controller_m30 - Sep 19 2013, 15:17
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 19 2013, 17:44
Сообщение #8


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

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



Спасибо.
Кварц у меня 24 МГц
На одной из двух ног кварца осц показывает что-то с частотой 15МГц. Но мой осц по доке 8 МГц понимает, может из-за этого и несопадение.


Железка чихнула sm.gif
Поменял вот на это:
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;

Decode Time считался не ноль. Расшифровать его пока не пытался.
Статус после аппаратного сброса равен 20h = 0010 0000 - биты 6..4 = 010 - VS1002/VS1011e - то бишь нормально.
Звука пока никакого sad.gif
Сейчас буду тестовую синусоиду курить.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Sep 19 2013, 18:50
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(hd44780 @ Sep 19 2013, 20:44) *
Статус после аппаратного сброса равен 20h = 0010 0000 - биты 6..4 = 010 - VS1002/VS1011e - то бишь нормально.
В примечании к этому регистру сказано, что после сброса он равен 2Ch, прошивка сразу меняет его на 28h, и через 100ms уже меняет на 20h
"Firmware changes the value of this register immediately to 0x28, and in less than 100 ms to 0x20"
Так что с этим всё нормально.

Синусоиду делать было так:
1. После сброса установить бит TEST (бит 5) в регистре 0
2. Записать 8 байт используя XDCS вместо XCS. Байты можно брать из примера: 0x53, 0xEF, 0x6E, 0x7E, 0, 0, 0, 0.
Вместо 0x7E годятся и другие значения.

PS. Вспомнил ещё. Чтоб использовать сигнал XDCS, нужно чтоб бит 11 в регистре 0 был тоже установлен. Т.е. в регистр 0 нужно записать число 0x0820, а потом уже записывать 8 байт. (если ничего не напутал cool.gif )

Сообщение отредактировал controller_m30 - Sep 19 2013, 19:10
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 21 2013, 09:34
Сообщение #10


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

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



controller_m30, спасибо большое. Тестовая синусоида пошла. Приступаю непосредственно к MP3.

ЗЫ. Оказалось, я накосячил с XDCS. Он инверсный, также как обычный CS. А я с какой-то радости решил, что он прямой wacko.gif ....


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


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(hd44780 @ Sep 21 2013, 13:34) *
controller_m30, спасибо большое. Тестовая синусоида пошла. Приступаю непосредственно к MP3.

ЗЫ. Оказалось, я накосячил с XDCS. Он инверсный, также как обычный CS. А я с какой-то радости решил, что он прямой wacko.gif ....

Зачем вообще это, F4 прекрасно программно декодирует mp3, и если 12 битных цапов достаточно, то совсем все просто, и декодеров в открытом доступе полно
Go to the top of the page
 
+Quote Post
hd44780
сообщение Sep 22 2013, 07:46
Сообщение #12


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

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



kan35, я знаю. У меня есть рабочий проект с Helix, проигрывающий через аудиочип платы Discovery.
Но. Из-за не очень удачной схемы платы дискавери он по ногам конфликтует с FSMC, на которой у меня висит дисплей. Даже простое подключение дисплея (разъём) напрочь вырубает этот аудиочип, даже если ничего не делать с FSMC и дисплеем. Проверял.
Имитировать FSMC ногодрыгом ой как не хочется.

Можно играть через ЦАП контроллера, но туда тоже надо допаивать усилители, управление громкостью и пр. вещи. А VS у меня уже лет 7 в ящике валяется. Покупал ещё для AVR, но руки так и не дошли, да и уровни надо было согласовывать, Т.к. авры в те годы на 3в со скрипом работали...
Прекрасный повод был с нею разобраться.

MP3 играет!

Добавлю управление громкостью и прочим и выложу. Мож кому понадобится...
И вывод WAV сделаю.

Теперь ещё вопросец - можно ли из VS1011e вытаскивать декодированные данные? Или надо декодер покруче, например, VS1053? Хочу FFT прикрутить. Пока заведу выход на АЦП ...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
kan35
сообщение Sep 22 2013, 17:52
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Людям давал послушать STM32, и ни один не сказал, что играет 12 битный цап, всем казалось что это обычный консьюмерский плеер.
Кстати, пример на VS1002 уже давно среди примеров в пакете IAR присутствует.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Sep 22 2013, 18:18
Сообщение #14


Знающий
****

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



Цитата(hd44780 @ Sep 22 2013, 11:46) *
Теперь ещё вопросец - можно ли из VS1011e вытаскивать декодированные данные? Или надо декодер покруче, например, VS1053? Хочу FFT прикрутить. Пока заведу выход на АЦП ...

не знаю, как в 1011, но в 1001 стоял DSP с памятью, куда можно было забрасывать свои куски коды на выполнение..
если в 1011 ядро схожее, то в теории можно доцарапаться до места, куда складываются декодированные данные в RAM перед отправкой в ЦАП, но тут будет очевидная засада - через какой интерфейс их выгружать из чипа?

/offtop_on - я в свое время мастырил два варианта плейера на vs1001 и Atmega
- m128-8l - мега считывала файл с sd и сливала в декодер, попутно сканируя кнопки и делая вывод на экран от сотового
- m8515-16 - мега считывала файл с винчестера/cdrom и сливала в декодер, вторая мега8 рулила первой, а также дешифровала команды от ПДУ(Sony), сканировала кнопки и занималась экраном
Go to the top of the page
 
+Quote Post
hd44780
сообщение Oct 2 2013, 10:04
Сообщение #15


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

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



Громкость управляется, всё ок.

Всплыл ещё один вопрос. Как проиграть обычный WAV PCM файл?

Из чтения доки понял, что можно просто пулять в него WAV файл.

Цитата
9.6 Feeding PCM data
VS1011e can be used as a PCM decoder by sending to it a WAV file header. If the length sent
in the WAV file is 0 or 0xFFFFFFF, VS1011e will stay in PCM mode indefinitely. 8-bit linear and
16-bit linear audio is supported in mono or stereo.


когда файл закончится, включить бит SM_OUTOFWAV.

Пытался это делать - ни хрена не играет, в наушниках только какой-то треск слышен.
Когда пуляю MP3 файл - всё идеально. Проект один и тот же, инициализация одна и та же.

Или надо как-то переключить его в "WAV mode"?

WAV - PCM, 44100Hz, stereo.

Спасибо.

Цитата(kan35 @ Sep 22 2013, 20:52) *
Кстати, пример на VS1002 уже давно среди примеров в пакете IAR присутствует.

Стоят 2 IAR-а - ARM и AVR.
Не нашёл ни в одном. Можете сказать, где именно оно лежит или кинуть сюда его?


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

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

 


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


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