Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 92 | 9 | 18
Назад Вниз Каталог Обновить

Выбор DAC чипа. Аноним 14/03/17 Втр 05:25:17  275204  
DAC-Logo-(black).png (19Кб, 1600x552)
Привет.
Посоветуйте более менее дешевый чип DAC для воспроизведения аудио. Еба качества мне не требуется. Главное чтобы более-менее чисто играл. Подключаться будет к stm32f407. В планах запустить девайс в серию, поэтому желательно чтобы его было легко и задешево купить.
Требования такие:
Количество каналов - 1/2. Одного в принципе будет достаточно.
Частота дискретизации будет 48кгц.
Разрядность - 16 бит.
Корпус - soic/tsop/ssop. Другие будет сложно паять.

Пока смотрю на эти:
https://www.cirrus.com/products/cs4334-35-38-39/ - хуй купишь. Но на али вроде дешевый. Зато просто как два пальца.
https://www.maximintegrated.com/en/products/analog/audio/MAX5556.html - пишут что дешево. Хуй где найдешь.
http://www.nxp.com/products/media-and-audio-processing/data-converters/audio-converters/audio-dacs/low-power-audio-dac-with-pll:UDA1334ATS - дешевый вроде. Есть на заказ в чиподипе и терраэлектронике.
Последний пока в фаворитах. Есть встроенный PLL.

И второй вопрос. Если запускать девайс в мелкую серию, откуда заказывать комплектуху чтобы по-минимуму брака и задешево, а не как в ЧиД? Али? Локальные поставщики? Из каких-нибудь маузеров?

Аноним 14/03/17 Втр 05:26:25  275205
Почему не на главной /ra/?
Аноним 14/03/17 Втр 07:49:37  275210
>>275204 (OP)
Из терры и электронщика покупай.
Аноним 14/03/17 Втр 09:12:14  275213
Безымянный.png (36Кб, 1601x618)
>>275204 (OP)
Есть вот такой сайт https://efind.ru
Дешевле всего твоя последняя микросхема до 100р. Первые две 150 - 250р.
Аноним 14/03/17 Втр 13:20:01  275227
>>275204 (OP)
У меня есть TDA1543, ей усилитель почти и не нужен, так как прёт с неё уже 5 Вольт. Работает в инверсию от заданного кода, то есть 0x0000 = 5 Вольт. Два канала, с stm32 будет нужная тебе скорость.
Аноним 14/03/17 Втр 15:40:28  275242
>>275227
Спасибо. Выглядит очень подходящей.
Аноним 14/03/17 Втр 18:33:51  275275
>>275242
На atmega328 (буфер большой для чтения SD удалось организовать) медленновато работает, если выше 44КГц и без 16МГц кварца. Синус хороший удалось сделать, музыку играет на ура.
Аноним 14/03/17 Втр 21:00:20  275303
>>275204 (OP)
Зачем тебе еще отдельный чип? У stm32d407 уже есть DAC
Аноним 14/03/17 Втр 21:08:09  275305
de07316a-54b8-4[...].jpg (68Кб, 600x600)
P1030092.JPG (247Кб, 921x691)
1385579281325.jpg (253Кб, 1024x768)
1385390001172.jpg (97Кб, 340x411)
>>275303
Для Звука.
Будет илитный ЦАП с трансформаторным выхлопом, дискретным трансформаторным РГ и буфером на лампе.
Аноним 14/03/17 Втр 21:09:25  275307
>>275305
> Еба качества мне не требуется
> илитный ЦАП
Ты же не ОП и просто тралишь?
Аноним 14/03/17 Втр 21:10:39  275308
>>275307
Не оп, конечно.
Аноним 14/03/17 Втр 21:11:53  275310
>>275308
А что за пиздец на третьем пике? Мне кажется, или там есть еще обычные лампы накаливания?
Аноним 14/03/17 Втр 21:13:11  275311
P1013766.JPG (68Кб, 640x480)
>>275310
Какой-то японский гармонизатор Звука циклопических размеров. Столь ухарский размер устройства придаёт звучанию особый масштаб и ширину восприятия.
Аноним 14/03/17 Втр 21:33:23  275313
>>275303
Я пробовал конвертить вавки которые мне нужны в 8бит/48кгц sox'ом и Audacity. Звук просто отвратительный.
А мне нужно приемлемое качество. Петухов ниже, кукарекующих про лампы не слушай. Они тупы и только троллируют
Аноним 14/03/17 Втр 21:40:32  275315
>>275313
>Я пробовал конвертить вавки которые мне нужны в 8бит/48кгц sox'ом и Audacity. Звук просто отвратительный.
Можно использовать Силу ЦОС и сделать вообще сигма-дельта ЦАП прямо в этом проце. Частоты 168 МГц и армовских умножителей должно хватить. Я всё хочу этим заняться, только руки никак не дойдут. А так, обычный аудио сигма-дельта ЦАП (а в аудио других практически не бывает) - это то же самое: блок DSP, который делает оверсемплинг с дитерингом, а потом подаёт это на однобитный ЦАП (тупо логический выход), потом RC-цепочка и вуаля, готовый аудио сигнал
>Петухов ниже, кукарекующих про лампы не слушай. Они тупы и только троллируют
Оу к'мон. Я сам обожаю прикалываться над всеё этой аудиофильской шизой
Аноним # OP  14/03/17 Втр 21:43:09  275317
тест галки опа.

