Воспроизведение звука на основе pic 16f628a

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Hispanus »

urry писал(а):Ну у Димы же работает связка :)
Только с записью - сразу нет - блок пишется 10 мс.
Долго ждать .
Придётся, что то сделать, но это не проблема :) наверное.. Кстати нашел решение программирования внешней памяти. Можно обмениваться циферками по UART, заюзав COM :)
P.S. USART .. таки PIC же)
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
Реклама
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Dmitry Dubrovenko »

urry писал(а):сохраняете в bin формате, он самый простой и, кстати, конвертируется в hex тоже без проблем
Юр, а нафига это надо (в смысле в хекс конвертировать)?
Бинарник - очень удобный формат (всё предельно хорошо видно), а все прогеры, которые с чипами памяти работают, его прекрасно понимают.
Только, ИМХО, если уж связываться с MMC, то надо файловую систему поднимать, и данные с компа заносить прямо в вэйве.
ICQ нет, и, в ближайшее время, не будет.
Реклама
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Hispanus »

Попробовал смоделировать работу USART, передав через виртуальный терминал протеуса строку символов функцией printf(). Но вместо исходной строки в виртуальном терминале отображается какая то каша из символов той же длины. Почему так?

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

#include <16f628a.h>
#fuses HS,NOWDT
#use delay(clock=10000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,stream=OUT_STREAM)
#byte PORTB = 0x06
#byte TRISB = 0x86

void main()
{
  
  PORTB=0;
  TRISB=0xFF;
  
  printf("radiokot");
  //Передача строки 
  
  delay_ms(10);
  
  while (1)
    {
      
    }
}
Схемка подключения:
Вложения
Схемка.JPG
(56.91 КБ) 616 скачиваний
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение urry »

макс232 перед терминалом ставить н нужно, напрямую с ножек пика на него.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Hispanus »

Спасибо, не думал, что будет так просто :)
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
Реклама
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение urry »

Простого ничего не бывает - если Вам кажется, что это просто, значит, Вас где-то наебали.
Для грусти покажите мне, например, как в Вашем компиляторе обрабатываются исключения - переполнение буфера приема и отсутствие стопового бита.
Правильные пацаны для 16 серии пользуют хайтек .

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

Что-то типа этого...
Реклама
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Hispanus »

Ну значит я неправильный :) я просто беру и разбиваю то что надо передать на блоки, размер которых определяется возможностью памяти МК. Потом отправляю их через usart с последующей записью в какой нибудь символьный буфер. Дальше выделяю из этого буфера каждые 4 символьные строчки (шестнадцатеричное число) и снова присваиваю их новому символьному буферу. И наконец использовав одну из функций моего компилятора я перевожу эту символьную строчку в целочисленное значение и записываю во внешнюю память. Всё это повторяется до тех пор пока МК не получит стоповую строчку и прекратит запись. Как то так :)

Для более серьёзных вещей нужны куда более сложные алгоритмы, обычно недоступные простым смертным :) ..Вы правы..право творить историю даётся только избранным.
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение urry »

Мы сейчас точно говорим о стандартной обработке ошибок приема данных по уарту ?
Право творить историю... Из ассоциаций - "избранный" только Нео ...
Глобально мыслите...
Аватара пользователя
Hispanus
Грызет канифоль
Сообщения: 262
Зарегистрирован: Сб мар 26, 2011 14:17:14
Откуда: Оренбург

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Hispanus »

Я к тому, что проблема кажется решенной только до первого порота :)) пока не встретятся новые, с которыми надо что то делать. На моём этапе ошибки кажутся чем то очень далеким - лишь бы заработало.
У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Скоро выяснится, что рентгеновские лучи - мистификация.

[i]Лорд Кельвин, физик, 1899 г.[/i]
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Воспроизведение звука на основе pic 16f628a

Сообщение TripleKill »

Всем привет. Тоже возникла идея воспроизведения звука PICом.
Исходные данные такие.

1). PIC18F452 (до 40 МГц).
2). SD- или microSD-карта.
3). Имеется аудио ЦАП PCM1717E.
4). Никакого качества не нужно, самые примитивные 8 кГц, моно, WAV без сжатия, для передачи голоса.

Реально на таком железе реализовать желаемое?
Может, кто-то подскажет хорошие ссылки, где бы можно было почитать про воспроизведение WAV, строение самого WAV-файла и протокол работы с PCM для ЦАПов типа приведённого выше?

Спасибо.
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Dmitry Dubrovenko »

TripleKill писал(а):Реально на таком железе реализовать желаемое?
Ну, блин.
Выше же готовый пример приводил, для таких требований, без всяких SD-карт и внешних АЦП.
Зачем они нужны?
А спецификация на WAV, в атаче.
Вложения
WAV_Specification.txt
(1.13 КБ) 229 скачиваний
ICQ нет, и, в ближайшее время, не будет.
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Воспроизведение звука на основе pic 16f628a

Сообщение TripleKill »

Без SD будет неудобно человеку без программатора изменять файлы.
В общем и целом вряд ли потребуется смена файлов, но такая вероятность есть.
Файловая система под SD уже имеется в mikroC (FAT16).
Тут разве что со скоростью проблемы, т.к. карточка по SPI-интерфейсу подключается.
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Ser60 »

Интересными вопросами занимаетесь, коллеги. Dmitry - можно попросить инфу по Вашему проекту информатора для массажного кресла. Емайл послал в личку. Hispanus - у Вас гляжу большой прогресс в программировании МК. Вношу свой вклад в обсуждение про воспроизведение речи, см. нашу статью про сенсор воды с голосовым интерфейсом в Радиомире 1/2011. Правда, он на MSP430.
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Воспроизведение звука на основе pic 16f628a

Сообщение Dmitry Dubrovenko »

TripleKill писал(а):Тут разве что со скоростью проблемы, т.к. карточка по SPI-интерфейсу подключается.
Так у СПАЙя как-раз меньше проблем со скоростью. Я-то на I2C делал, и на Ассемблере.
А со SPI Юрий делал (ссылка тоже чуть выше). Только, насколько помню, он ФАТ не поднимал. И проблемы там некоторые возникли (тоже всё выше изложено).
Ещё, помниться, в "Мурзилке" пару лет назад была статья, кажись как-раз на Си. Но, судя по отзывам, работает "через раз".

P.S.: Менять файлы в речевом информаторе, рядовым юзерам, идея совсем нехорошая. ИМХО, разумеется.
А программатор I2C - очень простая штука.
ICQ нет, и, в ближайшее время, не будет.
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Воспроизведение звука на основе pic 16f628a

Сообщение TripleKill »

Это по задумке не совсем информатор.
Задумка была сделать устройство в помощь студентам, сдающим с хэндсом.
Устройство размером где-то с часы, крепится на руку. Проводом соединяется с хэндсом.
В память записан набор фраз ("да", "нет", "повтори" и пр.), которые можно выбирать и воспроизводить в канал хэндса.
Сдающему не придётся истошно кашлять, а помощнику - гадать, что человек имел в виду своим кашлем.
В принципе-то с памятью оно меньше (да и дешевле). Буду думать в этом направлении, спасибо.

P.S. FAT наверно и не понадобится там. Если уж нужны какие-то нетрадиционные средства для изменения содержимого памяти, то и работу с данными можно намутить свою, более простую, чем FAT.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»