G1KuL1N

Wav-Плеер На Микроконтроллере Attiny85

198 сообщений в этой теме

Panda_y2k    6

Че то тема скатилась к программаторам. Тут вот такой вопрос возник, написал я стало быть свой wave плейер, на CVAVR для меги 128 да с экраном от nokia 1100 и все бы хорошо и работает даже, да вот проблемка одна нарисовалась. Шибко тормозной фат (или работа с sd картами) в CVAVR 2.05.5. Во время прослушивания на малой громкости слышно гудение (на большой он маскируется и не слышен), на малых битрейтах характерные щелчки в такт считыванию пакетов. буферизация одинарная, но двойная, что то не помогла. Добавил немного отладочного кода и получил время считывания блока в 1 кб от 5,88мс до 7,6 на более высоких битрейтах (связано с тем, что во время считывания вывод все равно продолжается, а на высоких битрейтах загруженность больше), а время вывода того же блока на скорости 44100 гц составляет всего 11,766 мс. Итого скорость чтения с карты составили 151кб/с, карта поддерживает скорость однозначно больше. Кто нибудь с этим сталкивался? У Чана работает и на более высоких скоростях и с меньшим буфером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2yf24    0

И чё тема заглохла? А я собрал. И звук не плохой. Не Hi Fi, но, на порядок выше звуковых открыток. И для разных звонков, оповещателей, сигнализаций и игрушек отличное применение. Да и музыка, не для студий конечно, но на даче послушать не хуже FM радио.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
fuckir    6

Поздравляю вас 2yf24. ) . Есои можно пару слов о настройке таймера, фильтре (нижних или верхних частот), выходном каскаде (транзисторним если таковой имеется). Всё остальное - ромашки которых ctrl_C ... ctrl_V в инете много

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2yf24    0

Этот плеер я собираюсь использовать в автомобильной сигнализации. Четвёртый вариант прошивки Чена: моно с двумя противофазными выходами. Усилитель пока не делал, но скорее всего буду использовать стандартный мостовой из автосирены. При испытании подключал напрямую к контроллеру 8 - омный динамик с большим диффузором, что-то типа 4ГД-35(маркировка затёрта). Звук мне показался не плохим, поэтому фильтры использовать не буду. Ещё заметил что при удалении - добавлении отдельных файлов на карточку могут появляться призвуки импульсного характера при воспроизведении, так что список воспроизведения лучше формировать отдельно и записывать на карточку целиком после форматирования. Так же файлы лучше обзывать однообразно и желательно цифрами, иначе проигрыватель может их просто не видеть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
fuckir    6

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

просто фильтр не только задает частоту среза, но и ограничивает ток

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2yf24    0

В первоисточнике http://elm-chan.org/works/sd8p/report.html утверждается "Динамики подключаются непосредственно к выводам ШИМ микроконтроллера. Не смотря на это выходной ток никогда не превысит максимально допустимые значения, при напряжении питания 3В". После достаточно долгой работы плеера микросхема ощутимо не нагревалась. Тем более в моём проэкте чип будет нагружен на усилитель с большим сопротивлением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
fuckir    6

C первоисточником знаком и в далеком прошлом пользовался библиотеками Чена, но сейчас остановился на Джасио.

Просто про усилитель речь у вас не шла ".....При испытании подключал напрямую к контроллеру 8 - омный динамик с большим диффузором....". Работа не в режиме еще не шла на пользу МК.

Спасибо за диалог)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor_OS    0

Возникла потребность собрать музыкальный модуль. Выбор пал на вав плеер. Схема заманила своей простотой. А за качество звука, терзают сомнения.

Здесь нашел аналогичный плеер http://elektrozona.com/avto_el/melodia_dveri/melodia_dveri.html

По плате видно много деталей. Думаю обработка для звука.

Кто собирал плеер и в чистом виде и с фильтрами, что сказать можете о качестве звука? И какие фильтры применяли для улучшения звука?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
olegtur77    46

собирал плеер на attiny861, качество звука вполне нормальное, не мр3 конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BAPBAP    0

Добрый день, подскажите почему МК нужно питать при 3,3 В ведь в даташите написано что на него можно смело подавать 5В. почему же везде в схемах на этот плеер указывают что нужно 3,3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
u33    35

На МК можно 5В, а на карту SD, у которой рабочее напряжение 2,7-3,6В - нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BAPBAP    0

Ещё такой вопрос, конденсаторы что обязательно использовать танталовые?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

