Страница 6 из 24
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 13, 2011 22:56:52
DX168B
Не помню в каком регистре и какой бит, но знаю, что такое в tiny26 есть. Как-то давненько извращался. Позже погляжу в тот исходник и в даташит и точно скажу.
Вот снимок из даташита:
А вот неоптимизированный пример идеи, набитый на скорую руку.
Довести до ума и будет чётко
Код: Выделить всё
.include "tn26def.inc"
;*********************************
;Definitions
.def temp0 = r16
.def temp1 = r17
.def play_count = r18
;*********************************
; SRAM
.dseg
buffer: .byte 64
;*********************************
;FLASH
.cseg
.org 0x0000
rjmp RESET
.org OC1Aaddr
rjmp TIM1_CMP1A ; Timer1 compare match 1A
;---------------------------------
.org INT_VECTORS_SIZE
TIM1_CMP1A:
; Тут мы будем грузить новый байт
; Время для выполнения операции подбирается в OCR1A
ld temp1, Y+
out OCR1B, temp1
inc play_count
cpi play_count, 0x40 ;64
breq CLRCNT
reti
CLRCNT:
clr play_count
ldi YL, Low(buffer)
ldi YH, High(buffer)
reti
;--------------------------------- Начало программы
RESET:
ldi temp0, Low(RAMend)
out SP, temp0
;--------------------------------- Настройка портов для работы ШИМ
sbi DDRB, 3
;--------------------------------- Настройка таймера
ldi temp0, (1<<PWM1B)|(1<<COM1B1)
out TCCR1A, temp0
;--------------------------------- Частота и разрешение ШИМ
ldi temp0, 0xFF
out OCR1C, temp0
;--------------------------------- Ранний вызов прерывания
ldi temp0, 0xE1
out OCR1A, temp0
;--------------------------------- Почистим регистр вывода
ldi temp0, 0x00
out OCR1B, temp0
;--------------------------------- Разрешим прерывание по А
ldi temp0, (1<<OCIE1A)
out TIMSK, temp0
;---------------------------------
clr play_count
ldi YL, Low(buffer)
ldi YH, High(buffer)
;--------------------------------- Частота тактирования
ldi temp0, (1<<CS10)
out TCCR1B, temp0
sei
;--------------------------------- Пустой бесконечный цикл
LOOP:
rjmp LOOP
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Пн мар 14, 2011 07:07:01
phanis
Действительно, все работает. Спасибо.
Да, и код довольно компактный по сравнению с си получается. Просьба, если не трудно, после завершения проекта, выложите пожалуйста исходный код.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вт мар 15, 2011 00:19:58
alex1991
phanis здравствуйте
Не нашлось меня в загашнике рабочей карты памяти но вот раздобыл несколько at45db041b можно ли ее использовать вместо карты памяти ?
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вт мар 15, 2011 02:29:56
DX168B
phanis писал(а):Просьба, если не трудно, после завершения проекта, выложите пожалуйста исходный код.
ОК. Только немного позже у меня будут несколько вопросов о выборе частоты тактирования МК, частоты вывода ШИМ, работа с MMC и файловой системой. Как сделаю рабочий в железе макет, то выложу суда весь проект целиком.

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вт мар 15, 2011 11:35:29
phanis
alex1991 писал(а):phanis здравствуйте
Не нашлось меня в загашнике рабочей карты памяти но вот раздобыл несколько at45db041b можно ли ее использовать вместо карты памяти ?
Если правильно понял, по даташиту память у нее около 540 кбайт. Что не очень то и много.
DataFlash supports SPI mode 0 and mode 3. В принципе можно, но
прошивка для мк нужна будет другая.
Вот мой исходник на IAR AVR (язык СИ, есть файлы на ASM) с SD MMC FAT16, может что то и пригодится для вас.
DX168B писал(а):
ОК. Только немного позже у меня будут несколько вопросов о выборе частоты тактирования МК, частоты вывода ШИМ, работа с MMC и файловой системой. Как сделаю рабочий в железе макет, то выложу суда весь проект целиком.
Подождёмс.
А таймер 0, для каких целей будет использоваться?Ну, если конечно, будет вообще использоваться.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вт мар 15, 2011 22:17:11
DX168B
Итак. Вопрос номер один. Где можно почитать о работе со старыми флешками MMC и о работе с файловой системой флешки? Желательно на доступном языке.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Ср мар 16, 2011 10:18:49
phanis
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Ср мар 16, 2011 12:42:38
DX168B
Спасибо.

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Ср мар 16, 2011 13:58:14
Jack_A
phanis писал(а):
Замечательная подборка материалов. Я хоть и не отслеживал этот топик регулярно, все скачал и не могу не выразить благодарность автору. Выражаю.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Ср мар 16, 2011 17:32:37
phanis
Добавлю, программка HEX редактор может пригодиться, открыть флешку или образ, посмотреть где какие байты.
ftp://wa651f2:anonymous@mh-nexus.de/HxDSetupRU.zip
Winimage 8.5 программа создания образов накопителей. Можно использовать для протеуса, как именно писал выше.
WinImage 8.50.rar
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Сб мар 19, 2011 19:58:10
DX168B
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Сб мар 19, 2011 20:26:20
БАТАРЕЙКУС
а сюда можно будет скинуть схему и прошивку к WAV-плееру на PIC, или тут строго на AVR ?
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 01:01:24
phanis
Хочу добавить схему стерео варианта 8 бит

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 14:39:02
DX168B
Хочу узнать, правильно ли я инициализирую MMC флешку.
Флешка не SD, а именно старенькая MMC. Удалил с флешки файловую систему, кинул туда конвертированный waw файл с удалённым заголовком. Это пока так, чтобы проверить работу и отладить вывод звука из буфера. Потом уже и работу с файловой системой приделаю.
Значит, что я делаю:
1. Устанавливаю 1 на линии CS
2. Посылаю 10 раз 0xFF (посылка 80 тактовых импульсов)
3. Устанавливаю 0 на линии CS
4. Отправляю 6 байт: 0x40, 0x00, 0x00, 0x00, 0x00, 0x95 (CMD0)
5. Циклом отправляю 0х00, пока с флешки не придёт 0x01
6. После получения корректного ответа отправляю 0x00 (посылка 8 тактов)
7. Отправляю 6 байт: 0x41, 0x00, 0x00, 0x00, 0x00, 0xFF (CMD1)
8. Циклом отправляю 0х00, пока с флешки не придёт 0x00
9. После получения корректного ответа отправляю 0x00 (посылка 8 тактов)
10. Отправляю 6 байт: 0x52, 0x00, 0x00, 0x00, 0x00, 0x00 (CMD18)
11. Кручусь в цикле, пока не придёт что-нибудь отличное от 0xFF
12. Пропускаю первый принятый байт и остальное пишу в буфер.
13. После заполнения буфера, запускаю воспроизведение.
Всё ли я правильно делаю?
Паяльник накрылся и новый аж послезавтра будет,
по этому в железе проверить пока нет возможности.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 15:23:12
phanis
DX168B писал(а):
Значит, что я делаю:
.........
.........
10. Отправляю 6 байт: 0x52, 0x00, 0x00, 0x00, 0x00, 0x00 (CMD18)
11. Кручусь в цикле, пока не придёт что-нибудь отличное от 0xFF
.
В принципе все правильно, только в место
что-нибудь отличное от 0xFF на команды CMD17 CMD18 CMD24 нужно ловить маркер равный 0xFE
Потому как первым придет ответ на команду , если успешно придет 0x00, а это уже отличное от 0xFF;
И только после того как пришел маркер с 0xFE следующие байты начинаем записывать в буфер.
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 15:32:49
DX168B
Понял, спасибо. Исправлю.
Результаты будут во вторник.

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 15:41:52
phanis
Да еще один момент, во всех исходниках которые смотрел, перед посылкой команды
ставят CS в 1 отправляют 0xFF затем CS в 0 (в некотрых после еще раз 0xFF ) и отправляют команду.
Я думаю это делается для синхронизации карты с мк.
И в место Циклом отправляю 0х00 отправляют 0xFF. я так сделал..
Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Вс мар 20, 2011 16:11:29
DX168B
ОК. Осталось отладить и донастроить в железе.

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Пт май 20, 2011 06:36:24
alex1991
Использую прошивку 8 бит стерео 22 кгц для 8 МГц
А так все ок спасибо за девайс

Re: mp3 плеер на attiny2313 на ммс картах
Добавлено: Пт май 20, 2011 07:11:47
CS16AMX
а вы пробовали несколько карт перебирать? типа микро СД 128,256,512 говорят у них разные инициализации я в своё время инициализировать так и не смог