Вообще DAC в мое проце умеет в 12бит. Но чот я никак не раздуплю как мне нужно записать семплы unsigned wav 16 bit в массив чтобы DAC его проиграл.
И ключевой вопрос - будет ли от этого сильно лучше звук.

>>275315
Мне все это не надо. У меня есть девайс который нужно собрать, а не ебаться с костылями. Очевидно, внешний DAC будет проще и я сэкономлю кучу времени пусть даже ценой отдельной микросхемы и места на плате.
Аноним # OP  14/03/17 Втр 21:44:13  275318
>>275315
Я слишком туп для этой темы и не стоит оно того. Вряд ли получится лучше чем с внешним DAC.
Аноним 14/03/17 Втр 21:47:56  275319
>>275317
>Вообще DAC в мое проце умеет в 12бит. Но чот я никак не раздуплю как мне нужно записать семплы unsigned wav 16 bit в массив чтобы DAC его проиграл.
Сдвигаешь 16-битные отсчеты вправо. Либо пишешь в регистр ЦАПа 16 битные отсчеты как есть, а он использует только старшую часть. Я уже не помню, как у него там, left или right-justified. Ну еще нужно посмотреть, знаковый или беззнаковый у него тип
>>275317
>Очевидно, внешний DAC будет проще и я сэкономлю кучу времени пусть даже ценой отдельной микросхемы и места на плате.
Блин, жаль я всё никак не займусь, так бы выложил куда-нибудь на гитхаб

А что за устройство хоть?
Аноним 14/03/17 Втр 21:52:49  275320
>>275319
14.3.3 DAC data format
Depending on the selected configuration mode, the data have to be written into the specified
register as described below:
• Single DAC channelx, there are three possibilities:
– 8-bit right alignment: the software has to load data into the DAC_DHR8Rx [7:0]
bits (stored into the DHRx[11:4] bits)
– 12-bit left alignment: the software has to load data into the DAC_DHR12Lx [15:4]
bits (stored into the DHRx[11:0] bits)
– 12-bit right alignment: the software has to load data into the DAC_DHR12Rx [11:0]
bits (stored into the DHRx[11:0] bits)

Да, он и старшую и младшую часть может брать из регистра. Но понимает только беззнаковые
Аноним # OP  14/03/17 Втр 22:01:12  275321
>>275319
Это будет метроном. С выбором семплов и кучей других крутых фич.

WAV-ки обычно в знаковом типе. Я думаю превратить в беззнаковый несложно.

Left/Right justified это с какой стороны старший/младший биты?

>>275320
То есть я могу записать тупо 16 бит left-justified в DAC_DHR12Lx и он сам возьмет 12 левых бит и преобразует?

Ну и я пишу в DAC через DMA.


Аноним 14/03/17 Втр 22:09:45  275322
Dac.PNG (16Кб, 544x179)
>>275321
>Это будет метроном. С выбором семплов и кучей других крутых фич.
Не знаю, нужен ли на щелчок метронома звук "высокой верности", смотри сам
>Я думаю превратить в беззнаковый несложно.
да, прибавляешь +32768
>То есть я могу записать тупо 16 бит left-justified в DAC_DHR12Lx и он сам возьмет 12 левых бит и преобразует?
Да, вот картиночку даже нарисовали в reference manual'е. Ну только до этого ко всему массиву 32768 прибавить не забудь

Только учти, там выход ЦАПа от 0 до +3,3 В, то есть как правило, нужен разделительный конденсатор, хотя в других ЦАПах то же самое обычно. И выходной ток довольно малый, напрямую к низкоомной нагрузке не подключишь
Аноним # OP  14/03/17 Втр 22:20:15  275324
>>275322
Там не только щелчок. Будут разные семплы.
Но на 8 битах даже семпл щелчка звучит отвратно.

Прибавление +32768 я думаю сделать заранее при подготовке сэмплов. Не думаю, что стоит этим заниматься на проце.

> Только учти, там выход ЦАПа от 0 до +3,3 В, то есть как правило, нужен разделительный конденсатор, хотя в других ЦАПах то же самое обычно. И выходной ток довольно малый, напрямую к низкоомной нагрузке не подключишь

Это уже готово. Да, само собой. У меня нечто вроде этого - http://nw2s.net/dac-output-circuit/

