Перейти к содержанию

ESN

Участник
  • Публикаций

    19
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ESN

  • Звание
    Участник

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    г.Псков
  1. CLIP для SIEMENS S150

    Разобрался с "непоняткой" - неправильно отсылал 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.
  2. CLIP для SIEMENS S150

    [quote name='ESN' date='Aug 21 2017, 11:07' post='1514326'] Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала 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[] можно сформировать эти сигналы более точно. Решил дописать это свое сообщение, вместо нового. Недавно раздобыл микросхему HT9032C - демодулятор V.23 (1300-2100 Герц) и Bell 202 (1200-2200 Герц), на которую подавал сигнал FSK по правилам изложенным выше. Правда, Atmega тактировалась кварцем 11 059 600 Герц и данные из табл. синуса по переполнению таймера выдавались в Port, cоединенный через ЦАП R/2R (10K) c HT9032C. Все замечательно работает, но осталась одна "непонятка". На демодулятор посылались следующие данные: заголовок(preamble) cостоящий из 30 байт $55 и 18 байт $ff и произвольные байты(сaller ID message). Каждый байт информации передавался так: 1 бод Space, 8 информационных бод соответствующих битам передаваемого байта,1 бод Mark, т.e. чтобы передать один байт информации нужно сформировать 10 бод. "Непонятка" заключается в том, что HT9032C выдает несколько искаженный заголовок: 28 байт $55, 1 байт $d5, 18 байт $ff. Если же эти данные заголовка разместить в информационном поле несколько раз, то никаких искажений при приеме в информационном поле не наблюдается, строго принимаются 30 байт $55 и 18 байт $ff. ??? В присоединенном файле хранятся таблицы синуса для ряда кварцев, частоты которых кратны числу 1200*256. Можно работать не по переполнению таймера микроконтроллера, а по совпадению, тогда номинал кварца можно понизить в несколько раз.
  3. CLIP для SIEMENS S150

    Тема старая, но ,на мой взгляд, не получившая логического завершения в части формирования сигнала 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
  4. Mega48PA TQFP32

    Цитата(GeorgyBey @ Jan 21 2016, 15:47) Может кому любителю пригодится : В погоне за сокращением потребления полез в регистр PRR (CPU) и установил "экономию" на USART и TWI - естественно "навернулся" обмен по последовательному протоколу, в том числе ISP. Если установить в PRR бит PRSPI в программе или через фьюзы в Studio, то чип не будет соединяться с отладочным устройством через ISP интерфейс. Оживить чип можно только через HVP, сбросив этот фьюз. Цитата• Bit 2 - PRSPI: Power reduction serial peripheral interface If using debugWIRE On-chip Debug System, this bit should not be written to one. Writing a logic one to this bit shuts down the Serial Peripheral Interface by stopping the clock to the module. When waking up the SPI again, the SPI should be re initialized to ensure proper operation.
  5. Ну , что прощаемся с Atmel ?

    Цитата(Эдди @ Sep 30 2015, 10:54) Руки бы поотрывал ... Мозги лучше иногда включить... После деления частоты кварца для экономии потребления камень начинает работать на 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. Лучше эту тему убрать или перенести.
  6. Ну , что прощаемся с Atmel ?

    Цитата(zltigo @ Sep 29 2015, 15:37) Вообще-то в ногомахании описанного Вам типа просто НЕЛЬЗЯ засыпать, иначе ногами махать будет НЕКОМУ. Вообще-то она потребляет его в РАБОЧЕМ режиме, то есть пока пересчитывает и загружает PWM. Между этими загрузкам спит. Средний ток уже МЕНЬШЕ. Это НЕ заслуга ногомахания, а заслуга появление дополнительного железа - внешнего DAC. Ушла необходимость поддерживать высокую тактовую ядра ради PWM. С цифрами что-то совсем не то. Было 0.45, после улучшения стало 0.68mA Задач? Задач - нет, поскольку я сам прошел долгий путь от ASM-ов до сегодняшнего понимания. На ASM только отдельных кусочков в десятки команд максимум. О чем собсвенно уже не раз писал. В первом случае, где упоминается I=0,45 mA речь шла о реализации программным путем 6-разрядного шима для DTMF набора на частоте вчетверо меньшей XTAL=3,579мГц. Конечно, что-то добавит периферия, возражений нет. Цифры 0,68mA и 0,8mA были получены на реальном образце в комбинации Atmega48+R/2R. Возможно, я сумбурно изложил предыдущее сообщение и это пояснение внесет ясность в его содержание.
  7. Ну , что прощаемся с Atmel ?

    Цитата(zltigo @ Sep 28 2015, 19:11) То есть была произведена замена режима проснулся, загрузил, спать... контроллера на на все время работает, но на 4 раза меньшей тактовой. Поскольку фаза сна все-же есть, то уменьшение потребления в 4 раза таки не будет. Нет смысла засыпать при ногомахании, т.к. 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.
  8. Ну , что прощаемся с Atmel ?

    Написание программы на ASMe не самоцель. Если частота процессора позволяет (потребление тока), то можно и поспать в перерывах между загрузками ШИМ-таймера, формируя DTMF-набор в частности. Иначе, бесконечный цикл из 64 фрагментов (6 разрядный ШИМ) каждый из которых отрабатывает 64 машинных цикла, в которых происходит смена 0 и 1, строго отслеживая по циклам их начало(0), конец(1),длительность импульса(0-1),плюс анализ критерий выхода из цикла. На Си написать такой цикл вряд ли получится: представляется,что будут проблемы с формированием начала импульса и собственно с формированием импульсов малой длительности. Т.е имея изначально XTAL=3,579 мГц, можно примерно тоже самое (погрешность 2 младших разряда) реализовать на частоте в 4 меньше.
  9. Ну , что прощаемся с Atmel ?

    Цитата(zltigo @ Sep 27 2015, 19:38) На самом деле это НЕ надо было делать на AVR, но уж больно знакомые заказчики поросили - типа у них есть специалисты по AVR - они потом сопровождать будут, да и заказ был "закрытый" и им проще для AVR замену протащить. После, кстати, никаким специалистам ничего "cопровождать" не пришлось. Это была "дембельская" работа. С тех пор все, AVR для меня вообще умер. Амен! Если это был номеронабиратель, то результат работы был неубедительным. Некоторые задачи можно решить только на АSMе. Например, вместо 8-разрядного аппаратного ШИМа, можно написать программу на ASMe, реализующую 6-разрядный ШИМ. Этим самым достигается уменьшение потребление тока в 4 раза.
  10. Ну , что прощаемся с Atmel ?

    Вот, если бы "Миландр" прикупил "Atmel", обреченности в заголовке темы не было бы.
  11. UART в Xmega

    При 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 - параметры задающие скорость.
  12. Генерация DTMF - требуется помощь.

    Цитата(Make_Pic @ Nov 3 2005, 10:28) - Проблема в уровне шумов (конкретно нелинейные искажения/гармоники), что требует современный стандарт - где-то -33дБ. Дык вот - 16 кГц маловато для ШИМ. Мы делали 32кГц. Второе - простой RC фильтр не пройдет, нужно 3/4-й порядок. Добрый день. Вы делали контрольно-измерительную аппаратуру или обычный телефон? При ШИМе в 32кГц синусоида частотой 1633Гц будет строится по 20 точкам(выборкам), а сигналы более низкой частоты и того больше. Нет ли здесь избыточности? В справочнике "Интегральные микросхемы" издательство "Додека" приводятся картинки с сигналами частот DTMF, которые выдают номеронабиратели(UM91531,UM1260,UM1261): там (стр.57,64) количество выборок равно 10. Хочу повторить номеронабтратель КР1008ВЖ27 на Attiny2313, но чтобы "влезть" по энергопотреблению нужно частоту поделить на 4 и сделать ШИМ 6-разрядным. Тогда синус 1477Гц (1633Гц у этого номеронабирателя нет) "нарисуется ШИМом по 9,5 точкам. Вроде, должны получиться характеристики, как у серийных номеронабирателей...
  13. USART xmega

    В продолжении темы полезная ссылка:Калькулятор для BSCALE-value,BSCALE-bitmap
  14. ATXMEGA - запуск от внешнего таймера

    Спасибо. Глядя на Figure 10-1. The clock system,clock sourse, and clock distribution. в Manual Xmega интуитивно соглашаюсь с Вами. Как-то этот случай , запуск от внешнего генератора на частотах > 16 Мгц, неявно описан в руководстве. Уважаемый модератор, может стоит изменить в названии темы слово "таймера" на "генератора"?
  15. ATXMEGA - запуск от внешнего таймера

    Цитата"Помогите запустить ATXMEGA128A1 от врешнего кварцевого генератора 25 МГц!" И все же, тактирование Xmegi от внешнего генератора 25 МГц это штатный режим работы или он из области overclocking?