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

artemkad

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    13

Весь контент artemkad


  1. Че непонятно в "размер buf деленный на размер его нулевого элемента"? Это классика для начинающих. Впрочем, цикл по всему содержимому массива полезная вещь вплоть до того, что я когда-то такое забабахал в свои Сишные проекты через #define LOOP_ARRAY(n,array) for(U8 n=0; n<(sizeof(array)/sizeof(*array)); n++ ) /// пример из примера выше int buf[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int sum = 0; LOOP_ARRAY(i, buf) { sum += buf[i]; } А вот лямда-выражения - в топку, абсолютно интуитивно непонятный инструмент.
  2. Эпоксидка не усаживается, а значит зерна порошка не стягиваются, а потому чаще всего будет "индейская национальная изба"
  3. И не дай Бог они уйдут или умрут - у тех кто будет продолжать проект будет наблюдаться вечный геморрой... Да вроде и в Си можно объявлять где угодно, не забывая, впрочем о контейнерах ограниченных {}
  4. Ну так суперцикл тут SystemTask() #define SYSTEM_TASK(fun) fun , __root __flash void (*system_task_func_table[]) (void) = { #include "task_list.h" }; #define MAX_SYSTEM_TASKS (sizeof(system_task_func_table)/sizeof(void(*)(void))) #pragma inline = forced static inline void SystemTask (void) { for (char t=0; t<MAX_SYSTEM_TASKS; t++) { // запуск системных задач (*system_task_func_table[t])();// запуск задачи } //#include "task_list.h" } #undef SYSTEM_TASK И там внутри каждой задачи можно делать как угодно...
  5. А че его писать? __no_init volatile unsigned char task_timer_flags; __no_init unsigned char work_task_timer_flags; // рабочий регистр текущих обрабатываемых флагов /// Диспетчер задач void DispatchTask (void) { { __disable_interrupt(); work_task_timer_flags=task_timer_flags; task_timer_flags=0; // все таймера обработаны __enable_interrupt(); } SystemTask(); for (char t=0; t<MAX_TASKS; t++) { // запуск отключаемых задач if(work_task_timer_flags & task_table[t].mask) { // есть ли нужный таймер if ( task_table_state[t]> 0x01) { // отсчет до запуска task_table_state[t]--; } } if ( task_table_state[t]== 0x01) { // задача требует запуска task_table_state[t]--; if(task_table[t].fun) {// запускаю если такая задача существует (*task_table[t].fun)();// запуск задачи } } } } ...
  6. Кстати, стоит заметить почему 100pF - эти кондеры имеют частоту последовательного резонанса примерно в нижнем диапазоне GSM. Соответственно, он там работает наилучшим образом. При этом на верхнем диапазоне он работает хуже, но там и мощность передатчика в 2 раза ниже. А вот нарисованная в даташите "батарея" конденсаторов (10+33+10посл10+33посл33) как раз потому такая и нарисована, что там резонансы как на верхнем, так и на нижнем и на 2.4ГГц. Оно конечно правильнее, вот только занимает много места и как результат в схему влезают индуктивности соединяющих дорожек(1нГн на 1мм), что негативно сказывается на результате.
  7. Значит главная причина - попадание GSM-сигнала внутрь микрофона с последующим детектированием его на внутреннем полевике. После чего сигнал становится неотличимым от родного и все дальнейшие фильтры его успешно пропускают.
  8. Это плохое решение. На частотах 800+МГц лучше использовать NP0, а помимо этого частота последовательного резонанса 220пФ находится ниже 700МГц отчего его ESR в нижнем диапазоне GSM раза в 3 хуже чем у 100pF , а потому последовательно 2x220пФ в разы хуже одного 100pF. Даже просто один 220pF лучше последовательно включенных. Можете впаять 100pF один на контакты на самом микрофоне(не на выводы, а на контакты к которым они припаяны) и два между массой контакта SIM-карты и контактами MIC+ и MIC- на плате - примерно как на рисунке
  9. Антенна - нужное дело т.к. это снизит воздействие на элементы платы, а вот бусины в цепи микрофона при выводном монтаже вероятнее всего ничего не поменяют. Их задача отечь ВЧ-сигнал от входа, но т.к. они будут припаиваться на штыри, ничего сигналу не помешает наводиться на сами штыри уже после бусин.
  10. Вроде с точностью до наоборот. Там не чувствительность, а gain level (уровень усиления) - от 0дБ при 0 до +22.5дБ при 15
  11. Надеюсь запятую после нуля не забыл... А это вопрос к создателям шилда - который канал они вывели на ноги.
  12. А чего антенна не подключена? Надеюсь пара 100pF кондеров на модуле намостырили - там сейчас вся плата работает суррогатной антенной и пускать результат на вход усилителя чревато... Можно с ножек штырей на крышку экрана. Обычно предпочитаю Sim800C. Там ноги под пайку удобнее...
  13. "С одной банки". Т.е. все элементы в параллель для исключения балансира.
  14. Задача этих конденсаторов - не дать паразитно принятому сигналу на частоте 800/1800 МГц попасть на входные каскады микрофонного усилителя внутрь модуля. А тут они мало того что не выполняют требуемое, так еще и подключены к источнику помехи. Помеха там оттого, что от места спайки проводов примерно до 27 ноги модуля протекает 2А который создает некоторое напряжение которое и прикладывается к микрофонному входу конденсаторами. Потому я и написал, что "если возможности (подключиться к 8 ноге) нет, то лучше от тех конденсаторов отказаться". Можно их попробовать примостырить на самом модуле. ЗЫ. К конденсаторам C27,30, 29, 32 это тоже относится... Тайм-слот(импульс передатчика) у GSM 0.577мс, 8 таймслотов это кадр, отсюда период повторения 8*0.577=4.616мс.
  15. Да. Причем желательно отдельной дорожкой подключенной к ножке GND рядом микрофонными ногами модуля. Цель - по этой дорожке не должно протекать никаких токов кроме токов связанных с микрофоном. Если такой возможности нет, то лучше вообще отказаться от этих конденсаторов чем подключать их к силовому GND. Аналогично с защитными TVS. ЗЫ. И да, примерно аналогичная ситуация с массой SIM-карты которая периодически вылазит из-за перехода карт на 1.8В питание.
  16. Вы этим увеличили реактивное сопротивление цепи питания, а значит снизили импульсный ток протекающий как по дорожке питания, так и по полигону массы. Т.е. это снижает помеху по п.2. Хорошо, но недостаточно т.к. дальше увеличение реактивности грозит внезапным провалом питания на модуле т.к. имеющийся там тантал весь импульсный ток не вытянет. Впрочем, можно попробовать в параллель танталу подпаять что-то low esr на пару тысяч мкф, но как по мне это что-то наподобие вырезания гланд через задний проход...
  17. Боюсь тут тоже может быть проблема и даже не одна. В общем, помеха на микрофон может возникать от 2 причин. 1. Проникновение сигнала передатчика на частоте 800/1800 МГц (дорожки на плате и ножки микрофона вполне себе являются хреновенькими антеннами) непосредственно внутрь микрофона с последующим детектированием его на полупроводнике. Если подобное происходит - никакие трансы уже не спасут т.к. этот сигнал уже неотличим от родного. Борьба с этим - шунтирование высокочастотным конденсатором полупроводника на микрофоне и прокладка трасс к микрофону максимально рядом(парой дорожек) и желательно без петель и дырок (на фото трасса к микрофону проложена откровенно хреново). Плюс нежелательно запускать сигнал на вход микрофонного усилителя модуля(для этого ставят мелкие кондеры на микрофонную массу модуля), но там симметричный вход, так что это не столь критично. 2. Возникновение помехи из-за разницы напряжения массы микрофонного входа модуля и массы в точке подключения запитки микрофона или микрофонного внешнего усилителя. Разница напряжений возникает из-за того, что по цепи массы платы, активное и реактивное сопротивление которой не равно нулю, протекает импульсный ток 1-2А питания передатчика , что и приводит к помехе. С этим можно бороться разделением масс на силовую и микрофонную, микрофонным трансформатором(гальванической развязкой питания микрофона от передаваемого сигнала). Ну и конечно максимально симметрично ставить блокирующие конденсаторы и защиту на массу помня что когда речь о мВ две точки на одном полигоне по которому течет ток это точки с разными напряжениями Ну и плюс возможная еще причина - наводка(емкостная, магнитная или радио) от рядом стоящего преобразователя. Это в целом разновидность варианта 1. только частоты ниже, а потому в параллель помимо 100pF возможно понадобиться что-то покрупнее (10 000 pF) Обращаю внимание - первая причина есть всегда и потому 100pf на микрофоне это безусловное требование при любой схеме ЗЫ. Ну и главная проблема того шилда - у него не выведена наружу микрофонная масса, а потому любое простое решение использующее силовую массу чревато см. п. 2.
  18. Там микрофон вообще не запитан, потому кондеры - наименьшая проблема. Плюс электролит на массу которая болтается в такт с потреблением передатчика. В общем -она и не должна работать. На импульсный преобразователь рядом с ногами микрофона или как подключена антенна? Да, оценил... Пациенту нужен уход врача (с).
  19. Я правильно понимаю - на фотке плата к которой припаян ардуиновский шилд на 800L и видимые штыри - это его? Если это так, то массой платы для подключения микрофона пользоваться нельзя - там эта масса объединена силовой на которой всегда есть помеха. Отюда единственный способ подключения микрофона - конденсатор на микрофон и две ноги микрофона напрямую на штыри гребенки. Никаких других подключений к этим контактам не должно быть.
  20. Вполне рабочие микрофоны, но как минимум на контактные площадки микрофона надо припаять 100pF SMD конденсатор размером 0603 или 0805. Корпус не должен быть подключен на общий полигон - только на микрофонный вход модуля(можно через пару мелких резисторов если с кабелем) ну и парочку мелких емкостей на нулевую ножку рядом с микрофонными входами. На это почти наверняка можно не смотреть - тут наводка от разных точек подключения массы осциллографа и массы микрофона. Смотрю на фотку - конденсатора на микрофоне не вижу. Зато вижу что он подключен к плате через два элемента подозрительно смахивающие на конденсаторы. На кой они там? Кроме того, что это за штыри к которым все припаяно - куда дальше они идут? ЗЫ. На схеме источник переменного сигнала это не микрофон, а внешний генератор(к примеру с ЦАП контролера). Микрофон на них это RL
  21. Да почти любой электретный на 1.5...2.2кОм. Изначально это был OBO-04FN-0B, какой сейчас - даже не представляю, но примерно аналогичный. В мобилках часто стоят микрофоны с внутренним АЦП и цифровым выходом - с такими Sim800 не работает. Опять-же, на плате мобилки условия по экранированию лучше чем микрофон подключенный через метр-полтора неэкранированной пары проводов. Указанные в даташите емкости тоже подпаяны? Почти всегда это ОЧЕНЬ большое заблуждение. Две правильные схемы могут крайне по-разному работать при разной разводке.
  22. Схема в даташите и она вполне рабочая. Остальное - правильная разводка и размещение компонентов.
  23. Не, этот хуже. С одной стороны это просто проходной полевик, а с другой - более дорогая редкость которую потом хрен найдешь. 74VHC1GT50 можно и по центу найти(по цене транзистора).
  24. Через сколько десятилетий это произойдет? Оборудование это тоже конечная продукция - есть куча китайских фирм на него заточенных. Помимо этого продают детали и изготавливают платы. Так что пока есть деньги проблем особо не предвидится.
×
×
  • Создать...