ESN
Участник-
Постов
20 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о ESN
-
Звание
Участник
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
1 069 просмотров профиля
-
Вот, поисковик выдал: Скорость передачи в бодах - это число изменений состояния сигнала последовательной связи за одну секунду; состоянием сигнала может быть напряжение, частота или фаза. Если сигнал меняет состояние один раз для каждого бита данных, то один бит/с равен одному боду. Например, модем с быстродействием 300 бод меняет свое состояние 300 раз в секунду.
-
Из современной тематики. Возьмем сигнал Caller_ID FSK из телефонии - импортный АОН. Его скорость передачи 1200 бод/c. и его формат - 1 start bod, 8 data bods, 1 stop bod. Сравним его с сигналом UART - 1 start bit, 8 data bits, 1 stop bit с такой же скоростью передачи 1200 бит/c. 1 бод информации по длительности равен 1 биту информации. Как из cигнала UART мысленно получить сигнал Caller_ID FSK? Там, где в сигнале UART присутствует 1, заполняем фрагментом синуса частотой 1200Hz/1300Hz. Соответственно, отрезки 0 - уровня сигнала в UART - это фрагмент синуса частотой 2200Hz/2100Hz. Терминология Bit против Bod - сводится к форме сигнала заполнения...? 😳
-
Разобрался с "непоняткой" - неправильно отсылал 18 байт $ff, соответствущих Mark Signal ( то что в литературе встречается, как ETSI 180+/-25 mark) Там ведь не должно быть Space -бод (никаких старт-бит), только Маrk-боды: 1 бод Mark, 8 информационных бод - 1, 1 бод Mark. В общем, на выходе HT9032C получил: 28 байт $55, 1 байт $f5 и Саller ID message, которое формировал посредством микроконтроллера AVR.
-
Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала caller FSK. Как частный случай, возьмем кварц частотой 3 686 400 Гц = 1200 (бит или бод -скорость передачи данных в формате FSK) *256 (ШИМ PWM 0-255) *12 (количество точек синуса при формировании бода Маrk или Space) и таблицу sin[] состоящую из 144 восьми разрядных значений. Для получения частот FSK используем ШИМ в который будут заноситься значения из таблицы sin с разными соответствующими частотам шагами: Шаг_Mark(1200)=12, Шаг_Mark(1300)=13, Шаг_Space(2100)=21, Шаг_Space(2200)=22. 12 последовательных значений с одинаковым шагом сформируют сигнал Mark или Space. Меняя значения кварца и длину таблицы sin[] можно сформировать эти сигналы более точно. Поправьте меня, если я где-то ошибся в своих "умозаключениях" по формированию cаller FSK. ;------------------------------------------------------------------ ; 1200(бод) * 12(точек синуса) * 256 (циклов ШИМ) = Кварц 3 686 400 Герц sinus_144: .db 128,133,139,144,150,155,160,166,171,176,181,186,191,196,201,205 .db 209,214,218,222,225,229,232,235,238,241,243,245,247,249,251,252 .db 253,254,255,255,255,255,255,254,253,252,251,249,247,245,243,241 .db 238,235,232,229,225,222,218,214,209,205,201,196,191,186,181,176 .db 171,166,160,155,150,144,139,133,128,122,116,111,105,100,95,89 .db 84,79,74,69,64,59,54,50,46,41,37,33,30,26,23,20 .db 17,14,12,10,8,6,4,3,2,1,0,0,0,0,0,1 .db 2,3,4,6,8,10,12,14,17,20,23,26,30,33,37,41 .db 46,50,54,59,64,69,74,79,84,89,95,100,105,111,116,122
-
Если установить в PRR бит PRSPI в программе или через фьюзы в Studio, то чип не будет соединяться с отладочным устройством через ISP интерфейс. Оживить чип можно только через HVP, сбросив этот фьюз.
-
Мозги лучше иногда включить... После деления частоты кварца для экономии потребления камень начинает работать на 2457600/16=153600 Гц( если изначально ХТАL=2,457мГц) или 3579545/8=447443Гц (если ХТАL=3,579 мГц). После этого нужно сформировать одну из синусоид верхних частот: 1209Гц, 1336Гц,1477Гц или 1633Гц и сверху наложить с фазовой задержкой одну из синусоид нижних частот: 697Гц, 770Гц,852Гц,941Гц, чтобы получить сигнал DTMF. На эти операции уходит ровно 153600/1209=127, 153600/1336=115, 153600/1477=104, 153600/1633=94 машинных цикла при частоте 153600 Гц (в знаменателе генерируемая частота) или 447443/1209=370, 447443/1336=335, 447443/1477=303, 447443/1633=274 при частоте 447443Гц. Так формируется сигнал DTMF c помощью ЦАПа R/2R. При XTAL=2,457мГц DTMF-сигнал, содержащий частоту 1209 Гц, строится по 20 точкам, 1336Гц-18 точкам, 1447Гц-16 точкам, 1633Гц-14 точкам за период. И какие могут быть таймера при таком решении задачи, если команда возрата из прерываниея (таймерного в частности) reti съедает 4 машинных цикла + 2 цикла на сохранение и восстановление слова-состояния. Замечу, когда кнопка тастатуры нажата - сигнал формируется непрерывно! Все это ради экономии потребления тока. Частоты этих кварцов делятся на верхние частоты почти без остатка - нацело, поэтому погрешности при формировании сигналов DTMF таким способом - нет или 1 Гц. P.S. Лучше эту тему убрать или перенести.
-
В первом случае, где упоминается I=0,45 mA речь шла о реализации программным путем 6-разрядного шима для DTMF набора на частоте вчетверо меньшей XTAL=3,579мГц. Конечно, что-то добавит периферия, возражений нет. Цифры 0,68mA и 0,8mA были получены на реальном образце в комбинации Atmega48+R/2R. Возможно, я сумбурно изложил предыдущее сообщение и это пояснение внесет ясность в его содержание.
-
Нет смысла засыпать при ногомахании, т.к. CPU Atmega48 при 3V и XTAL=3579545/4 потребляет 0,45mA. В несколько иной парадигме ногомахания, имея Atmega48 и ЦАП R/2R шестиразрядный, удалось, деля частоту кварца, получить электрические характеристики аналогичные микросхемы KP1008ВЖ7 (номеронабиратель): ток потребления при непрерывном формировании сигнала DTMF при ХTAL=3,579/8 мГц I=0,8mA (при ХTAL=2,457/16 мГц I=0,68mA), импульсном наборе - I=0,05mA. Режим сна тоже использовался. Погрешности по частоте - нет. Надеюсь, что убедил Вас - имеется класс задач исключительно для ASMa. :rolleyes:
-
Написание программы на ASMe не самоцель. Если частота процессора позволяет (потребление тока), то можно и поспать в перерывах между загрузками ШИМ-таймера, формируя DTMF-набор в частности. Иначе, бесконечный цикл из 64 фрагментов (6 разрядный ШИМ) каждый из которых отрабатывает 64 машинных цикла, в которых происходит смена 0 и 1, строго отслеживая по циклам их начало(0), конец(1),длительность импульса(0-1),плюс анализ критерий выхода из цикла. На Си написать такой цикл вряд ли получится: представляется,что будут проблемы с формированием начала импульса и собственно с формированием импульсов малой длительности. Т.е имея изначально XTAL=3,579 мГц, можно примерно тоже самое (погрешность 2 младших разряда) реализовать на частоте в 4 меньше.
-
Если это был номеронабиратель, то результат работы был неубедительным. Некоторые задачи можно решить только на АSMе. Например, вместо 8-разрядного аппаратного ШИМа, можно написать программу на ASMe, реализующую 6-разрядный ШИМ. Этим самым достигается уменьшение потребление тока в 4 раза.
-
Вот, если бы "Миландр" прикупил "Atmel", обреченности в заголовке темы не было бы. :bb-offtopic:
-
При F_PER =12 000 000 Гц и F_Baud=9600 bit/s чтобы минимизировать ошибки обмена следует положить регистр BSCALE=-3 , тогда BSEL станет равным $0269 - целым числом, что делает обмен стопроцентным. Вообще, следует сделать расчеты для всех значений BSCALE (от -7 до 7) и выбрать тот вариант, где BSEL имеет минимальную дробную часть. При записи в регистры управления вместо -3 следует писать $0d. Т.о получаем: USART_BAUDCTRLA=$69 и USART_BAUDCTRLB=$d2 - параметры задающие скорость.
-
Добрый день. Вы делали контрольно-измерительную аппаратуру или обычный телефон? При ШИМе в 32кГц синусоида частотой 1633Гц будет строится по 20 точкам(выборкам), а сигналы более низкой частоты и того больше. Нет ли здесь избыточности? В справочнике "Интегральные микросхемы" издательство "Додека" приводятся картинки с сигналами частот DTMF, которые выдают номеронабиратели(UM91531,UM1260,UM1261): там (стр.57,64) количество выборок равно 10. Хочу повторить номеронабтратель КР1008ВЖ27 на Attiny2313, но чтобы "влезть" по энергопотреблению нужно частоту поделить на 4 и сделать ШИМ 6-разрядным. Тогда синус 1477Гц (1633Гц у этого номеронабирателя нет) "нарисуется ШИМом по 9,5 точкам. Вроде, должны получиться характеристики, как у серийных номеронабирателей...
-
В продолжении темы полезная ссылка:Калькулятор для BSCALE-value,BSCALE-bitmap