Не обычный MP3 проигрыватель

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Масяня
Прорезались зубы
Сообщения: 231
Зарегистрирован: Вс мар 31, 2013 17:22:21
Откуда: Бурятия

Re: Не обычный MP3 проигрыватель

Сообщение Масяня »

http://www.getchip.net/posts/087-attiny ... ng-device/ Вот это уже на много ближе к теме теперь как мне подать сигнал на контакты от кнопки Select track при нажатии кнопки к примеру 7 чтобы включить седьмой трек 000000000000111111100000000000000 или 12 0000000000111111111111000000000 может есть стандартная логика для этого.
Когда кажется что ты все понял, оказывается что ты и половины не знаешь!
Реклама
mrFox
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт сен 21, 2007 17:53:23
Откуда: Зарайск

Re: Не обычный MP3 проигрыватель

Сообщение mrFox »

Масяня писал(а):http://www.getchip.net/posts/087-attiny2313-sd-card-talking-device/ Вот это уже на много ближе к теме теперь как мне подать сигнал на контакты от кнопки Select track при нажатии кнопки к примеру 7 чтобы включить седьмой трек

по первой ссылке есть исходник - берешь мегу16, написать обработку клавиатуры и компилишь

ИС-пытатель писал(а):Опять-таки, stm какой серии? )) Сейчас в старших сериях есть такие штуки, как DSP, DMA, FPU и т.д.

stm32f103
гм слегка ошибся для работы требуется память 24к
http://we.easyelectronics.ru/STM32/programmnyy-dekoder-mp3-na-stm32f10x-demoproekt.html
Реклама
Аватара пользователя
Масяня
Прорезались зубы
Сообщения: 231
Зарегистрирован: Вс мар 31, 2013 17:22:21
Откуда: Бурятия

Re: Не обычный MP3 проигрыватель

Сообщение Масяня »

вот написал мои первые буковки в сторону программирования AVR посмотрите это включит мне 3 песню в бешеном плеере с тактовой кнопкой типа сколько раз нажал такая и песня играть будет оказывается что писать не так уж и трудно видимо главное это начать. :)

#include <mega8.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{

PORTB=0x00;
DDRB=0x00;

PORTC=0b00000001;
DDRC=0b00000010;

PORTD=0x00;
DDRD=0x00;


while (1)
{
if (PINC.0=0) {
PORTC.1=1;
delay_ms (100)
PORTC.1=0;

PORTC.1=1;
delay_ms (100)
PORTC.1=0;

PORTC.1=1;
delay_ms (100)
PORTC.1=0;

};

} ;
}
Когда кажется что ты все понял, оказывается что ты и половины не знаешь!
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Не обычный MP3 проигрыватель

Сообщение Flasher »

Да, неработающие программы писать вообще легче лёгкого.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Масяня
Прорезались зубы
Сообщения: 231
Зарегистрирован: Вс мар 31, 2013 17:22:21
Откуда: Бурятия

Re: Не обычный MP3 проигрыватель

Сообщение Масяня »

Эх по чему не работает что не так написал
Когда кажется что ты все понял, оказывается что ты и половины не знаешь!
Реклама
Аватара пользователя
Масяня
Прорезались зубы
Сообщения: 231
Зарегистрирован: Вс мар 31, 2013 17:22:21
Откуда: Бурятия

Re: Не обычный MP3 проигрыватель

Сообщение Масяня »

Ну а если так обязанно работать.

#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0x00;

PORTC=0b00111110;
DDRC=0b00000001;

PORTD=0x00;
DDRD=0x00;

while (1)
{
if (PINC.1==0) {
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
};
if (PINC.2==0) {
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
};
if (PINC.3==0) {
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
};
if (PINC.4==0) {
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
};
if (PINC.5==0) {
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
delay_ms(500);
PORTC.0=1;
delay_ms(500);
PORTC.0=0;
};
};
}
Когда кажется что ты все понял, оказывается что ты и половины не знаешь!
Реклама
Аватара пользователя
Масяня
Прорезались зубы
Сообщения: 231
Зарегистрирован: Вс мар 31, 2013 17:22:21
Откуда: Бурятия

Re: Не обычный MP3 проигрыватель

Сообщение Масяня »

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

#include <mega8.h>
#include <delay.h>

void main(void)
{

PORTB=0b11111111;
DDRB= 0x00;

PORTC=0b00111111;
DDRC= 0x00;

PORTD=0b01111111;
DDRD= 0b10000000;

while (1)
{
if (PINB.0==0) //Иммитируем сигнал (A)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(500);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.1==0) //Иммитируем сигнал (B)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.2==0) //Иммитируем сигнал (C)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.3==0) //Иммитируем сигнал (D)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.4==0) //Иммитируем сигнал (E)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.5==0) //Иммитируем сигнал (F)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.6==0) //Иммитируем сигнал (G)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(300);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINB.7==0) //Иммитируем сигнал (H)//
{
PORTD.7=0;
delay_us(400);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.0==0) //Иммитируем сигнал (I)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.1==0) //Иммитируем сигнал (J)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.2==0) //Иммитируем сигнал (K)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.3==0) //Иммитируем сигнал (L)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.4==0) //Иммитируем сигнал (M)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PINC.5==0) //Иммитируем сигнал (N)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(300);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.0==0) //Иммитируем сигнал (O)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(400);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.1==0) //Иммитируем сигнал (P)//
{
PORTD.7=0;
delay_us(500);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.2==0) //Иммитируем сигнал (Q)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.3==0) //Иммитируем сигнал (R)//
{
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.4==0) //Иммитируем сигнал (S)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(200);
PORTD.7=0;
delay_us(200);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.5==0) //Иммитируем сигнал (T)//
{
PORTD.7=0;
delay_us(300);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
if (PIND.6==0) //Иммитируем сигнал (U)//
{
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(100);
PORTD.7=0;
delay_us(100);
PORTD.7=1;
delay_us(1000);
};
};
};
Когда кажется что ты все понял, оказывается что ты и половины не знаешь!
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Не обычный MP3 проигрыватель