Спасибо дружище. Ты мне очень помог.
Аноним 14/03/17 Втр 22:21:35  275325
>>275324
Не за что. Ты хоть опишись что как получилось потом
Аноним 14/03/17 Втр 22:25:37  275326
>>275325
Да я отпишусь и код выложу куда-нибудь.
Еще раз спасибо, в следующий раз буду внимательнее читать мануалы.
Аноним # OP  15/03/17 Срд 03:36:52  275349
ground.jpg (126Кб, 960x720)
Ну-с.
Поебался-поебался и таки настроил. Читает 16 битную вавку с одним каналом.
Нарисовалась новая проблема. Параллельно с воспроизведением я слышу какой то мутный фон, частотой примерно 100гц.
Причем слышу я его только когда идет преобразование.
Запускаю и останавливаю преобразование я тупо включая и выключая таймер.
Думал проблема в вавке - но нет. Если я пытаюсь преобразовывать нули, то слышу только фон.
К плате у меня еще навешаны кнопки и дисплей. Но они не тактируются.
Вообщем, не понимаю я откуда фон этот берется. Причем он явно не в аналоговой части. Подключаю осцилл напрямую к выходу DAC и вижу его блять.
Мразотный фон пикрелейтед


Аноним 15/03/17 Срд 07:34:40  275361
>>275349
Похоже на вспышки возбуда. Растяни одну, посмотри.
Аноним 15/03/17 Срд 08:03:53  275362
>>275317
Как сделать из 16бит 12бит, всё просто. Надо сместить 16 бит вправо.
Аноним 15/03/17 Срд 08:05:17  275363
>>275349
Лол. Сам догадаешься или помочь?
Аноним 15/03/17 Срд 10:42:23  275382
>>275363
Расскажи мне
не-ОП
Аноним # OP  15/03/17 Срд 10:58:01  275384
>>275362
Ты не в тему. Почитай выше, посмотри картинки.

>>275363
Расскажи.
Аноним 15/03/17 Срд 11:41:00  275385
>>275349
Проиграно.
Аноним 15/03/17 Срд 13:14:01  275390
>>275382
>>275384
Когда я запускал свой плеер, то столкнулся с тем, что на время чтения с SD карты необходимо ставить среднее положение на ШИМ/ЦАП, иначе будут слышны щелчки. Ведь на время чтения процессор полностью занят им, иначе страницу нормально не прочесть. Но потом я начал запускать ШИМ одновременно с чтением байт по SPI и щелчки стали меньше, а потом и пропали совсем.
Аноним 15/03/17 Срд 14:45:14  275414
>>275390
Попробовал отключить чтение флешки и воспроизводить тупо нули. Фон пропал, по крайней мере на осцилле я его не вижу.

Скажи пожалуйста что такое среднее положение, ты имеешь ввиду то значение при котором потом получится тупо ноль на выходе(ну после разделительного конденсатора)?

1. У меня ЦАП работает по DMA. В этом случае, как я понимаю, чтение данных из памяти цапом идет мимо проца.
2. DMA имеет два флага - первый выставляется когда половина массива отправлена в DAC, второй - когда вторая часть массива отправлена в DAC.
Собственно, в основном цикле программы я проверяю эти флаги. Если первый флаг выставлен, я заполняю первую половину массива, потом сбрасываю флаг, если второй флаг выставлен, я заполняю вторую часть массива и его сбрасываю. Получается у меня некий кольцевой буфер и воспроизведение происходит одновременно с заполнением буфера.

Аноним 15/03/17 Срд 15:12:40  275416
>>275414
>Собственно, в основном цикле программы я проверяю эти флаги
А основной цикл программы еще чем-то заниматся? Если да, то что будет, если флаги поднимутся, а программа не успеет их опросить и подготовить новую порцию данных?
Вообще, я в таких случаях делаю double buffer dma (ставлю бит DBM=1), указываю два адреса для первого и второго буфера и заполняю буфера по прерываниям, а не по опросу флага. Вообще, для таких многозадачных приложений очень хорошо подходит freertos. Однажды вкатившись туда, я забыл основной цикл типа main(){ while(1){...}} как страшный сон
Аноним 15/03/17 Срд 15:55:03  275421
>>275416
Основной цикл больше ничем не занимается, тупо проверкой флагов таймеров. Ну то есть ничего тяжелого.
Самая и единственная "тяжелая" процедура это чтение с флешки.
Двойной буфер, да, я видел о нем в даташите и он какрастыке предназначен для этого. Но пока не осилил, потом попробую его использовать.

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



Аноним 15/03/17 Срд 15:57:44  275422
Последний апдейт:

