Музикален разговор на микроконтролера - Контролери - Приднестровски портал на радиолюбителите
В предложената покана за съхранение на мелодии или гласови съобщения се използва SD или MMC карта с памет, форматирана под файловата система FAT16. Възпроизвеждат се WAV аудио файлове. Освен за разговори, устройството може да се използва и като плеър за такива файлове.
Устройството (Фиг. 1 ) е сглобено на широко използван микроконтролер PIC16F628A и има два режима на работа, които се задават от превключвателя SA1. Според диаграмата горната позиция на контактите му съответства на режим "Играч", а долната - на режим "Повикване". Микроконтролерът проверява състоянието на контактите на превключвателя само веднъж, веднага след включване. Следователно, за да промените режима, е необходимо да изключите захранването, да поставите превключвателя в желаната позиция и след това да включите отново захранването.
Увеличете диаграмата (отваря се в нов прозорец)В "Повикване" след включване на микроконтролера DD1 конфигурира вътрешните регистри и след това преминава в режим на заспиване. Когато натиснете бутона SB1 ("Call / Play"), микроконтролерът се "събужда", както се вижда от светването на светодиода HL1, захранва картата с памет, инициализира я и търси звуков файл. Търсенето се извършва от разширението WAV. След като намери, микроконтролерът възпроизвежда файла, изключва захранването на картата с памет и след това отново "заспива" и светодиодът HL1 изгасва. При следващото натискане на бутона SB1 всичко ще се повтори, но ще се възпроизведе следващият звуков файл. На карта с памет могат да бъдат записани до 512 мелодии или съобщения - това е максималният брой записи в главната директория за файловата система FAT16. След възпроизвеждане на всички мелодии, те ще бъдат възпроизведени отново. Бутоните SB2, SB3 и SB4 не се използват в този режим.
В режим"Плейър" след включване, микроконтролерът също конфигурира вътрешните регистри, включва захранването на картата с памет, извършва процедурата за нейната инициализация, в случай на успешно завършване, светодиодът HL1 мига. След това се търси WAV файлът и когато бъде намерен, микроконтролерът ще продължи да проверява състоянието на контактите на всички бутони. Когато натиснете бутона SB1, ще започне непрекъснато последователно възпроизвеждане на всички звукови файлове на картата с памет. С натискане на бутона SB2 ("Стоп") можете да спрете възпроизвеждането на текущата мелодия, а бутоните SB3 ("Следващ") и SB4 ("Предишен") превключват файловете, което е възможно както по време на възпроизвеждане, така и след спиране на възпроизвеждането. Ако процедурата за инициализация на картата с памет е неуспешна, микроконтролерът ще направи нов опит, а ако и той не успее, ще прозвучат два кратки звукови сигнала с нисък тон, след което микроконтролерът ще спре да отговаря на команди.
В режим "Повикване", в случай на грешка при инициализация, ще прозвучат и два кратки нискотонални звукови сигнала, след което микроконтролерът ще изключи захранването на картата и ще премине в режим на заспиване. Ако картата с памет спре да отговаря на команди или просто "замръзне", в режим "Плейър" микроконтролерът първо ще се изключи, след това ще включи захранването на картата и ще я инициализира отново. В режим "Повикване", след като картата "замръзне", микроконтролерът просто ще изключи захранването на картата и ще "заспи". Ако на картата с памет няма WAV файлове, ще прозвучат три кратки звукови сигнала с нисък тон, след което в режим "Плейър" устройството ще премине към запитване за състоянието на контактите на бутоните, при натискане ще прозвучи същият предупредителен сигнал. В режим "Повикване", след сигнал за липса на WAV файлове, микроконтролерът ще изключи захранването на картата с памет и ще влезе вспящ режим. Ако параметрите на WAV файла не отговарят на изискваните стойности, например грешна честота на дискретизация, битова дълбочина и т.н., ще прозвучи нисък тон за една секунда и в двата режима ще се извърши преход към следващия файл.
За да съответстват на логическите нива на сигналите на микроконтролера и картата с памет, на резистори R7, R8, R10, R13-R15 са инсталирани делители на напрежение. Звуковият сигнал се генерира с помощта на вградения в микроконтролера PWM модул, чиято честота в това устройство е 78,12 kHz. Генерираният сигнал се изглажда от филтъра R12C10 и от контрола на силата на звука R17 отива към ултразвуковия честотен преобразувател, монтиран на чипа DA2 TDA2003.
Устройството се захранва от външно захранване с напрежение 9,12 V. Захранването на микроконтролера се стабилизира от вграден стабилизатор DA1 с изходно напрежение 5 V. На транзистора VT1 е монтиран регулатор на напрежение 3,3 V за захранване на картата с памет. Управлява се от микроконтролера през линиите на порта RA3. При ниско логическо ниво на тази линия транзисторът VT1 е затворен, напрежението на неговия емитер е нула. При високо ниво транзисторът е отворен и захранващото напрежение се подава към картата с памет. Напрежението в основата на транзистора се стабилизира от ценеров диод VD1.
Устройството възпроизвежда WAV аудио файлове (PCM, 16 kHz, 8 бита, моно), файлове с други параметри няма да се възпроизвеждат. Следователно, ако е необходимо, избраните звукови файлове се преобразуват с помощта на конверторна програма, преди да бъдат записани на картата с памет (имената на файловете могат да бъдат всякакви). Файловата система FAT16 не е подходяща за носители, по-големи от 2 GB, така че това е максималният размер за карта с памет, която може да се използва в устройството. Бяха тествани четири различни microSD картифирми и обеми, това са Kingston (1 GB), Kingmax (512 MB), Silicon Power (2 GB), Transcend (1 GB). MMC картите също трябва да работят, но не можах да го тествам поради липса на такива.
Външен бутон за повикване дублира SB1. С дълъг свързващ проводник, за да се елиминира влиянието на смущенията, се препоръчва да се инсталира кондензатор C с капацитет 0,1. 10 uF и е желателно да използвате екраниран проводник (екранът е свързан към общ проводник). Елементите R19 и C13 са инсталирани в случай на самовъзбуждане на ултразвуковата честота при висока честота. Захранването е нестабилизирано мрежово захранване с изходно напрежение 9,12 V и ток до 0,5 A.
Фиг. 2. PCB
Повечето от елементите са монтирани върху едностранна печатна платка от фолио от фибростъкло, чийто чертеж е показан нафиг. 2. Външният вид на монтираната платка със свързана карта с памет е показан нафиг. 3.Програмата за микроконтролера е написана на асемблер в среда MPLAB. Програмирането беше извършено с помощта на програмата IC-Prog 1.05D и JDM програмиста, описан в списание Radio, 2004, No. 2, p. 51 (А. Долгий. "Програмисти и програмиране на микроконтролери").
Село Султановка, Кигински район, Башкортостан