Сообщение dosikus »

Не знаю, может уже поздно, но здесь реализованы все хотелки -
http://www.dfrobot.com/wiki/index.php/D ... KU:DFR0299
http://ru.aliexpress.com/item/Mini-MP3- ... 86935.html
Unique
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Чт янв 12, 2012 16:14:37

Re: Не обычный MP3 проигрыватель

Сообщение Unique »

Доброго времени суток!

Я тут на досуге пораскинул мозгами и пришёл к выводу, что отстал от жизни, а точнее, от её прогресса. Застрял на транзисторно-микросхемном аналоговом уровне, а хотелось бы залезть в микроконтроллеры.

Появилась идея сделать MP3 дистанционный дверной звонок.
Заказал в китае MP3 модуль WTV020-SD-16P (даташит).
И решил управлять этим модулем микросхемой atmega8 (даташит)
Пока это всё барахло идёт из китая, решил набросать логику работы и примерную схему... и тут же наткнулся на препятствие: мега питается от 5 V (в сожалению, заказал без буквы L в конце маркировки), а модуль MP3 рассчитан на напряжение 3.3 V. Ладно, с питанием я разберусь, благо, стабилизаторы есть. Но что делать с сигналами?
Грубо говоря, когда на вход меги подаётся сигнал, на MP3 модуль должна податься серия импульсов, точнее серия низких уровней, т.е. по умолчанию на выходе меги должны быть высокие уровни, т.е. 5 V. Но от 5 V MP3 модулю наверняка станет плохо.
Скажите, пожалуйста, как грамотно согласовать их сигналы? На ум приходит только использование делителей из резисторов в связях между мегой и mp3 модулем. Или можно как-то программно заставить мегу выдавать не 5, а 3.3V?
И другой вопрос: выход "Busy" с модуля, тоже 3.3V нужен для обработки сигналов в меге. Хватит ли 3.3V, чтобы мега поняла, что это логическая единица? Или как программно заставить её понять это?
Вложения
звонок.png
(18.89 КБ) 368 скачиваний
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3476
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Не обычный MP3 проигрыватель

Сообщение smacorp »

Unique писал(а):Но что делать с сигналами?
Сначала совет из разряда плохих - зачастую то, что живёт на уровнях 3.3V толерантно относится и к уровням 5V. Иногда это указано и в даташитах. В общем, работать будет, часто работает и годами, но, как говорится, на Ваш страх и риск.

А если делать правильно, то на каждый сигнал вешается подобный двунаправленный преобразователь уровня:

Изображение или Изображение

Далее - Меги обычно имеют широкий диапазон питания - Ваша ATMega8 от 2.7V до 5.5V (максимум 6V). Если запитаете её от 3.3V, тогда никаких преобразователей уровня и не потребуется.

Такой же ответ и на Ваш второй вопрос.
Unique писал(а):хотелось бы залезть в микроконтроллеры
Изучайте подробно даташиты, тогда многие вопросы отпадут сами собой.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Unique
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Чт янв 12, 2012 16:14:37

Re: Не обычный MP3 проигрыватель

Сообщение Unique »

Ой, прошу прощения, не тот даташит предоставил
Unique писал(а):к сожалению, заказал без буквы L в конце маркировки
У меня простая мега, без L
DataSheet писал(а):– 2.7V - 5.5V (ATmega8L)
– 4.5V - 5.5V (ATmega8)
Т.е. только от 4.5V.
smacorp писал(а):Сначала совет из разряда плохих - зачастую то, что живёт на уровнях 3.3V толерантно относится и к уровням 5V.
Ну это только опытным путём проверить можно, хоть изучай даташиты, хоть не изучай... У меня 5 модулей MP3 и 10 atmega - могу себе позволить поэкспериментировать :)
Ну если не получится - буду химичить с преобразователями. Спасибо, полезная информация.

И ещё один глупый вопрос... сегодня ночью анализируя полученную из интернета информацию, родилось предположение... В одном из уроков, порту присваивается 1

Код: Выделить всё

PORTC.1=1;
что, вероятно, соответствует полному напряжению питания, т.е. 5V. А если сделать

Код: Выделить всё

PORTC.1=0,66;
будет ли на выходе 3,3V? Или порты типа Boolean?
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3476
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Не обычный MP3 проигрыватель

Сообщение smacorp »

Unique писал(а):буду химичить с преобразователями
Вы можете докупить готовый преобразователь - стоят копейки - вот, например - http://www.ebay.com/itm/Two-Channel-IIC ... 43dd99a290
Unique писал(а):если сделать PORTC.1=0,66 будет ли на выходе 3,3V? Или порты типа Boolean?
Не будет. Если Вам так проще, то да, считайте, что это булевый тип. Либо 0 - "земля" , либо 1 - высокий уровень.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Unique
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Чт янв 12, 2012 16:14:37

Re: Не обычный MP3 проигрыватель

Сообщение Unique »

smacorp писал(а):Вы можете докупить готовый преобразователь - стоят копейки - вот, например
Вот времена пошли... делать совсем ничего не надо :)
Только покупать выгоднее на aliexpress
http://ru.aliexpress.com/item/5V-3V-IIC ... 28931.html
http://ru.aliexpress.com/item/5pcs-lot- ... 22452.html

Спасибо за помощь!
Ответить

Вернуться в «AVR»