Я читал с флешки 512 байт. Видимо это слишком много. Если уменьшить в два раза количество читаемых байт за одну операцию чтения то фон пропадает.
Видимо поэтому у меня не было с ним проблем когда я использовал 8 битовый режим DAC.
Читал в два раза меньше данных за один присест.
Кароч буду думать что делать дальше,
Аноним 15/03/17 Срд 16:08:01  275423
>>275421
>Насколько я знаю не рекомендуется запускать тяжелые процедуры в функциях обработчиков прерываний.
Верно. Поясню поподробнее. Я использую freertos - маленькая многопоточная операционка реального времени. Там есть такой механизм межпоточной синхронизации как очереди. То есть они похожи на fifo буферы между потоками. Так вот, обработчик прерывания от DMA я пишу максимально короткий: просто пихаю в очередь адрес готового буфера и выхожу из прерывания. У меня есть один поток, который в цикле while ждет новых элементов из этой очереди. То есть, пока новых элементов нет, он спит, и ядро занимается другими потоками. Как только появляется новое сообщение этому потоку, он окрывает адрес, куда нужно записать новую порцию данных, пишет, и снова спит, ожидая новых сообщений из очереди. Так что, обработчик прерываний минимальный- нужен только для того, чтобы уведомить ядро freertos, что появилось новое событие, а оно уже потом переключится на выполнение того потока, который обработает полученное сообщение. Это ещё называется отложенная обработка прерываний
Аноним 15/03/17 Срд 16:25:20  275428
Вот, советую всем читать на досуге. Очень годный цикл статей про FreeRTOS на русском
http://easyelectronics.ru/img/ARM_kurs/FreeRTOS/Kurniz.pdf
Аноним 15/03/17 Срд 17:18:17  275440
>>275423
>>275428

Спасибо. Я читал про фриртос. На easyelectronics тоже есть хорошие статьи.

Бля, как оказалось даже если читать понемногу все равно есть фон. В прошлый раз я видимо либо криво прошил либо reset забыл нажать.

Так же пробовал играть с бадрейтом SPI по которому работает флешка. Все без изменений.

Мне начинает казаться что проблема таки не в скорости чтения.
Ну и я не очень понимаю почему в данный момент фриртос должен решить мою проблему.

Аноним 15/03/17 Срд 17:35:50  275444
>>275440
>Ну и я не очень понимаю почему в данный момент фриртос должен решить мою проблему.
Просто разговор пошёл про распределение процессорного времени между задачами, вот я и про него вспомнил. Не говорю, что он конкретно решит твою проблему, так как она неясна

Сдается мне, что у тебя либо ДМА выходит за пределы буфера, либо проц не успевает подгрузить нужную процию данных. Попробуй всё таки поставить прерывания half и full transfer и написать для них обработчики, чтобы прямо в них копировать данные в буфер ДМА. А основной цикл пусть потихоньку читает данные с флешки. У тебя сколько период фона? Он равен количеству сэмплов в кольцевом буфере , деленному на 48000 кГц? Если я правильно понял, то на осцилле у тебя период чуть болье 5 мс. То есть примерно 256 семплов / 48000кГц. Если ты увеличишь свой буфер, частота фона уменьшится? Если да, то у тебя явно что-то где-то не успевает подгрузиться
Аноним # OP  15/03/17 Срд 17:57:45  275451
>>275444

> У тебя сколько период фона?
Сложно сказать. Там низкая частота у меня не получается осцилл синхронизировать. Поэтому осцилл врет с частотой и сигнал катается по экрану.

Сейчас я шлю в DMA тупо нули. Я читаю с флешки но эти данные перетираю нулями.

Надо мне например прочитать 512/256 байт, я сколько-то читаю с флехи( например 64), и перезатираю нулями и сразу буфер забиваю нулями.
Я меняю количество читаемых байт. И заметил что чем меньше я читаю байт тем больше становится период фона.

Настройки DMA: http://pastebin.com/3WRLiUbs


Аноним 15/03/17 Срд 18:39:26  275459
>>275414
У тебя 16 бит допустим. У меня есть решения с 8 и 16 битами. Так вот, после ЦАПа стоит разделяющий конденсатор и после него у тебя только амплитуда сигнала, без постоянной составляющей. Для того, чтобы в момент, когда ты начнёшь снова воспроизводить, он у тебя не зарядился и не "счёлкнул", надо его держать в "среднем положении", то есть ровно на половине амплитуды твоего сигнала (127 или 32767 значение)
Аноним 15/03/17 Срд 18:53:09  275462
>>275459
Понял. Очень важная информация. Спасибо.
Аноним 15/03/17 Срд 20:25:49  275472
>>275451
Ты ставишь fifo disable, а потом конфигурируешь fifo threshold. Зачем?
Аноним 16/03/17 Чтв 12:59:42  275532
>>275472
Да я как-то скопировал же настройку, видимо забыл удалить.
А что, она будет применяться в случае если fifo выключено?
Аноним 16/03/17 Чтв 13:27:14  275535
>>275532
Нет, там же написано, что эти биты не влияют, когда у тебя direct доступ. Просто хотел убедиться, что ты понимаешь, что делаешь. А где настройка генерации флага событий half и full transfer?
Аноним 16/03/17 Чтв 13:34:18  275537
>>275535

Настройка флагов вроде как не нужна. Они по дефолту работают.

Код обработки флагов: http://pastebin.com/pqzfpTgy
Функция dac_loop выполняется в основном цикле.

