![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
artemkad
-
Постов
2 533 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные artemkad
-
-
Ахренеть... А это зачем?
В GSM-ке от Альтоники помнишь как надо было заполнять номера в нужные ячейки записной? Вот видать кто-то хочет еще раз пройтись по этим граблям.
-
И если Вы ставите внешний проц с линукс-системой и пишите туда охранную сигнализацию или жпс-трекер, то сколько бы вы не пыжылись, кроме улыбки, это ничего не вызовет.
Скажите, а что делает охранная система внутри модуля когда исчезает GSM-регистрация в сети? А сколько проработает GPS-треккер работающий как закладка от автономного питания? Скажите, если требуется контролировать аналоговый 3-х координатный акселерометр с частотой хотя-бы по сотне выборок в секунду на канал плюс 2-3 аналоговых величины - и как Ваш внутренний АРМ с этим справится?
ЗЫ. Это ведь простые задачи - 3-5 аналоговых входа, потребление на уровне десятка и меньше микроампер, независимая работа от наличия связи. Есть еще такая обычная задача для систем защиты - реакция на событие за единицы мкс.
ЗЗЫ. Что касается Линукс-системы во внешнем проце, такое решение принимают тогда, когда нужен пользовательский интерфейс и работа с дисками и сетевыми устройствами. Т.е. когда очередной раз повторять интерфейсы к типовым устройствам нет времени и желания.
-
Мой вывод : это глюк SIM300_V2_D
Вывод не оригинальный хоть и неверный.
-
Или достаточно соединить всего пару-тройку ног модуля с землей на плате (например, рядом с антенным выходом)?
Земляные ноги возле антенны - там протекает больше всего ВЧ токов. Использовать их для цепей питания - подкладывать себе большую свинью с которой потом будете героически сражаться.
Аналогично с цепью массы возле микрофонных цепей - ни в коем случае нельзя допускать даже возможность протекания тока питания модуля через эту ногу. Иначе с репением микрофона будете сражаться долго упорно и мало результативно.
-
Даже на двухслойке - никаких проблем. Главное тянуть две линии параллельно, не цеплять землю где попало, обязательно конденсаторов емкостью до 100рF (10 и 33pF) и если микрофон выносной обязательно заблокировать сам капсуль мелким конденсатором.
Может кто показать схему, как правильно подключить хотя бы микрофон но не в дифференциальном включении а так чтобы один из выводов микрофона был на массе.Никак. С вероятностью близкой к 100% в Вашем исполнении такая схема приведет к неустранимым помехам. Весь фокус в том, что массы бывают разные и на один правильный вариант есть десяток неверных.
-
2) А если на против Bluetooth модуля сделать вырез , по размерам сопоставимый с самим модулем , так что бы если смотреть с наружи модуль был "утоплен" в вырезе на 5мм ?
Любая щель легким движением руки может стать излучающей.
Вот только Вам стоит найти опытного радиотехника который поможет правильно разместить внутри корпуса элементы радиотракта для того, что-бы энергия приемопередатчика наилучшим образом уходила через щель, а не просто грела стенки корпуса.
-
Как-то натыкался на взаимовлияние каналов. Лечилось или полным отказом от sleep-режима или холостым преобразованием при переключении канала. Последнее как по мне проще всего делать выключением АЦП в начале прерывания, а затем включением при запуске. Тогда АЦП делает полный цикл в 25 тактов, что эквивалентно первому выброшенному.
Что-то типа такого:
#define ADCSRA_ON (1 << ADEN)|(1 << ADIF)|(1 << ADIE)|(1<<ADSC)|(1<<ADPS1) #define ADCSRA_OFF (1 << ADIF) // выключение АЦП __interrupt void ADC_INT (void) { unsigned int adc = ADC; // Считываем значение //..... ADCSRA = ADCSRA_OFF; //полное отключение АЦП //..... { //..... ADMUX = MUX_12V_IN; //..... } //..... ADCSRA=ADCSRA_ON; return; };
// Read the AD conversion resultword read_adc(byte adc_input)
{
ADMUX=adc_input;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion (ADSC)
ADCSRA|=0x40;
// Wait for the AD conversion to complete (ADIF)
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
// Обнуляем мл. бит
return ADCW&0xFFFE;
} // read_adc
Функция read_adc сгенерирована генератором кода CvAVR. Я её не менял.
Зря не меняли. Она оставляет работать АЦП после преобразования и при этом не стирает бит флага прерывания при запуске нового преобразования.
Откуда уверенность, что это:
// Wait for the AD conversion to complete (ADIF) while ((ADCSRA & 0x10)==0);
ловит результат этого преобразования, а не предыдущего - уже готового на момент входа в процедуру???
-
У меня как раз всё упирается в выбор опорного напряжения, т.к. датчик еще не готов и будет "затачиваться" именно под ИОН АЦП. Хотелось бы добиться максимальной точности в АЦП.
Дык вроде все понятно написано - сигнал и опорник не выше 2,4В. В т.ч. и усиленный сигнал (что вроде и так понятно). Иначе линейность и точность накрываются большим медным тазом...
Если выход датчика абсолютный - используй внутренний 1В, если относительный - Vcc/1.6 .
-
а включать BOD - тоже не вариант, потребление от батарейки возрастает почти на порядок
В новых AVR (PA) используйте коммутируемый BOD. Или прежде чем писать EEPROM проверяйте АЦП хватит ли питания для записи.
-
А эту ситуацию устранили? и каким образом? тупо многократным чтением EEPROM?
Мы небыли связаны с производителем этих систем. Поэтому устранили самым простым способом - перестали закупать эти модели... :twak:
-
А можно подробнее про это.
Подробнее - двусторонний брелок системы Pantera XS-3300....
Дело в том, что в устройстве, которое я сейчас делаю (пока работает одно, всего собираюсь сделать пять штук) я тоже читаю EEPROM только при подаче питания.А как правильно?
Правильно - регулярное обновление. Как вариант - выбрать некоторое событие (нажатие на кнопку или к примеру выключение зажигания) по которому устройство проводить через RESET - с полным обновлением памяти (кроме статусного регистра флагов) и битов портов.
ЗЫ. Ну и естественно если читать EEPROM однократно, то при любом RESET (в т.ч. и по WDT), а не только при подаче подаче питания.
ЗЗЫ. А вообще - если переменная в EEPROM не вижу смысла ее хранить в другом месте.
-
Ладно, пусть я не умею правильно обращаться с еепром (писать программы, разводить платы), но дело в том, что и в промышленных устройствах я несколько раз сталкивался с тем, что данные в eeprom портились. Учитывая, что я имел дело с очень небольшим количеством устройств, то проблема наверное все таки есть.
Причин может быть воз и маленькая тележка. Причем 99% - вина разработчика.
Думаете в RAM долговременно хранится лучше чем в EEPROM?Я не знаю, предполагаю, что лучше, но сомневаюсь, поэтому и спрашиваю.
Неправильно предполагаете.
Я лет пять назад столкнулся с ситуацией в которой устройство (брелок охранной автосигнализации) через несколько недель непрерывной работы (батарейка постоянно включена) терял некоторые данный в RAM(сериальный код блока). Разработчики этого устройства, которое выпускалось десятками тысяч штук сделали бредовую ошибку - читали содержимое EEPROM однократно, только при подаче питания.
Это вроде бы это у первых AVR были плохие внутренние супервизоры, а в новых вроде бы нормальные.У первых - супервизоров не было вообще.
-
Я чаще всего использую LM2931.
:D Не на много лучше 78L05 . Требует на выходе минимум 50мкФ иначе начинает звенеть и потребляет больше 11мА при низком входном напряжении.
ЗЫ. Топикстартеру - на будущее. Крайне плохой тон ставить на выходе стабилизатора емкость больше чем на входе. Это грозит обратным напряжением при выключении устройства и как следствие - выходом из строя некоторых типов стабилизаторов.
-
Если бы вообще устройство не работало возможно это бы и помогло. а получается что работает только на чтение.
Именно так и работает когда BOR выше питания... Сигнатура и фьюзы читаются, а вот стирания и записи никуда нет.
ЗЫ. Сам на эту особенность неделю назад напоролся. Ругался долго и заковыристо ;) .
-
Насколько я понимаю, вероятность порчи данных в eeprom AVR большая
Не правильно понимаете. Вероятность самопроизвольной порчи - крайне низкая. Порча происходит при попытках записи в условиях недостаточного питания или при банальнейших глюках ПО (к примеру при попытке чтения EEPROM в прерывании, без защиты содержимого служебных регистров, в момент ее записи в основном цикле)
При включении прибор читает копии уставки из еепром и если есть больше половины одинаковых, то проверяет лежат ли они в допустимых пределах, если да, то эта уставка присваивается переменной в RAM и дальше прибор с ней работает.Думаете в RAM долговременно хранится лучше чем в EEPROM?
-
Как вариант - запрограммированное в фьюзах напряжение BOR-a выше(или примерно равно, что с учетом допусков - так-же выше) чем напряжение питания.
ЗЫ. Поднимите питание и запишите более низкое напряжение.
-
Вроде capture работает по фронту импульса.
Работает по обоим фронтам (какой укажешь и можно менять по ходу дела) и по результату компаратора. Измерить длительность нуля - очень просто. Ловишь падающий, меняешь в прерывании каптура на нарастающий и запоминаешь текущее. В следующем прерывании вычитаешь текущее от запомненного = измерили.
Плюс можно компарами ставить ограничения на допустимые пределы длительности нуля/импульса.
-
Т.е. Вы предлагаете так сделать?
Запитайте МК не от зарядки, а от основного DC/DC плюс диод от АКБ на выход DC/DC.
Кстати затворы ключей прямо к контроллеру можно подключать? 3,3 В хватит для полного открывания?Нельзя. Для правильной схемы (с p-канальными полевиками) для открывания хватит, а вот закрыть не сможете. Для нарисованных n-канальных транзисторы будут в линейном режиме и на выходе будет не более 2,5В (схема - общий сток).
-
ILYAUL, считайте что хотите.
Чем вам не понравилось слово прямоугольный, не понимаю.
Наверное тем, что когда речь о "0" и "1" или о протоколе, они все прямоугольные... Это не информативно.
Надо знать как передается эти "0" и "1". Это может быть просто уровень, это может быть скважность, это может быть период(частота), это может быть что-то еще. Вариантов там воз и маленькая тележка.
И вообще, что Вы знаете о сигнале кроме того, что он прямоугольный?
ЗЫ. А вообще, самый разумный был совет - используйте запоминающий осциллограф или логический анализатор и внимательно рассмотрите сам сигнал. Пока половина советов тут сводилась к попытке сделать простейший лог. анализатор подручными средствами...
-
наверное Вы хотели написать ждать активности на ноге TXD модуля =).
... угу...
Там эта активность начианает проявляться до появления STATUS и если ответить этой активности(определенным образом) - модем уходит в доунлоад моде.Не начинается. Для перехода в режим программирования обмен в первые 50мс после подачи питания на модуль начинает внешнее устройство байтом синхронизации. Если байта нет, то модуль и не дергается...
Служебная последовательность “00 49 49 49 49 FF FF FF FF” проходит уже после Status-a. А если выключить автоопределение скорости, то можно ловить вполне вменяемый RDY ...
-
Купите нормальный модуль и перепаяйте, делов-то. Дешевле будет чем пересылать.
Поддерживаю... Сам один раз так сделал. Помогло...
-
Включили модуль импульсом на поверкей и ждем STATUS.
Для тех, кто любит экономить ноги - можно ждать активности модуля на его RxD Никто ведь не мешает включить приемник USART-а и ожидать служебную последовательность в качестве признака успешного включения модуля...
-
Диаграммы с временами. Там все понятно.
Р-р-р... Китайцы опять вернулись к неточным диаграммам включения. Лучше взять более старый вариант. Там отличие в том, что Delay считается от переднего фронта а никак не от заднего. Иначе по этой диаграмме получается, что пока не отпустишь Powerkey, Status не увидишь.
-
вижу что статус поднимается на очень короткое время (после процедуры включения), а потом опять падает в ноль и больше модуль не отзывается, только полный рестарт, со снятием питания и помогает. После снятия и подачи питания, все нормально происходит, все стартует, но вот после выключения никак. Уже второй вечер сижу ломаю голову
А модуль часом при этом не ругается - например на низкое питание? Или на высокое питание - если стоит в цепи обратной связи основного стабилизатора лишний кондёр.
Xmega и sleep
в AVR
Опубликовано · Пожаловаться
Очень похоже на подъем питания через защитные диоды проца с одной из его ног.