Jump to content

    

artemkad

Свой
  • Content Count

    1602
  • Joined

  • Last visited

Everything posted by artemkad


  1. Там диапазон от 40МГц... 10-15 при физических габаритах 2мм никак не позволят замедлить в 1000 раз
  2. График есть, вот только он как-то с параметром "50 Ом" из таблички не согласуется. На графике импедансов там явно график хреновой индуктивности. Тогда как приведенное мной устройство может работать от 40МГц - никогда не поверю, что там электрическая длина больше 2 метров...
  3. Ну, я бы не сказал что это он. Это его подобие на четвертьволновых отрезках кабелей и т.к. четвертьволновыми они являются только для одной частоты, то все остальные картинки именно с этим и связаны. Резистор это элемент с сосредоточенными параметрами. Он имеет просто сопротивление 50 Ом, а никак не волновое сопротивление. С чего вдруг? Любой трансформатор является заодно и трансформатором сопротивления с коэффициентом трансформации K². Фаза сдвигается, естественно полюсовкой обмоток. Я не говорю о согласовании на четвертьволновых отрезках, речь о широкополосных балунах. К примеру о таких: https://datasheet.lcsc.com/szlcsc/1809301220_EMTEK-BLN2012-500-2P-T_C252110.pdf
  4. Откуда взяться волновому сопротивлению у трансформатора размером 2мм на 1мм на частоте 800МГц (длина волны 36 см)?
  5. Есть BALUN-ы 75:75 Ом, а есть 50:50 Ом - в чем их отличие? Вроде и там и там соотношение 1:1 и по идее оба из 50 Ом сделают 50 Ом. Так почему их различают?
  6. Кстати, а почему рекомендуют чистые TVS вместо сборка диодов+TVSпо питанию ал-ля USBLC6-4 ? Так ведь точно никаких проблем с емкостями не предвидится ввиду мизерности емкостей диодов. Практика показывает, что лучше, что-бы конструкция устройства не допускала попадания пальцев пользователей к контактам Sim-кары ни в каком виде. Потому книжки тут не лучший вариант. TVS там исключительно из-за пальцев на контактах и ставят.
  7. Без малейшего понятия. Та которая у вас была примерно пол года назад на 28ML. Судя по тому, что вижу в логах пока особых проблем со временем не обнаружено. Просто появилось желание ускорить старт после подачи питания вот и возник вопрос.
  8. Модуль Sim28|68 - батареек внутри нет, потому на RTC даже не надеюсь...
  9. Да вроде наличие спутника далеко не сразу дает реальное время. Т.е. это как-бы не признак. С другой стороны можно конечно дождаться координат и тогда уж точно время правильное. Но хотелось-бы пораньше...
  10. Никто не подскажет, можно ли от GPS добиться когда он начал передавать реальные дату/время, а не январь 1980-го?
  11. Отдельная дорожка к которой подключены масса карточки, масса защиты VD3, масса кондера С8 и, в данном случае 13 нога модуля. В принципе к общему полигону массы это можно не подключать или подключать только на 13 ноге модуля. Смысл всего этого - через эту цепь не должен течь никакой ток кроме тока карточки.
  12. Упс, а слона VD2+C2 подключенные рядом с массой карточки я то и не заметил.... Да, с массой стабилизатора там тоже косяк. Если стабилизатор на 1+МГц, не удивлюсь, что и ему такая разводка пришлась не по вкусу и он чудит.
  13. Судя по схеме сверху подается питание, ток по полигону проходит сквозь всю плату и разница между массой карточки взятой сверху и массой модуля прямо прикладывается ко всем сигналам карточки. Как говориться - успехов с низковольтовыми картами....
  14. Ну, я ж не мог предположить, что кто-то в здравом уме мог предположить, что я говорю про весь код, а не про время работы функции. Более того, в следующем сообщении я уточнил:
  15. Я даже не могу себе представить на кой может понадобиться гарантии неизменности аргумента функции за её пределами. Если это аргумент функции, то логично, что он и меняется за её пределами. Спорно утверждение - к примеру, выше уже упомянули самопрограммирование которым функция вполне способна поменять содержимое константной строки расположенной во флеше. И это не будит ни хаком, ни нарушением правил
  16. Забавно у вас отношение к уважительности. Оказывается это не аккуратное цитирование, не выслушивание оппонента, не внимательное чтение ответов, не ответы по делу. Оказывается уважительность это обращение в множественном числе, появившаяся в русском языке из правил обращения подчиненных чиновников Царской России к вышестоящему начальству. Так может сразу вернуть и обращения "милостивый государь", "ваше превосходительство" или "ваша светлость"? PS. Кстати, вы в курсе, что этим "персональным обращением" сами формально нарушили пункт 2.1а данного форума? Я где-то говорил что линкера для АВР нет? Где?
  17. Это верно только для платформ в которых ко всей памяти одинаковый способ доступа(ARM, x86). Т.е. компилируемый код для доступа к ОЗУ и ПЗУ одинаков и отличается только адресами. К примеру, для AVR это не так. Потому ему там совсем не "по барабану". Значит твой пример компилировался для ARM или x86. Для AVR вылезло бы предупреждение, потому как его ядро использует разные команды для доступа к разным типам адреса. Это вообще не касается того, что мы там обсуждали. Мы там обсуждали изменяемость значения во время работы функции или иначе говоря - наличие и отсутствие квалификатора volatile.
  18. Если компилятор не размещает константы во флеше, то не будет даже предупреждения. А с чего вдруг быть ошибке - тем более не ясно. Функция объявлена как указатель на константную строку, а значит она гарантированно не поменяет содержимое строки. Так с чего вдруг должна быть ошибка от указателя на переменную? Меняться-то эта строка будет за пределами функции, а не во время её работы. Читай внимательно, а не цитируй часть фразы ради хайпа.
  19. Само собой раз функции передается указатель на константные строки она их менять не должна. При попытке вылезет уже не предупреждение, а ошибка.
  20. Не меняется во время работы этой функции. Да, естественно, меняться может, но компилятор будет строить код исходя их того, что не изменится и потому может как убрать кучу, с его точки зрения, лишнего кода, так и лишние чтения из памяти удовлетворяясь временными копиями в регистрах. Впрочем, если это CV для AVR ругается скорее всего потому, что передается адрес из другого адресного пространства. Т.е. функция ждет адрес на флешу, а ей дают адрес из оперативки. Если-же что-то иное и константные строки в оперативке, а ругается только на volatile, то достаточно привести тип, но иметь ввиду, что функция не ждет, что содержимое может вдруг само поменяться(ну или принудительно запретить прерывания на время работы функции что-бы гарантировать неизменность).
  21. Для компилятора - перестанет. Это будет особая область памяти с которой нужно явно указать что делать можно, а что нельзя. Если этот аппаратный контроллер начнет менять содержимое по своему усмотрению - несомненно держать там можно будет только volatile-переменные. Впрочем, аппаратный контроль четности этого не делает. Т.е. ты утверждаешь, что в ARMах любая переменная в ОЗУ в любой момент времени может сама произвольным образом изменить свое значение независимо от действий программы?
  22. Неизвестно компилятору. Например, ты сам-то сможешь однозначно сказать что получишь в ответ если прочитаешь только что записанный регистр FIFO? FIFO это совсем не просто область ОЗУ, а область ОЗУ с кучей собственной логики работы которая, в частности, приводит к тому, что читаемые программой данные не совпадают только что записанными. Т.е. с точки зрения компилятора это вообще не ОЗУ. Конечно обязательно. Даже если ничего не изымается чтение только что записанного в результате дает нечто совсем другое и зачастую даже из другого FIFO. Т.е. содержимое ячейки меняется самостоятельно по независимым от компилятора законам. Это где-ж я такое написал? Пока содержимое ОЗУ зависит исключительно от логики программы - это обычные переменные. Такие переменные можно хоть в вечный цикл засунуть - они не поменяются пока контроллер не стукнуть чем ни будь тяжелым(например снятием питания). Как только они начинают зависеть от внешних факторов, событий или логики периферии контроллера о которых компилятор ничего не знает, эти уже volatile. ЗЫ. Впрочем - volatile много не бывает ;)
  23. Как это - меняются регистры FIFO. Причем как они меняются компилятору создающему код ничего не известно. И их содержимое зависит не только от того, что туда записано, но и от внешних событий изымающих содержимое очереди и создателей этого самого FIFO и/или UART/SPI/etc. Естественно туда обязателен volatile именно из-за этого.
  24. Только потому. Это и есть "регистры меняются исходя из логики работы контроллера" о которой компилятор в общем случае ничего знать не может.
  25. Регистры периферии так-же могут меняться в любой момент без ведома этой задачи. Эти регистры меняются исходя из логики работы контроллера или внешних событий, а не только из логики программы. Потому и volatile.