Аноним 16/03/17 Чтв 14:20:43  275543
>>275537
Скорее всего, фунция fsm_read_file() не успевает заполнить DMA буфер до того, как ЦАП успевает его вычитать. Попробуй прочитать показания системного таймера (SysTick) до и после вызова этой функции, чтобы узнать количество тактов, за которое она выполняется. Потом, посчитай, сколько это будет в миллисекундах, используя значения своей частоты, прескейлера таймера и т.д. Затем сравни это со значением 256/48000, то есть с 5,33 мс. Если обращение к флешке и чтение из неё у тебя занимает больше пяти миллисекунд, то проблема в этом.
В интернете полно статей, как работать с этим системным таймером, например
http://easyelectronics.ru/arm-uchebnyj-kurs-systick-sistemnyj-tajmer.html
Только тебе не нужно настраивать прерывания, а просто включить, записать туда какое-то большое значение, затем после функии чтения флешки, вычитать, что насчитал таймер и отнять от записанного туда числа, ну разберешься короче
Аноним 16/03/17 Чтв 14:26:38  275544
И еще, в основном цикле есть что-то, кроме dac_loop()?
Аноним 16/03/17 Чтв 14:54:41  275545
>>275543
Я не наполняю буфер полностью с флешки. Читаю например 16 байт с флешки а буфер забиваю нулями. В результате все равно фон остается, только период становится больше.
У меня флешка даже 16 байт чтоли не успевает прочитать, когда 512 байт воспроизводятся DAC'ом?

fsm_read_file(): http://pastebin.com/MGLVrw5f

Видишь, я же читаю совсем немного. Воспроизвожу гораздо больше чем читаю. Да еще и прескалер для SPI у флешки у меня SPI_BaudRatePrescaler_8.

Спасибо за совет. Я так и сделаю. Но вообще это крайне странно.

Аноним 16/03/17 Чтв 15:04:42  275547
>>275545
>У меня флешка даже 16 байт чтоли не успевает прочитать, когда 512 байт воспроизводятся DAC'ом?
Бывает еще латентность доступа, когда вне зависимости от того, солько тебе нужно прочитать байт, нужно некоторое время, пока они начнут читаться

Хотя, если ты забиваешь нулями буфер, то проблема скорее всего в другом. Возможно где-то рядом у тебя на плате расположены сигналы ЦАПа и SPI, и чтение SPI вызывает помехи на ЦАП. Еще у ЦАПа есть выходной буфер

DAC output buffer enable
The DAC integrates two output buffers that can be used to reduce the output impedance,
and to drive external loads directly without having to add an external operational amplifier.
Each DAC channel output buffer can be enabled and disabled using the corresponding
BOFFx bit in the DAC_CR register.


Ты его включаешь?
Аноним 16/03/17 Чтв 15:05:45  275548
Короче смотрите.
Я не думаю что проблема в том что у меня не успевает наполняться массив.

1. DMA настроен в кольцевом режиме (или как оно там называется). Кароче когда он массив прочитал, он начинает сначала.
2. В массиве у меня нули. И воспроизведение вообще никак не зависит от вызова функции чтения с флешки.

3. Чем больше читается байт с флешки тем больше частота фона.

4. Я предполагаю что какая-то хуйня происходит с питанием может быть или чото такое через определенное количество полученных/переданных байт с/на флешку.
Аноним 16/03/17 Чтв 15:10:44  275549
>>275547

> Хотя, если ты забиваешь нулями буфер, то проблема скорее всего в другом. Возможно где-то рядом у тебя на плате расположены сигналы ЦАПа и SPI, и чтение SPI вызывает помехи на ЦАП.

Ну вообще на плате выход DAC рядом с пинами SPI к которому подключается флешка.

> Ты его включаешь?

Не включал. Я ж напрямую к осциллу подключаю. Там нагрузки то считай и нету. Если я его включу, это устранит помехи от SPI? Думаю нет.

Как вариант, можно попробовать флешку перенести на другой SPI. Вероятно, это может помочь.
Аноним 16/03/17 Чтв 15:14:34  275550
>>275549
>Не включал. Я ж напрямую к осциллу подключаю. Там нагрузки то считай и нету. Если я его включу, это устранит помехи от SPI? Думаю нет
Может уменьшить, потому что помеха будет шунитрована меньшим выходным сопротивлением ЦАПа, в любом случае, поднять один битик в отладчике не сильно сложно.
>Как вариант, можно попробовать флешку перенести на другой SPI. Вероятно, это может помочь.
Попробуй. Можешь также выход ЦАПа переключить на другой пин процессора

Кстати, вот у чувака точно такая же проблема, только с пердуиной
http://forum.arduino.cc/index.php?topic=186522.0
Аноним 16/03/17 Чтв 15:33:14  275551
> Можешь также выход ЦАПа переключить на другой пин процессора

