Помогите изменить прошивку!

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Здравствуйте,люди добрые!Вообщем,сразу к делу.Строю своими руками музыкальную шкатулку для девушки,перерыл весь интернет и самое подходящее нашёл - http://dmitry.gr/index.php?r=05.Project ... day%20Card . Мне очень понравилась логика прошивки для ATtiny85, НО у автора использована SD карточка с FAT16 ( не более 2 Гб ),а я нигде не могу такую достать,магазины обходил,знакомых тоже,но увы. Поэтому прошу знающих,понимающих, разбирающихся и добрых людей помочь мне переделать прошивку эту,чтобы была поддержка microSDHC карты памяти.
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

mckalister89 писал(а):НО у автора использована SD карточка с FAT16 ( не более 2 Гб ),а я нигде не могу такую достать
А microSD с переходником на SD ?
Изображение

Продаются в любом салоне сотовой связи как сами карты так и в комплекте с переходником.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Как я понимаю дело не в адаптере этом,а в файловой системе и каким-то драйвером самой карты памяти.Автор устройства (ссылка выше) пишет,что использовал в прошивке драйвер SD карты.Может я чего-то не понял? и да,я пробовал через адаптер такой,но увы не играет,хотя схема собрана правильно.
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Пт мар 07, 2014 18:37:20
Откуда: Пермь

Сообщение emax »

http://elm-chan.org/works/sd8p/report.html

Там в видео явно карточка на 4гб
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

mckalister89 писал(а):Автор устройства (ссылка выше) пишет,что использовал в прошивке драйвер SD карты.Может я чего-то не понял? и да,я пробовал через адаптер такой,но увы не играет,хотя схема собрана правильно.
Если адаптер SD и карточка microSD (а не microSDHC) то, должно работать, иначе, перепроверять:
1. питание карточки 2.7 - 3.3 В (но никак не 5в)
2. схема подключения - на схеме обозначены именно выводы SD карты, а не разъема...

Про распиновку и подключение, можно посмотреть например: http://chipenable.ru/index.php/programm ... u-ch1.html
emax писал(а):Там в видео явно карточка на 4гб
На видео - мелко карточка в адаптере, а номинала там не увидеть, так как карточка внутри.
Реклама
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Выводы составлены правильно.Перепроверял несколько раз.Питание подаю ровно 3.3V.Схему Elm-Chana я делал и она у меня работает (8 bit mono вариант я делал).
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

mckalister89 писал(а):Схему Elm-Chana я делал и она у меня работает (8 bit mono вариант я делал).
Ну и зачем делать схему http://dmitry.gr/index.php?r=05.Project ... day%20Card ?
Там тоже mono, проигрывается тоже WAV...
Единственно - динамик подключен через усилитель а не напрямую к тиньке, и начало воспроизведения начинается просто по подаче питания, при открытии открытки.

Что мешает доработать уже проверенную схему Elm-Chana ?
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

У Chana при подаче питания начинает играть музыка,когда питание выключаешь и снова включаешь,то мелодия начинается снова с первого трека на карте.То есть чтобы слушать разные мелодии шкатулку постоянно держать открытой что ли? А тут открыл - одна мелодия играет,закрыл и снова открыл и уже следующая мелодия играет....и не надо шкатулку постоянно открытой держать.
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

mckalister89 писал(а):А тут открыл - одна мелодия играет,закрыл и снова открыл и уже следующая мелодия играет....
Уж проще подправить код - добавив рандомный выбор трека (в проверенную схему), чем перепахивать код под другой тип карточки (в схеме работоспособность которой не проверена).
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Ну если не трудно,то смогли бы вы это сделать?а то я в этом деле не силён совсем.Хотелось,чтобы когда открываешь шкатулку начинает играть музыка.Мелодия закончилась,то её снова начинает крутить по кругу.Когда шкатулку закрываешь и снова открываешь(питание отключаешь и подаёшь снова),то начинает играть другая мелодия и её тоже играет по кругу.Буду очень благодарен вам за помощь.
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Art_el,сможете помочь мне?
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

Код то я посмотрю, но проверить в железе у меня не на чем...
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Хорошо,я проверять сам буду на железе.
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Сообщение Art_el »

Код просмотрел, в проектах - совсем разные схемы листания файлов, переделать конечно можно, но зачем, если уже есть готовое

https://www.tindie.com/products/bobrici ... -attiny85/
micro SD card Wav sound audio player with Atmel AVR AtTiny85, выложены как сама схема так и исходники с hex

Схемка доработана как раз на основе схемы Elm-Chana
- добавлена кнопка питания, добавлено сохраннение во флеш последнего проигрываемого файла
при включении питания воспроизводится файл на котором остановились, но можно и переделать чтоб при подаче питания происходил выбор нового файла

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

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

/* POWER ON and RESET                                                    */
	ndir = eeprom_read_byte((uint8_t*)DIR_EEADR);

 if(bit_is_set(MCUSR, PORF)) { // Power on - resume playback!
    MCUSR = 0; // clear MCUSR
 } 

 if(bit_is_set(MCUSR, WDRF)) { // WatchDog reset - on error!
    MCUSR = 0; // clear MCUSR
	if (ndir !=0) {
    ndir = 0; // resetdirectory 
    nskip = 0; // resetdirectory
	eeprom_write_byte ((uint8_t*)SKIP_EEADR, (uint8_t*) nskip); 
	eeprom_write_byte ((uint8_t*)DIR_EEADR, (uint8_t*) ndir);
//	for (;;) {
//			PORTB ^= _BV(PB1);
//        delay_ms(200);
//       wdt_reset();
//	}
	}
 } 

 if(bit_is_set(MCUSR, EXTRF)) { // Reset button.

    MCUSR = 0; // clear MCUSR
    ndir++; // advance mode
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Лучше конечно,чтобы при подаче питания происходил выбор нового трека.
Родился
Сообщения: 9
Зарегистрирован: Ср июл 08, 2015 20:38:24

Сообщение mckalister89 »

Если не трудно,то измените код прошивки,чтобы при подаче питания проигрывался бы рандомный трек и его играло бы по кругу.Когда выключаешь и снова подаёшь питание,то играет уже другой трек и его тоже играет по кругу.Не хочу,чтобы при подаче питания снова начинал играть трек на котором остановился в последний раз.Благодарен очень буду вам за помощь.
Ответить

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