Здравствуйте,подскажите пожалуйста. Собрал моно схему,прошил Attiny85,фузы ставить не стал,т.к. они и так стояли какие и нужны.Подключил - не работает :( , главное без флешки подлючаю - тишина, втыкаю флешку - шум(гул) появляется,шумит постоянно,иногда бывает при подключении прерывистый шум(гул). Что может быть не так, подскажите пожалуйста. Распиновку MicroSD флешки проверял много раз,подключена правильно.Делал по схемам на рисунках,только PB0 не подключал,т.к. кнопка не нужна,может из-за этого(хотя сомневаюсь)?

sd-pin-description-4w.png

sd8p_mo.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
546    61

Может в этом дело:

"Данный SD-аудио плеер поддерживает только формат RIFF-WAVE в LPCM, 8/16-бит, моно/стерео и частотой дискретизации до 48 кГц"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

Да пробовал по разному конвертировать,плюс был файл аудио вместе с прошивкой :( - не работает хоть тресни. Пробовал другую карточку подключать,интересно то, что с одной карточкой гул постоянный,с другой прерывистый,просто как стуки тук-тук-тук-тук-тук. Главное бы понять в чем причина и на что грешить :( , или я спаял что-то не так(но вроде все много раз проверил),либо карта не подходит (ну неужели обе?),либо распиновка флешки не правильная(но сколько я смотрел\пересматривал,тоже ве правильно подключил), либо прошил как-то не так,но как можно там ошибиться не пойму,прошить прошил,проверил прошивка на МК есть,фузы посмотрел - они и так правильные,ничего трогать не стал

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BAPBAP    0

саму карту нужно в fat форатировать карта Памятимяти отформатирована под файловую систему FAT. В микроконтроллере заложена программа для работы с этой файловой системой. В качестве основы была использована библиотека Petit-FatFs которая является урезанной версией FatFs.

Аудиоплеер поддерживает только WAV файлы формата PCM 8/16 бит, стерео/моно с частотой дискретизации до 48kHz.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
546    61

Может карта не так отформатирована.

Или питание не в норме.

Конденсатор на динамик не забыли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

546, файловая система Fat на карточке (2Гб),пробовал вторую(где стуки) 8гб,го там в фат отформатировать нельзя,поэтому была Fat32(читал что и этот формат поддерживает). конденсатор стоит электролитический 100мкф плюсом к ножке МК,минусовой ножкой на плюс динамика,вроде ж так?(кстати видел схему одну,там вообще этого кондера нет,подкинуто через резистор,т.е. можно и без кондера?) .И я не подключал кнопку некст,т.к. она не нужна мне,но разве из-за этого может быть косяк?И еще терзают сомнения по поводу фьюзов. Скажите,правильно ли я понял - я прошил МК,нажимал запись флеш (может надо было жать все записать?Хотя данных в прошивке для еепрома нет,одни FF,но все же?) - нажал иконку фуз битов - увидел что они и так стоят точно такие же, и все на этом. Может надо было нажать прочитать фузбиты,а потом смотреть?Или понипрог сразу мне выдал прописаные фузбиты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BAPBAP    0

Попробуйте прочитать мк зашит ли он, так же давайте разберемся с фьюзами. И хорошо бы увидеть фото устройства и скрины союзов какие у Вас. Чем прошивали, каким софтом. Я собирал эту схему не однократно и все отлично работает. Так что разберемся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

ВАРВАР,сейчас посмотрю фьюзы и сделаю фото. МК зашит (если вы имеете ввиду прошивку),т.е. я вчера когда прошил,вышел из понипрог,запустил снова, нажал прочитать устройство,вывел что на МК не FFы, а прошивка. Потом я нажал фьюзы - увидел что они идентичны тем что нужно выставить,закрыл их и все.Сейчас нажму прочитать и посмотрю. А Вы какую прошивку записывали,можете выложить?Мне нужна моно 8бит,ну самая простая,которая воспроизводит файл сразу после подачи питания,и крутит их по кругу,ну или 1 по кругу если других файлов нет.Сейчас сфоткаю еще само устройство и выложу.Минут через 5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

Вот что читает понипрог с МК

04df1e94d360bd001544e24cdc45e9ee.jpg

Вот фото фьюзов

3c5bf7b13f7ac0ee30a31a33b54adb8a.jpg

Фьюзы нажимал считать,понипрог считал,но они не изменились,т.е. как бы все правильно?

Вот само устройство мое

b419933c531e3664f6ed1cdc48fb4780.jpg

8128969bea7d47f863424cf8848ae799.jpg

С обратной стороны стоит стабилизатор на 3,3V,на МК на выводе 3,28V где-то, думал все таки на фьюзы,но с ними вроде все в порядке :( , может прошил как-то не так и надо полностью записывать все нажимать?Или дайте прошивку вашу,(только моно 8бит с автомат. воспр-нием,я вашу попробую,может с этой что не так,хотя откуда скачивал многие писали что рабочая), что не так ума не приложу, все дорожки прозванивал,замыканий нет.Сейчас попробую еще одну флешку....

Может флешка все же как-то не так подключена?Сейчас припаял обратно SD переходник для mircoSD,паял по схеме

0b3c2ac8271e0dfa1b24f40d45f73861.jpg

Т.е. 1й контакт на 2ой МК, 2й к-т на 6й МК,3и6 к-т на 4й МК, 4й к-т на 8й МК, 5й к-т на 7й МК, 7й не подключал т.к. кнопка не нужна,с 3ей флешкой вообще тишина - в начале стук при подключении и тишина,другая флешка - постоянный гул, 3яя MCC - стучит постоянно

Залил другую прошивку - теперь рыпит одинаково прерывисто с разных 2ух флешек :( , т.е. прррр-пол сек. тишина-прррр-пол сек. тишина-прррр, капец :(

И еще вот сколько смотрю,попадались разных 3 варианта фузов,в других еще установлены галочки EESAVE,CKSEL1 и выключен фуз CKSEL0 и CKDIV8, я не могу понять какие правильные то?

Изменено пользователем System

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BAPBAP    0

У вас не правильно установлены фьюзы вот так поставте.

post-155388-0-18539900-1425056450_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
System    0

ВАРВАР, только что минут 20 назад попробовал...как итог - камень теперь не видится и не читается :( ,что могло произойти?Птался выставить вот эти

99477e568b42affd509c517a0a8c64bb.jpg

Открыл пони - нажала прочитать,он прочитал,открыл фузы - нажал прочитать фузы,он прочитал - изменил - нажал запись - он вроде начал писать,потом ошибка и ппц. Теперь не читает и не видит его.У меня хорошо что 2камня было,во второй заливал еще прошивки,с оф.сайта плеера этого залил, динамик вообще молчит мертво,как будто и не подавал питание.Что могло пойти не так с фузами?И эти ж фузы что стояли у меня как на картинке даже в даташите точно такие. Я второй камень запороть боюсь...т.к. у нас их не продают,я с интернета заказывал

Изменено пользователем System

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: parovoZZ
      Поставил LUFA, следом абсолютно не нужный мне ASF. Но в упор не понимаю - как создать проект на базе этой библиотеки из студии? Приходится вручную копировать папку с заголовочниками LUFA, прописывать пути в makefile, лишние телодвижения по добавлению папки в свойства проекта. Если я это делаю всё вручную, то тогда для чего это расширение? Примеры я могу и так покрутить. ЗЫ - не слишком высокий скилл в юзании Atmel Studio/
    • Автор: Trisector
      Привет всем.
      Помогите с кодом, нужно озвучить нажатие кнопки, подключенной к порту PB0, то есть просто издать короткий "бип" одной частоты (примерно 1000 Гц) и длительностью примерно 0.2 секунды.
      Везде, где искал, сразу создают кучу нот, разные тона, используют прерывания, мне же надо только один короткий бип.
      Выполняться оно должно в теле цикла:
      while (1) 
          {
              while(PINB&0b00000001); // ждем нажатия на кнопку на порте PB0
      <вот здесь должен быть бип>
       
      п.с. забыл добавить - выполняться код будет на Attiny13a
    • Автор: Геннадий К.
      В электронный журнал требуются внештатные авторы статей - опытные разработчики электроники или преподаватели профильных дисциплин ВУЗов.
      Тема - практическое применение электронных компонентов. Выдаем ТЗ на статьи, при необходимости высылаем отладочные платы, по итогам публикации выплачиваем гонорар.
    • Автор: Zver2011
      Всем привет! 
      Дано: Контроллер подсветки рабочей зоны кухни, реализованный на Tiny 13A.  Светодиодная лента длиной 2,3 метра, led 5050, 120 светодиодов/метр. Принципиальная схема устройства ниже:

      Код прошивки:
      #include <tiny13.h> #include <delay.h> int triggered = 0; int ontimer = 0; void main(void) { // Input/Output Ports initialization // Port B initialization // Function: Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0); // State: Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 37,500 kHz // Mode: Fast PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Disconnected // Timer Period: 6,8267 ms // Output Pulse(s): // OC0A Period: 6,8267 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; while (1) { if (PINB.1==1) { triggered = 1; ontimer = 60; }; if (ontimer > 0) { ontimer--; } else { triggered = 0; }; if (triggered) { if (OCR0A<255) { OCR0A++; }; } else { if (OCR0A>0) { OCR0A--; }; }; delay_ms(10); } } Возникшая проблема:
      Греется полевой транзистор при работе. 
      Изначально поискав информацию на данную проблему, начал прикидывать. 
      Смотрим график зависимости пропускаемого тока стока (ID )от приложенного напряжения  затвор-сток (VGS),  при температуре окруж. среды 25 градусов: ID = 14 А (2,3 метра светодиодной ленты не могут столько кушать, по крайней мере я такую не видел).

      Было предположение что частота переключения ШИМ высокая - отсюда транзистор в не определенном состоянии = нагрев. Рассчитал макс. частоту так:
      Rg = 100 Ом, Vgs = 5V
      Заряд затвора:
      Qiss = Ciss * Vgs = 1800pF * 5v = 9nC
      Скрость нарастания:
      S = Rgate * Qiss = 100Ohm * 9nC = 0.009mV*sec
      Время на открытие или закрытие транзистора:
      t=S / Vgs = 0.002mV*sec * 3.2v = 4.5uSec
      Период  - это открытие + закрытие:
      T = t + t = 4.5uSec + 4.5uSec = 9uSec
      Максимальная частота переключения:
      F < 1 / T = 1 / 9uSec = 111KHz
      Ток через затвор (G) и цифровой выход Tiny 13A:
      I = Qiss / t = 2mA
      Максимальный выходной ток GPIO у Tiny 13A 40.0mA
      2mA < 40.0mA
      Выставил частоту ШИМ на 37,5 кHz. Вуаля - при подключении 1м светодиодной ленты (тестировал на обрезке), нагрева нет. Но как только подключил все 2,3 метра - транзистор стал снова спустя время греться, аж дотронуться не возможно.  Захотел померить ток, который потребляет 1 метр ленты, проверить продавца. Потребление 1 метра ленты оказалось вместо заявленных 600 мА, все 1,85 А, причем заметил странную вещь - ток начал возрастать спустя время на сотые доли  и дошел до 1,9 А. Дальше ждать не стал. Режим амперметра в мультиметре сломался?
      Далее подумал что слишком большая мощность рассеивается на транзисторе. Если учесть то, что при открытом транзисторе, его переход можно представить в виде линейного резистора с маленькой величиной сопротивления,  можно рассчитать рассеиваемую мощность на транзисторе:
      Смотрим сопротивление транзистора в открытом состоянии при VGS = 5В : RDS(on) = 0.18 Ом
      P1 = 1,9*1,9*0,18 = 0,65 Вт. (1 метр св.ленты).
      Раз мы взяли потребление 1 метра ленты  1, 9 А, тогда 2,3 метра потребляют  = 4,4 А. (Теперь не уверен в своем мультиметре).
      P2=4.4*4.4*0.18 = 3.5 Ватт - довольно таки многовато я думаю.
      В общем: Правильно ли я делаю расчеты? Что упустил?  Как снизить нагрев транзистора, без применения вентиляторов и здоровенных радиаторов? Есть вариант замены светодиодной ленты на что нибудь поменьше жрущее (60 светодиодов/ метр например), но в будущем еще много раз придется сталкиваться с полевиками, хотелось бы разобраться .
    • Автор: bvitaly
      Добрый вечер.
      Нужно с микроконтроллера управлять нагрузкой. Напряжение DC 32 - 42V, ток до 30А (реально 0-5А с теоретическим максимумом 30).
      Твердотельные реле сразу в минус, они такой ток не держат. Мосфеты тоже, остается стандартная схема логика открывает транзистор, транзистор включает реле.
      Вся логика 5V, реле на 30А напряжением катушки 5V не существуют? Не нашел нигде. Остается дополнительное питание +12V на катушку.
      В каталогах вижу "коммутируемое напряжение 125 VAC; 28 VDC" или что-то в этом духе, хотя ток указан 30А - почему мало и чем грозит если коммутировать большее напряжение? Можно смело использовать если напряжение чуть больше, но токи меньше?
      Где-то рекомендуют использовать транзистор 2N2222, где-то BC547 и BC548. Какой принцип выбора транзистора? Я правильно понимаю что нужно иметь запас Vce напряжение катушки реле умножить на 2 и запас по току? Если в даташите на реле написано coil power 1.9W считай 0.15А и все транзисторы с током коллектора 0.1А сразу пробиваются потому из выше перечисленных можно только 2222? Диод нужно брать 1n4007 как рекомендуют на каждом заборе или сойдет любой как минимум на 1000V и 0.5A?