Это как? Маппинг же вроде жесткий.
Аноним 16/03/17 Чтв 15:37:14  275552
>>275551
Точно. Это на АЦП там аналоговый мультиплексор стоит на входе. Но тем не менее, тут два ЦАПа, можешь попробовать второй. Постарайся найти вариант, где сигнал ЦАПа будет как можно дальне от синалов SPI
Аноним 16/03/17 Чтв 15:44:50  275553
14895382128800.jpg (198Кб, 960x720)
Вообще, у меня созрело такое объяснение
1. Дело не в буферах и ДМА, так как при воспроизведении нулей шум не пропадает
2. Это помеха от SPI
3. Чем больше ты читаешь байт, тем больше длительность импульса SPI read. Поэтому на слух ты воспринимаешь это как "понижение частоты фона", но технически, частота остаётся та же, просто спектр фона смещается в область более низких частот при более длинном импульсе
Аноним 16/03/17 Чтв 17:41:44  275556
>>275553
Фото махарйки и разводки в студию
Аноним 16/03/17 Чтв 17:52:11  275558
>>275556

Пока еще ничего нет. Только на борде дискавери. Как все будет я тут создам отдельный тред.
Для начала нужно определиться сколько будет кнопок и какой функционал будет в первой релизной прошивке.

Пока я подключил и настроил дисплей, сделал для него хуевенькие шрифты и запилил кнопки. Ну вот и DAC вопроизводит клик с нужным темпом.
Аноним 16/03/17 Чтв 18:05:28  275561
>>275558
А какая у тебя Дискавери? F4? F429?
Аноним 16/03/17 Чтв 18:13:45  275563
>>275561
stm32f407vgt6 чип на ней. Вроде это stm32f4discovery
Аноним 16/03/17 Чтв 18:38:51  275565
>>275563
Там тогда стоит аудиокодек с выходом на наушники, у меня такая же
Аноним 16/03/17 Чтв 18:47:14  275566
>>275565
Надо же было прочитать тред перед тем как отвечать?
Мне не нужен кодек который есть на плате. Мне от него ни тепло ни холодно.
Аноним 16/03/17 Чтв 19:48:09  275574
>>275566
> Надо же было прочитать тред перед тем как отвечать?
Я тебе больше скажу, я тут половину треда написал. Ты сначала просил бюджетный аудиокодек, cs43l22 не бюджетный?
Аноним 17/03/17 Птн 01:53:15  275608
>>275574
Вообще нет.
Он дороже чем те что я нашел и те что рекомендовали здесь.

Ну и как бы если получится нормально встроенный 12 битный DAC завести без фона, то внешний DAC будет не нужен.
Аноним 17/03/17 Птн 12:14:32  275645
>>275608
>если получится нормально встроенный 12 битный DAC завести без фона
Как успехи кстати?
В этом треде http://forum.arduino.cc/index.php?topic=186522.0 чуваку порекомендовали сделать дифференциальный выход. Ты можешь тоже так попробовать, имея 2 ЦАПа
Аноним 17/03/17 Птн 12:33:37  275648
>>275645

> чуваку порекомендовали сделать дифференциальный выход

Я смотрел эту ссылку. Это выглядит как какой-то костыль.

Я заметил что выход DAC1 (PA4) это тот же самый пин что и SPI1_NSS. Подключил флешку к SPI2. Проблема осталась.

Следующие шаги - осциллом посмотреть питание флешки.
Заменить флешку на другую и шильд тоже. Может шильд кривой какой. Потому что я даже как-то ума не приложу в чем может быть проблема.
Аноним 19/03/17 Вск 14:49:49  275880
Здравствуй, дорогой дневничок!

Вчера купил другую борду STM32F4Discovery. Как оказалось, они выпустили новую версию этой борды. Я очень сильно надеялся, что если я поменяю борду, шильд и флешку то что-нибудь изменится. Чуда не случилось.

Для начала, когда я подключил шильд с флешкой к новой борде, то флешка отказалась работать. Это был сюрприз, почему она не работала я так и не понял. В итоге подключил шильд с микросд флешкой. Она даже не стала монтироваться. Это произошло, потому что у меня код diskio.c/disk_initialize() был заточен под старую версию v1.00 флешек.
Пришлось лезть на сайт Чена, качать новую fatfs, костылить опять этот модуль diskio.c чтобы можно было читать флешки новых версий. У него, кстати, там есть семплы/примеры для stm32f1xx для SPI.
Вообщем, после длительной ебли с флешками, мне все таки удалось начать их читать, правда опять же не все флешки, что у меня есть, читаются. Ну да похуй.

В итоге, новая борда, другая флешка, другой шильд. Залил прошивку с DAC. Нихуя не поменялось. Как был фон так и остался.
Ебаться я с переносом туда сюда SPI'ев не буду. Придется использовать внешние DAC.
Аноним 21/03/17 Втр 00:48:54  276090
659.jpg (122Кб, 395x330)
>>275880
У тебя такой шильд?
Аноним 21/03/17 Втр 11:06:15  276137
>>276090
Не, у меня простой http://img3.banggood.com/thumb/view/upload/2012/lidanpo/SKU122168a.JPG
Аноним 21/03/17 Втр 23:18:34  276246
>>276137
Я к тому что на проце есть специальный контролоер sd карты, который позволяет подключать её не через spi, а через стандартный 4битный интерфейс
http://blablacode.ru/mikrokontrollery/452
Аноним 22/03/17 Срд 00:33:01  276252
>>276246
Да шильд с SDIO протравить не проблема. Я просто хочу наконец через SPI результат получить
Аноним # OP  19/04/17 Срд 12:35:29  280985
Это снова я.

Мне пришла на ум следующая идея.
А что если не ебаться с внешним DAC и SD карточкой и использовать flash-память по SPI?

Я осознал что мне по сути не нужно много памяти. 32 мегабайт будет вполне достаточно.
Предполагаю что обычный чип памяти не будет создавать таких проблем как sd карточка.

В связи с этим вопрос. Может быть посоветуйте чип flash памяти? Чтобы поддерживал SPI и чтобы 32 мегабайта и чтобы не BGA?
Аноним 19/04/17 Срд 12:42:55  280986
>>280985
Сомнительная идея, на мой взгляд. SD карточка работает также по spi, вряд ли просто другая флешка, пусть не SD, но использующая такой же spi будет работать по-другому
Аноним 20/04/17 Чтв 13:07:02  281121
>>280986
>>280985

Да я вот тоже думаю. Но мне тут пришла одна идея.
Вообще на шильде стоит линейный стабилизатор 5V -> 3V для того чтобы питать флешку. Может быть попробовать без него?
может он хуйню какую-нибудь наводит?
Аноним 20/04/17 Чтв 14:22:14  281133
>>281121
Попробуй конечно. Но типа линейный стабилизатор и служит для того, чтобы фильтровать питание, а не наводить хуйню. Тем более, он линейный, а значит высокочастотных помех не может наводить. Может, он неправильно включен, может конденсатор стоит хреновый. Если смотреть на питание, я бы для провекри лучше кондёр посоветовал перепаять на нём.
Взглянув сюда >>276137 можно увидеть, что кондёры там стоят совсем мелкие. В даташите на стабилизатор ams1117 пишут:

> Stability
> The circuit design used in the AMS1117 series requires the use of
> an output capacitor as part of the device frequency compensation.
> The addition of 22µF solid tantalum on the output will ensure
> stability for all operating conditions.

На шилде явно не танталовый 22 мкФ кондёр стоит, возможно дело в нём. Попробуй поставить хороший конденсатор на питание и посмотри, изменится ли уровень помех на линии питания
По идее, если ты попытаешься подключить питание, минуя стабилизатор, то уровень помех должен только возрасти
Аноним 21/04/17 Птн 17:04:41  281214
>>281133
>он линейный, а значит высокочастотных помех не может наводить
Может, но конечно не в том количестве что высокочастотный DC-преобразователь.
Аноним # OP  23/04/17 Вск 04:48:42  281353
>>281133
Спасибо за развернутый ответ.

Однако, как я посчитал, использование внешней памяти добавит в себестоимости устройства.

В итоге я нашел компромиссный вариант - не использовать внешнюю память вообще.

Внутреннего флеша у stm32f407 целый один мегабайт. Видимо мне его будет вполне достаточно.
Один "сэмпл" занимает около 60 килобайт. Сейчас это два файла - звук сильной доли и звук слабой доли.
Даже топовые метрономы типа BOSS DB-90 имеют всего 4 вида клика на борту.
Даже если я сделаю 10 встроенных кликов без возможности выбирать этого уже будет достаточно. Меньше ебли, решится проблема с чтением с флешки, решится проблема с геморроем и разводкой внешней памяти.
Надо будет только слинковать прошивку с файлами сэмплов и все будет тип-топ.
Всем спасибо.

Если кому-то интересно что сейчас реализовано:
1. Клавиатура - 8 клавиш. Есть функция длинного клика - типа когда держишь кнопку то вызывается одна функция, а на короткое нажатие - другая. Разумеется дребезг контактов тоже обрабатывается. И реализован мультиклик - держишь кнопку и много раз вызывается одна и таже функция.
2. Дисплей прикручен от Nokia 5110. Показывает темп, елитель 4-ой доли на 2 и на 4. То есть 4е, 8е и 16е играют. Надо допилить показывание размера такта. Шрифт пока не запилен.
3. Расчет когда и какую ноту играть. Будет акцентироваться сильная доля одним звуком. каждая другая 4я доля - другим. 8е и 16е будут звучать тем же сэмплом что и 4я только тише. Будет настраиваемая громкость.

Триоли пока не запилены. Вместо сэмплов моргаю светодиодами.
Вообще у меня есть целый список фич. Но шарить не буду пока. Как будет готово что-то выложу видос и прошивку.










Аноним # OP  23/04/17 Вск 04:50:27  281354
>>281353

> Даже если я сделаю 10 встроенных кликов без возможности выбирать этого уже будет достаточно.

Даже если я сделаю 10 встроенных кликов без возможности ЗАГРУЖАТЬ СВОИ, этого уже будет достаточно.

Быстрофикс
Аноним 23/04/17 Вск 08:51:10  281361
>>281353
зачем вообще там spi цап и такой мощный мк?
r2r цап + буфер на транзисторе и кликай наздоровье
В метрономах 10 летней давности и близко даже stm32f407 нету, при этом и кликают приятно и функции все есть.
Аноним 23/04/17 Вск 09:11:50  281362
>>281361
Да логику вообще вместо этих молодежных МК на магнитных усилителях лучше делать.
Надежней к тому же.
Аноним 23/04/17 Вск 09:52:11  281369
>>281362
Не лезь в крайности.
Аноним 23/04/17 Вск 09:58:02  281371
>>281369
Так скучно же.
>10КГц - -145 на 7 ггц, перестраиваемый.... Не, световодная оптика непотянет. Если бы еще неперестраиваемый, на произвольно выбранные частоты внутри диапазона (субгармоники газовых спектральных линий), что то бы могло получиться. А так с оптическим гетеродинированием возиться.... Да и размер этой шутки будет с большой оптический стол (полтора на два с половиной метра). Работать будет только в лабораторных условиях. Цена.... ну где-то начиная от 250 килобаксов и до полутора лимонов. И срока года полтора. Помещение, питалово (100 Квт), охлаждение, вакуум, криогеника- ваши проблемы. Сейсмику надо обговорить отдельно. Срок жизни 1000 часов (трубы сядут).
>Интересно, если использовать сферу ЖИГ для магнитной перестройки криогенного сверхпроводящего обьемного резонатора.... сказать трудно, надо эксперимент делать.
Аноним 23/04/17 Вск 12:08:02  281393
>>281361
Дык я и говорю что внешнего ЦАПа не будет. Будет встроенный + сэмплы на встроенной флешке.

А в stm32f407 и есть все что мне нужно. Может быть проц и взять избыточный, зато я умею с ним работать и памяти достаточно.

В каких, например, метрономах? Я вот сомневаюсь что в том же самом боссе, который я указал выше, стоит проц сильно слабее чем stm32f407.

Очевидно что я не буду делать тупой метр, аналог которого стоит в магазине 700 рублей.

Идея сделать умную хуйню, с памятью для паттернов и темп-треков и с управлением по миди. Ну вот как раз нечто вроде BOSS DB-90.
Ну плюсом еще я придумал несколько фич.


Аноним 24/04/17 Пнд 08:10:01  281521
>>281393
Был метроном по виду как Yamaha QT-1, только он еще мог генерировать сигналы для настройки гитары.
Видел такой лет 10-15 назад.
Очевидно, что ничего близко похожего на f407 там нет.
Да к тому же и аккум f407 выжрет только в путь.
Аноним 24/04/17 Пнд 13:44:24  281538
>>281521
>Yamaha QT-1

Дешевая игрушка с самым базовым функционалом.

Сходи сравни эту игрушку с вышеуказанным BOSS DB-90 или с TAMA RW200 ну или с той же ямахой clickstation.
Аноним 11/05/17 Чтв 11:32:55  283204
>>281353
Кстати, мне тут пришла недавно в голову идея - использовать какой-нибуть чип для компов, который поддерживает high definition audio. Например, как у меня на материнке Realtek ALC887.
Продаются они в магазинах запчастей для компов/ноутбуков за копейки. Например здесь https://www.partsdirect.ru/goods/345903/
За 144 рубля 8 каналов ЦАП и 4 АЦП, что очень неплохо
Есть датащит http://audiophilesoft.ru/articles/realtek_audio_setup/ALC887.pdf
Единственная сложность - нужно как-то реализовать протокол intel hd audio на микроконтроллере http://www.intel.com/content/www/us/en/standards/high-definition-audio-specification.html
Аноним 28/05/17 Вск 00:04:25  284939
>>283204
> intel hd audio
Можно даже не его, а ac'97. У stm32f4 есть его аппаратная поддержка, называется sai
Аноним 15/06/17 Чтв 03:15:17  286509
>>275313
с дитерингом попробуй
Аноним 17/06/17 Суб 16:10:07  286751
>>275204 (OP)
>Посоветуйте более менее дешевый чип DAC для воспроизведения аудио. Еба качества мне не требуется. Главное чтобы более-менее чисто играл.


Ты хоть скажи, что за устройство, чтобы я вдруг случайно не купил.
Аноним 17/06/17 Суб 19:38:03  286769
>>286751
Расслабь свои булки.
Если ты не музыкант тебе оно нахуй не нужно.
Аноним 16/10/17 Пнд 12:24:24  298780
>>275204 (OP)

Возьми AD5541, он божественно звучит.
Аноним 19/10/17 Чтв 00:05:59  299104
HTB1zP4HRFXXXXc[...].jpg (116Кб, 1000x1000)
>>275204 (OP)
Покупай ZHILAI H1
aliexpress.com/item/Music-hall-ZHILAI-H1-HiFi-Mini-Computer-External-Sound-Card-PCM2704-Digital-PC-USB-DAC-Free/32558419589.html

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 92 | 9 | 18
Назад Вверх Каталог Обновить

Топ тредов
Избранное