<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Нерабочие схемы</title><subtitle>Проверяем схемы. Объясняем, почему не работают. Отбираем рабочие</subtitle><author><name>Нерабочие схемы</name></author><id>https://teletype.in/atom/badradio</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/badradio?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@badradio?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/badradio?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-08T03:07:18.652Z</updated><entry><id>badradio:electroshock</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/electroshock?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Нерабочий электрошокер Борисенко aka ICE</title><published>2026-06-06T14:10:48.538Z</published><updated>2026-06-06T14:43:52.625Z</updated><category term="proklyatye-avtory" label="Проклятые авторы"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/85/64/8564ca2b-c90e-49c9-a1f2-6c41dbbffe8f.gif&quot;&gt;Эта незаконченная статья не содержит рабочей схемы шокера, а просто разоблачает одну нерабочую схему на КУ221, КТ837, КТ117.</summary><content type="html">
  &lt;p id=&quot;qRLA&quot;&gt;Эта незаконченная статья не содержит рабочей схемы шокера, а просто разоблачает одну &lt;strong&gt;нерабочую схему&lt;/strong&gt; на КУ221, КТ837, КТ117.&lt;/p&gt;
  &lt;figure id=&quot;S8cX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/85/64/8564ca2b-c90e-49c9-a1f2-6c41dbbffe8f.gif&quot; width=&quot;619&quot; /&gt;
    &lt;figcaption&gt;Нерабочий электрошокер Борисенко aka ICE 75 кВ 50 кВт на КД209, КУ221, КТ837, КТ117&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;zOwv&quot;&gt;Вот как хорошо &lt;strong&gt;эта ерунда&lt;/strong&gt; разошлась по сети:&lt;/p&gt;
  &lt;ol id=&quot;GlRj&quot;&gt;
    &lt;li id=&quot;eNuW&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20020317073026/http://www.iceinet.ru/schems/&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20020317073026/http://www.iceinet.ru/schems/&lt;/a&gt; (сайт автора)&lt;/li&gt;
    &lt;li id=&quot;HJJe&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20011211085621fw_/http://icenet.narod.ru/SC/sc000190.htm&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20011211085621fw_/http://icenet.narod.ru/SC/sc000190.htm&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;OhdM&quot;&gt;&lt;a href=&quot;https://www.qrz.ru/schemes/contribute/icenet/SC/sc000190.shtml&quot; target=&quot;_blank&quot;&gt;https://www.qrz.ru/schemes/contribute/icenet/SC/sc000190.shtml&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;eJb9&quot;&gt;&lt;a href=&quot;https://www.qrz.ru/schemes/contribute/constr/elshock.shtml&quot; target=&quot;_blank&quot;&gt;https://www.qrz.ru/schemes/contribute/constr/elshock.shtml&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;4hb7&quot;&gt;&lt;a href=&quot;https://handicraftcman.blogspot.com/2013/12/blog-post_23.html&quot; target=&quot;_blank&quot;&gt;https://handicraftcman.blogspot.com/2013/12/blog-post_23.html&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;0D0A&quot;&gt;При указанных на схеме параметрах трансформатора Т1 (по 10 витков в коллекторных обмотках и по 5 витков в базовых) на базовой обмотке будет половина напряжения питания.&lt;/p&gt;
  &lt;p id=&quot;Q44p&quot;&gt;Пусть на диоде VD1 (VD2) и базовом переходе VT2 (VT1) упадет еще 1.5В, тогда при напряжении питания 9В через резистор 10 Ом потечет ток (9/2-1.5)/10 = 0.3 А.&lt;/p&gt;
  &lt;p id=&quot;BoHz&quot;&gt;Из-за чрезмерного базового токо транзисторы не будут успевать выходить из насыщения, и потечет «сквозняк».&lt;/p&gt;
  &lt;p id=&quot;UrSK&quot;&gt;Во время испытаний &lt;strong&gt;потребляемый ток на холостом ходу&lt;/strong&gt; (без высоковольтной части) был &lt;strong&gt;0.8 А&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;HUas&quot;&gt;Высоковольтный трансформатор в этой конструкции не секционирован, поэтому &lt;strong&gt;пробой обеспечен&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;61Z8&quot;&gt;За распространение нерабочих схем автор &lt;strong&gt;Андрей Александрович Борисенко&lt;/strong&gt; aka &lt;strong&gt;ICE&lt;/strong&gt; награждается &lt;a href=&quot;https://teletype.in/@badradio/plagiat#Xe73&quot; target=&quot;_blank&quot;&gt;почетным местом&lt;/a&gt; в пантеоне фуфлыжников.&lt;/p&gt;
  &lt;p id=&quot;1eTf&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;GAVZ&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ukwk&quot;&gt;Некоторые соображения о том, &lt;strong&gt;каким должен быть качественный самодельный шокер&lt;/strong&gt;, представлены здесь:&lt;/p&gt;
    &lt;p id=&quot;KhMq&quot;&gt;&lt;a href=&quot;https://vpayaem.ru/circuits_hi_volt_shocker.html&quot; target=&quot;_blank&quot;&gt;https://vpayaem.ru/circuits_hi_volt_shocker.html&lt;/a&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;XE9D&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;NabT&quot;&gt;(Продолжение следует)&lt;/p&gt;

</content></entry><entry><id>badradio:pocsag</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/pocsag?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Исправление ошибки в HackRF Pocsag GUI (PagerSender)</title><published>2026-06-06T10:44:09.169Z</published><updated>2026-06-06T12:41:53.144Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/ab/bb/abbb65a1-24dc-4567-bc6b-7e9610b3a47d.png"></media:thumbnail><category term="radiostancii" label="Радиостанции"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/5c/70/5c70f2c9-ac37-42ec-b51b-09d5d105739a.png&quot;&gt;Для отправки сообщений на старый пейджер из Windows через HackRF One есть замечательная программа HackRF POCSAG Sender v1.0, но, как всегда, она не работает.</summary><content type="html">
  &lt;p id=&quot;aQZ9&quot;&gt;Для отправки сообщений на старый пейджер из Windows через &lt;a href=&quot;https://greatscottgadgets.com/hackrf/one/&quot; target=&quot;_blank&quot;&gt;HackRF One&lt;/a&gt; есть замечательная программа &lt;a href=&quot;https://github.com/goshante/hackrf-pocsag-gui&quot; target=&quot;_blank&quot;&gt;HackRF POCSAG Sender v1.0&lt;/a&gt;, но, как всегда, она не работает.&lt;/p&gt;
  &lt;p id=&quot;tqWZ&quot;&gt;При любом выборе девиации частоты (Bandwidth) &lt;strong&gt;сообщения на пейджер приходят с ошибками&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;8yTb&quot;&gt;Оказалось, что скорость передачи данных рассчитывается неправильно, и чтобы она максимально точно соответствовала стандарту (512, 1200 или 2400 бит/с), надо немного занизить константы.&lt;/p&gt;
  &lt;p id=&quot;sY9c&quot;&gt;Например, почти ровно 1200 бит/с получается при значении константы &lt;strong&gt;BPS_1200&lt;/strong&gt; не 1200, а 1191.&lt;/p&gt;
  &lt;p id=&quot;P1mj&quot;&gt;Вместо правки исходников с последующей перекомпиляцией в Visual Studio можно изменить байт по смещению 45076 с 0xB0 на 0xA7.&lt;/p&gt;
  &lt;p id=&quot;Nei7&quot;&gt;Напишите в комментариях, если вам удалось подобрать оптимальные значения констант &lt;strong&gt;BPS_512&lt;/strong&gt; и &lt;strong&gt;BPS_2400&lt;/strong&gt; для скоростей 512 бит/с и 2400 бит/с соответственно.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;vubP&quot;&gt;Для &lt;strong&gt;подбора оптимальной девиации&lt;/strong&gt; (Bandwidth, между 4.5 и 25 kHz) нужно выставить в исправленном Pager Sender минимальную мощность (Low RF Gain и снять флажок с Amplifier) и Bitrate 1200 bps, подключить к HackRf короткую антенну (10-20 см) и сравнивать максимальное расстояние безошибочного приема сообщения.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;ewLD&quot;&gt;Чтобы получить большое покрытие, нужно подключить к HackRF усилитель мощности (например, кусок &lt;a href=&quot;https://teletype.in/@badradio/transverter&quot; target=&quot;_blank&quot;&gt;радиостанции Жутяева&lt;/a&gt; на 3...4 транзисторах — &lt;strong&gt;5 Вт на 144/432 МГц&lt;/strong&gt;) и установить антенну на крыше высокожтажного здания.&lt;/p&gt;
  &lt;p id=&quot;iQPr&quot;&gt;Протокол &lt;strong&gt;POCSAG&lt;/strong&gt;: &lt;a href=&quot;https://habr.com/en/articles/438906/&quot; target=&quot;_blank&quot;&gt;https://habr.com/en/articles/438906/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;nMJ4&quot;&gt;Как узнать частоту и адрес (&lt;strong&gt;RIC&lt;/strong&gt;) пейджера: &lt;a href=&quot;https://habr.com/en/companies/timeweb/articles/767534/&quot; target=&quot;_blank&quot;&gt;https://habr.com/en/companies/timeweb/articles/767534/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;AIWo&quot;&gt;Если известна схема пейджера и значения ПЧ, частоту приемника можно вычислить, замерив с помощью поднесенной вплотную антенны HackRF частоту гетеродина.&lt;/p&gt;
  &lt;p id=&quot;PsCm&quot;&gt;Исходники &lt;strong&gt;HackRF POCSAG Sender v1.0&lt;/strong&gt;: &lt;a href=&quot;https://github.com/goshante/hackrf-pocsag-gui&quot; target=&quot;_blank&quot;&gt;https://github.com/goshante/hackrf-pocsag-gui&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>badradio:keyboard</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/keyboard?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Шапочка из фольги для клавиатуры, или как ваш пароль был перехвачен на расстоянии v1.0</title><published>2026-02-15T11:31:16.045Z</published><updated>2026-02-26T11:40:34.119Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/42/53/425333d0-b0fe-4247-89e8-0bcce4c90af7.png"></media:thumbnail><category term="chempiony-sredi-oshibok" label="Чемпионы среди ошибок"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/c3/74/c374a20a-b0aa-4a17-bcf5-ccec5ffa1ad8.jpeg&quot;&gt;Еще в 2001 году исследователи из Швейцарии Martin Vuagnoux и Sylvain Pasini обнаружили, что паразитные излучения PS/2, USB, и даже встроенных в ноутбуки клавиатур позволяют перехватить пароли на расстоянии 20 м с вероятностью 95%.</summary><content type="html">
  &lt;p id=&quot;Ttwx&quot;&gt;Еще в 2001 году исследователи из Швейцарии &lt;strong&gt;Martin Vuagnoux&lt;/strong&gt; и &lt;strong&gt;Sylvain Pasini&lt;/strong&gt; обнаружили, что паразитные излучения PS/2, USB, и даже встроенных в ноутбуки клавиатур позволяют перехватить пароли на расстоянии 20 м с вероятностью 95%.&lt;/p&gt;
  &lt;p id=&quot;B2EE&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20150115020100/https://www.usenix.org/legacy/events/sec09/tech/full_papers/vuagnoux.pdf&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20150115020100/https://www.usenix.org/legacy/events/sec09/tech/full_papers/vuagnoux.pdf&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;UUPG&quot;&gt;Для примера рассмотрим старые PS/2 клавиатуры, в которых применяются неэкранированные кабели:&lt;/p&gt;
  &lt;p id=&quot;PJk7&quot;&gt;&lt;a href=&quot;https://oe7twj.at/images/6/6a/PS2_Keyboard.pdf&quot; target=&quot;_blank&quot;&gt;https://oe7twj.at/images/6/6a/PS2_Keyboard.pdf&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;f9Co&quot;&gt;Поскольку фронты импульсов Data и Clock достаточно крутые, спектр паразитных излучений (нечетные гармоники частоты тактирования клавиатуры) простирается за 200 МГц, и момент перехода сигналов через ноль хорошо заметен на анализаторе спектра:&lt;/p&gt;
  &lt;figure id=&quot;BInF&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c3/74/c374a20a-b0aa-4a17-bcf5-ccec5ffa1ad8.jpeg&quot; width=&quot;640&quot; /&gt;
    &lt;figcaption&gt;Перехват паролей на расстоянии: спектр паразитных излучений клавиатуры&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qXIX&quot;&gt;Как принять эти побочные излучения и расшифровать набираемые на клавиатуре символы?&lt;/p&gt;
  &lt;p id=&quot;h5bF&quot;&gt;На вход &lt;strong&gt;быстрого АЦП&lt;/strong&gt; подключается антенна (через простейший ПФ и МШУ), сигнал записывается.&lt;/p&gt;
  &lt;p id=&quot;xEVl&quot;&gt;Применяется &lt;strong&gt;быстрое преобразование Фурье&lt;/strong&gt; (понятно описанные алгоритмы см. в книге &lt;a href=&quot;https://faculty.washington.edu/seattle/brain-physics/textbooks/drongelen.pdf&quot; target=&quot;_blank&quot;&gt;Signal Processing for Neuroscientists&lt;/a&gt;) для поиска &lt;strong&gt;нечетных гармоник&lt;/strong&gt; частоты тактирования клавиатуры (10...16.7 кГц).&lt;/p&gt;
  &lt;figure id=&quot;RRWY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/22/22/2222d44d-c074-42d5-9cbe-9de458e44973.jpeg&quot; width=&quot;314&quot; /&gt;
    &lt;figcaption&gt;Рекомендуемая книга по цифровой обработке сигналов&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6WMa&quot;&gt;В моменты, когда смесь нечетных гармоник присутствует, отмечается переход &lt;strong&gt;сигнала Clock&lt;/strong&gt; через ноль.&lt;/p&gt;
  &lt;p id=&quot;0hOY&quot;&gt;Момент перехода через ноль &lt;strong&gt;сигнала Data&lt;/strong&gt; обнаруживается по увеличенной амплитуде всплеска.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Hxle&quot;&gt;Авторы использовали АЦП осциллографа &lt;a href=&quot;https://www.tek.com/en/datasheet/tds5000-series&quot; target=&quot;_blank&quot;&gt;Tektronix TDS5104&lt;/a&gt; (частота дискретизации 5 ГГц), записанные сэмплы передавали для анализа на компьютер через сетевую карту.&lt;/p&gt;
    &lt;figure id=&quot;4oTe&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/23/a6/23a6babe-94c7-4b9e-b7f1-ce1d3d8ec87a.jpeg&quot; width=&quot;750&quot; /&gt;
      &lt;figcaption&gt;Осциллограф Tektronix TDS 5104&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;HLnB&quot;&gt;При использовании древнего &lt;a href=&quot;https://www.ettus.com/products/&quot; target=&quot;_blank&quot;&gt;USRP&lt;/a&gt; результаты были хуже (дальность 2 м).&lt;/p&gt;
    &lt;figure id=&quot;BJdp&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img1.teletype.in/files/87/a6/87a699e1-a7aa-4eb0-9df6-9def8cf798a0.png&quot; width=&quot;855&quot; /&gt;
      &lt;figcaption&gt;Современные приемники USRP&lt;/figcaption&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;iy5n&quot;&gt;Наверное, перехватчик можно сделать даже на базе &lt;strong&gt;&lt;a href=&quot;https://greatscottgadgets.com/hackrf/one/&quot; target=&quot;_blank&quot;&gt;HackRF One&lt;/a&gt;&lt;/strong&gt; с его 20 МГц полосой (потребуется только написать софт и, для лучших результатов, посчитать ПФ).&lt;/p&gt;
    &lt;figure id=&quot;LxNs&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/e9/93/e993801a-c983-4218-9e60-572ea553323c.jpeg&quot; width=&quot;1200&quot; /&gt;
      &lt;figcaption&gt;HackRF One&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;DWt8&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;1Nwa&quot;&gt;&lt;strong&gt;Защита&lt;/strong&gt;: экранирование кабеля и контактных площадок клавиатуры с двух сторон.&lt;/p&gt;
  &lt;p id=&quot;jD2O&quot;&gt;Выпускаются специальные &lt;a href=&quot;https://www.directindustry.com/industrial-manufacturer/emc-shielded-keyboard-265383.html&quot; target=&quot;_blank&quot;&gt;экранированные клавиатуры&lt;/a&gt;, например, &lt;a href=&quot;https://www.directindustry.com/prod/key-technology-china-limited/product-68381-2481449.html&quot; target=&quot;_blank&quot;&gt;K-TEK-M390TP-FN-BL-ML-EMC-DWP&lt;/a&gt; (не реклама):&lt;/p&gt;
  &lt;figure id=&quot;OTxx&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6a/05/6a0523a7-a3df-4646-bc4b-6e7d7f6e1cf6.jpeg&quot; width=&quot;300&quot; /&gt;
    &lt;figcaption&gt;Экранированная клавиатура K-TEK-M390TP-FN-BL-ML-EMC-DWP&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kw1S&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;9t4P&quot;&gt;&lt;strong&gt;Альтернативные методики&lt;/strong&gt; перехвата и еще много интересного:&lt;/p&gt;
  &lt;p id=&quot;4jfV&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20160731194717/https://secu.famillepasini.ch/index.php?page=keyboards.html&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20160731194717/https://secu.famillepasini.ch/index.php?page=keyboards.html&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;vSln&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;8TCT&quot;&gt;&lt;strong&gt;Подпишитесь&lt;/strong&gt; на блог, чтобы узнавать о новых статьях сразу!&lt;/p&gt;
  &lt;p id=&quot;y87J&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;18ey&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;w1aS&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:noise</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/noise?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Жучок ЦРУ SRT-SP: стабилизатор и генератор шума v1.0</title><published>2026-02-13T09:03:50.393Z</published><updated>2026-03-02T16:12:03.844Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e5/8e/e58e1e7e-a236-468e-aad2-2cba2028433e.png"></media:thumbnail><category term="radiomikrofony" label="Радиомикрофоны"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/04/7a/047ac812-de2d-45d2-97dc-a3e33f44e822.png&quot;&gt;Как и обещал, публикую схему следующей части жучка ЦРУ SRT-SP — стабилизатора напряжения и генератора шума, который применяется для маскировки аудиосигнала.</summary><content type="html">
  &lt;p id=&quot;Wi3U&quot;&gt;Как и обещал, публикую схему следующей части жучка ЦРУ SRT-SP — &lt;strong&gt;стабилизатора напряжения и генератора шума&lt;/strong&gt;, который используется маскиратором аудиосигнала.&lt;/p&gt;
  &lt;p id=&quot;yitk&quot;&gt;Схема &lt;strong&gt;маскиратора&lt;/strong&gt; аудиосигнала: &lt;a href=&quot;https://teletype.in/@badradio/gold&quot; target=&quot;_blank&quot;&gt;https://teletype.in/@badradio/gold&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;0p7J&quot;&gt;Схема &lt;strong&gt;УНЧ с АРУ&lt;/strong&gt; жучка ЦРУ SRT-SP: &lt;a href=&quot;https://teletype.in/@badradio/agc&quot; target=&quot;_blank&quot;&gt;https://teletype.in/@badradio/agc&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;c8IN&quot;&gt;Напоминаю, что последнюю часть — высокочастотную (&lt;a href=&quot;https://cryptomuseum.com/covert/bugs/ec/srs153/srt153.htm&quot; target=&quot;_blank&quot;&gt;фото&lt;/a&gt;) — опубликую тогда, когда будет &lt;strong&gt;20 подписчиков&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;crBQ&quot;&gt;Все схемы нарисованы по фотографиям с сайта &lt;a href=&quot;https://cryptomuseum.com/covert/bugs/ec/sp/index.htm&quot; target=&quot;_blank&quot;&gt;https://cryptomuseum.com/covert/bugs/ec/sp/index.htm&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;DKdp&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/04/7a/047ac812-de2d-45d2-97dc-a3e33f44e822.png&quot; width=&quot;3507&quot; /&gt;
    &lt;figcaption&gt;SRT-SP CIA Bug Voltage Regulator and Noise Generator Schematic Diagram&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;XwQ6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/5a/80/5a807f67-ddac-426b-8373-a7e3d3b91ed3.png&quot; width=&quot;781&quot; /&gt;
    &lt;figcaption&gt;SRT-SP CIA Bug Voltage Regulator and Noise Generator Components Placement&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;X1VE&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;UbGD&quot;&gt;Стабилизатор с коэффициентом стабилизации несколько тысяч собран на транзисторах Q1-Q4 и особенностей не имеет.&lt;/p&gt;
  &lt;p id=&quot;m6xL&quot;&gt;Генератор шума на транзисторах Q5-Q11 представляет из себя просто УНЧ с большим коэффициентом усиления. Обратите внимание, что для повышения экономичности каскады Q5-Q7 и Q8-Q11 соединены по питанию последовательно.&lt;/p&gt;
  &lt;p id=&quot;Caa2&quot;&gt;В отличие от &lt;a href=&quot;https://teletype.in/@badradio/rapid#c9A3&quot; target=&quot;_blank&quot;&gt;рудометовского фейка&lt;/a&gt;, эта схема содержит стабилизатор и развязывающую цепочку R9C3C4, поэтому не самовозбуждается.&lt;/p&gt;
  &lt;p id=&quot;dryL&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Va5G&quot;&gt;&lt;strong&gt;Подпишитесь&lt;/strong&gt; на блог, не дайте фуфлыжникам шанса!&lt;/p&gt;
  &lt;p id=&quot;Ovd0&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;tHTE&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:M7142</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/M7142?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>На пути к самодельному радиопеленгатору (по мотивам M7142) v1.0</title><published>2026-02-08T22:03:54.980Z</published><updated>2026-02-22T05:27:40.073Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/ae/cc/aeccafe2-5fd3-4b72-a0be-b667592f41ae.png"></media:thumbnail><category term="radiostancii" label="Радиостанции"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/33/72/3372a855-0c4d-4b3c-a2ea-a78f4d3ff122.png&quot;&gt;В этой статье я еще раз покажу, как VRTP препятствует появлению радиолюбительской спецтехники, даже когда речь идет о воплощении самых простых принципов.</summary><content type="html">
  &lt;p id=&quot;HqPf&quot;&gt;В этой статье я еще раз покажу, как VRTP препятствует появлению радиолюбительской спецтехники, даже когда речь идет о воплощении самых простых принципов.&lt;/p&gt;
  &lt;p id=&quot;W0fp&quot;&gt;Речь пойдет о портативном &lt;strong&gt;радиопеленгаторе Micromill M7142&lt;/strong&gt;, и почему у отечественных радиолюбителей до сих пор нет ничего подобного.&lt;/p&gt;
  &lt;p id=&quot;NYeP&quot;&gt;Источник всех фотографий: &lt;a href=&quot;https://cryptomuseum.com/df/micromill/m7142/&quot; target=&quot;_blank&quot;&gt;https://cryptomuseum.com/df/micromill/m7142/&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;PDIB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/95/a3/95a34208-0db4-47c3-a4e3-3fed0f853390.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Micromill M7142&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;5jnD&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/79/e5/79e54a05-4a9c-4c1c-91fb-4fc98317834c.png&quot; width=&quot;1182&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Micromill M7142&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;ROPE&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;2BYO&quot;&gt;Теория&lt;/h2&gt;
  &lt;p id=&quot;ZDrD&quot;&gt;&lt;br /&gt;&lt;a href=&quot;https://www.qsl.net/dl4sdc/db0adf/db0adf.html&quot; target=&quot;_blank&quot;&gt;https://www.qsl.net/dl4sdc/db0adf/db0adf.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://www.longdom.org/open-access/dadf-digital-automatic-direction-finder-12801.html&quot; target=&quot;_blank&quot;&gt;https://www.longdom.org/open-access/dadf-digital-automatic-direction-finder-12801.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ramseyelectronics.com/downloads/manuals/DDF1.pdf&quot; target=&quot;_blank&quot;&gt;http://www.ramseyelectronics.com/downloads/manuals/DDF1.pdf&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;cyer&quot;&gt;Две разнесенные в пространстве антенны попеременно подключаются на вход ЧМ приемника (с помощью p-i-n диодов), что эквивалентно изменению фазы несущей, поэтому на выходе появляется напряжение НЧ с частотой переключения. Сравнивая фазы переключающего и демодулированного напряжения НЧ, получаем азимут на передатчик.&lt;/p&gt;
  &lt;p id=&quot;FgQH&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;vPhY&quot;&gt;Устройство Micromill M7142 Radio Direction Finder (RDF)&lt;/h2&gt;
  &lt;p id=&quot;Jh6V&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;pC6E&quot;&gt;Ниже — &lt;strong&gt;коммутатор антенн&lt;/strong&gt; на неизвестных &lt;strong&gt;p-i-n диодах&lt;/strong&gt; из M7142 (маркировка F0D или FOD — возможно, это &lt;strong&gt;HSMP-3820&lt;/strong&gt;, которые маркируются &lt;a href=&quot;https://www.s-manuals.com/smd/f0&quot; target=&quot;_blank&quot;&gt;F0&lt;/a&gt;).&lt;/p&gt;
  &lt;p id=&quot;CbsQ&quot;&gt;Экранированный 50 Ом кабель идет на вход ЧМ приемника:&lt;/p&gt;
  &lt;figure id=&quot;FSOR&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9d/7f/9d7fa30b-124e-4f76-9101-04178c2db149.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Коммутатор антенн на pin диодах пеленгатора Micromill M7142&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;EjG4&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;fo8H&quot;&gt;А вот аналогичная &lt;strong&gt;радиолюбительская схема&lt;/strong&gt; от &lt;strong&gt;N0GSG&lt;/strong&gt; из &lt;strong&gt;CQ 7/2002&lt;/strong&gt; (см. стр. 2, на вид — рабочая):&lt;/p&gt;
    &lt;p id=&quot;bqPF&quot;&gt;&lt;a href=&quot;https://www.n5dux.com/ham/files/pdf/N0GSG%20-%20Portable%20Radio%20Direction%20Finder.pdf&quot; target=&quot;_blank&quot;&gt;https://www.n5dux.com/ham/files/pdf/N0GSG%20-%20Portable%20Radio%20Direction%20Finder.pdf&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;lN3U&quot;&gt;&lt;a href=&quot;https://cq-amateur-radio.com&quot; target=&quot;_blank&quot;&gt;https://cq-amateur-radio.com&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;hgKX&quot;&gt;Применены VHF pin диоды &lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/87544/ONSEMI/MPN3700.html&quot; target=&quot;_blank&quot;&gt;MPN3700&lt;/a&gt; (1 пф) и два микроконтроллера &lt;strong&gt;AT90S1200A&lt;/strong&gt;.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;WwZY&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;XUJs&quot;&gt;&lt;strong&gt;Узкополосный ЧМ приемник&lt;/strong&gt; с двумя преобразованиями частоты особенностей не имеет и может быть собран на &lt;a href=&quot;https://vrtp.ru/index.php?showtopic=12548&quot; target=&quot;_blank&quot;&gt;MC3362&lt;/a&gt; (RSSI брать с вывода 10), MC3363, MC13135.&lt;/p&gt;
  &lt;p id=&quot;7sIw&quot;&gt;Частота данного экземпляра фиксированная — 168.360 МГц.&lt;/p&gt;
  &lt;p id=&quot;Xbyf&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;ooit&quot;&gt;&lt;strong&gt;УНЧ&lt;/strong&gt; собран на &lt;strong&gt;LM386N&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;aELo&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/83/92/8392f73f-a204-43c5-a910-c1c59f412f4d.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Узкополосный ЧМ приемник с двумя преобразованиями частоты M7142&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;upPP&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;kgYn&quot;&gt;Сердце M7142 — верхняя &lt;strong&gt;плата управления и индикации:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;jKZt&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;yEmg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d0/ca/d0cad9c6-6d84-47b0-b17b-63555249a225.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Плата управления и индикации M7142. Вид со стороны компонентов.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;JM7p&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/72/d8/72d865e1-fe3c-4703-94fa-26fbec27af11.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Плата управления и индикации M7142. Вид со стороны монтажа.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;fEpc&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f8/7e/f87ee4df-69b1-4a46-853c-a15f65bb27de.png&quot; width=&quot;4960&quot; /&gt;
    &lt;figcaption&gt;M7142 Portable Radio Direction Finder (RDF) Schematic Diagram&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fARv&quot;&gt;&lt;strong&gt;Генератор&lt;/strong&gt; собран на таймере &lt;a href=&quot;https://www.nxp.com/docs/en/data-sheet/ICM7555.pdf&quot; target=&quot;_blank&quot;&gt;ICL7555&lt;/a&gt; (IC1).&lt;/p&gt;
  &lt;p id=&quot;nV2c&quot;&gt;На ОУ IC4A (&lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/1053944/RENESAS/ICL7612.html&quot; target=&quot;_blank&quot;&gt;ICL7612&lt;/a&gt;) собран &lt;strong&gt;синхронный детектор&lt;/strong&gt; по схеме из «Искусства схемотехники» Хоровица и Хилла (начинающим обязательно следует прочитать эту книгу). Прямоугольное напряжение подается с выхода первого D-триггера &lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/17681/PHILIPS/HEF4013.html&quot; target=&quot;_blank&quot;&gt;HEF4013&lt;/a&gt; (вывод 1) через резистор R11.&lt;/p&gt;
  &lt;p id=&quot;A7If&quot;&gt;Пропорциональное разности фаз выпрямленное напряжение с вывода 1 IC4A поступает на &lt;strong&gt;ФНЧ&lt;/strong&gt; (IC4B), RC фильтр R21C21, &lt;strong&gt;буферный УПТ&lt;/strong&gt; на IC21A, и, наконец, на вход &lt;strong&gt;светодиодной шкалы&lt;/strong&gt; IC22 (вывод 5 &lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/8898/NSC/LM3914.html&quot; target=&quot;_blank&quot;&gt;LM3914&lt;/a&gt;), куда также добавляется &lt;strong&gt;опорное напряжение&lt;/strong&gt; с выхода IC21A.&lt;/p&gt;
  &lt;p id=&quot;MNd7&quot;&gt;В то же время с выходов второго D-триггера HEF4013 (выводы 12, 13) через &lt;strong&gt;буферы&lt;/strong&gt; Q2, Q3 &lt;strong&gt;переключающее напряжение&lt;/strong&gt; подается на &lt;strong&gt;pin диоды&lt;/strong&gt; (контакты P3.DR1, P2.DR2, P1.5V).&lt;/p&gt;
  &lt;p id=&quot;FGBL&quot;&gt;Остальные ОУ используются так.&lt;/p&gt;
  &lt;p id=&quot;GYhw&quot;&gt;На первой половинке запаянного с обратной стороны аналога &lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/178325/INTERSIL/ICL7621.html&quot; target=&quot;_blank&quot;&gt;ICL7621&lt;/a&gt; (позиционное обозначение не видно) собран &lt;strong&gt;усилитель-ограничитель&lt;/strong&gt; НЧ сигнала с выхода ЧМ приемника (с диодами D3, D4 и RV2 в обратной связи). C8R7 — вход (контакт P5.AF), R8C9 — выход (контакт P6.AUD1).&lt;/p&gt;
  &lt;p id=&quot;wlBL&quot;&gt;На второй — &lt;strong&gt;BIAS&lt;/strong&gt; для описанного выше синхронного детектора.&lt;/p&gt;
  &lt;p id=&quot;xUS7&quot;&gt;На IC21B собран &lt;strong&gt;повторитель опорного напряжения&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;740T&quot;&gt;&lt;strong&gt;Вертикальная шкала&lt;/strong&gt; отображает уровень &lt;strong&gt;RSSI&lt;/strong&gt;. Задействованы IC41 (ICL7612) и IC42 (LM3914).&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;eCc5&quot;&gt;&lt;strong&gt;Осторожно!&lt;/strong&gt; &lt;strong&gt;Схема&lt;/strong&gt; срисована с фотографий, поэтому &lt;strong&gt;содержит ошибки&lt;/strong&gt; и не полна. Например, неизвестно, куда ведут R49 и C4.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;tP1h&quot;&gt;Напомню, что с &lt;strong&gt;LM3914N&lt;/strong&gt; в индикаторе направления и уровня (RSSI) мы уже &lt;a href=&quot;https://teletype.in/@badradio/r10&quot; target=&quot;_blank&quot;&gt;сталкивались&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;TQuz&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;iEdw&quot;&gt;Как на VRTP полурабочую схему в нерабочую превратили&lt;/h2&gt;
  &lt;p id=&quot;JfaZ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Mqr0&quot;&gt;Во второй любительской схеме (от &lt;strong&gt;WB2HOL&lt;/strong&gt; из &lt;strong&gt;RDF 9/93&lt;/strong&gt;) применяется вполне рабочий (по крайней мере, в симуляции) синхронный детектор на основе CD4066, но ВЧ-часть — полный бред: два выпрямительных НЧ диода 1N4007 с огромной паразитной емкостью не могут заменить p-i-n СВЧ диод:&lt;/p&gt;
  &lt;figure id=&quot;5tAC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/98/b5/98b56c31-7334-4e65-8c5c-61a32763f150.gif&quot; width=&quot;815&quot; /&gt;
    &lt;figcaption&gt;WB2HOL RDF 9/93 Handheld Direction Finder&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bPVV&quot;&gt;&lt;a href=&quot;https://vrtp.ru/index.php?showtopic=10699&quot; target=&quot;_blank&quot;&gt;https://vrtp.ru/index.php?showtopic=10699&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;g5Y3&quot;&gt;Первоисточник (домашняя страница WB2HOL): &lt;a href=&quot;https://web.archive.org/web/20100227220951/https://home.att.net/~jleggio/projects/rdf/rdf.htm&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20100227220951/https://home.att.net/~jleggio/projects/rdf/rdf.htm&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Lj4B&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;lxLf&quot;&gt;И вот, &lt;strong&gt;чтобы эту полурабочую схему&lt;/strong&gt; добить, &lt;strong&gt;сделать совершенно нерабочей&lt;/strong&gt;, Werewolf (барабанная дробь)... в качестве приемника применяет &lt;strong&gt;&lt;a href=&quot;https://datasheet4u.com/datasheet-pdf/RF-Monolithics--Inc/RX5000/pdf.php?id=340537&quot; target=&quot;_blank&quot;&gt;RX5000&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;8I1J&quot;&gt;&lt;a href=&quot;https://vrtp.ru/index.php?showtopic=15027&quot; target=&quot;_blank&quot;&gt;https://vrtp.ru/index.php?showtopic=15027&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;NqWf&quot;&gt;Если кто не знал, то &lt;strong&gt;RX5000 — это AM&lt;/strong&gt; (а не ЧМ) &lt;strong&gt;приемник&lt;/strong&gt;, поэтому схема становится совершенно нерабочей: при изменении фазы ВЧ сигнала напряжение на выходе АМ детектора не меняется!&lt;/p&gt;
  &lt;p id=&quot;K0CO&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;5ipt&quot;&gt;Многие схемы на VRTP из раздела «Радиопеленгация» сворованы отсюда: &lt;a href=&quot;https://farcircuits.net/Radio%20Direction_Finder%20RDF%20Projects%20Joe%20WB2HOL.pdf&quot; target=&quot;_blank&quot;&gt;https://farcircuits.net/Radio%20Direction_Finder%20RDF%20Projects%20Joe%20WB2HOL.pdf&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;q1f2&quot;&gt;Тоже бред: &lt;a href=&quot;https://vrtp.ru/index.php?showtopic=8960&quot; target=&quot;_blank&quot;&gt;https://vrtp.ru/index.php?showtopic=8960&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;pfzU&quot;&gt;Еще один нерабочий «Индикатор пеленгатор»: &lt;a href=&quot;https://vrtp.ru/index.php?act=categories&amp;CODE=article&amp;article=97&quot; target=&quot;_blank&quot;&gt;https://vrtp.ru/index.php?act=categories&amp;amp;CODE=article&amp;amp;article=97&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;0u3T&quot;&gt;Совсем примитивный «Радиопеленгатор» Алексая Гаврилова из журнала Радио: &lt;a href=&quot;https://vrtp.ru/index.php?act=categories&amp;CODE=article&amp;article=3089&quot; target=&quot;_blank&quot;&gt;https://vrtp.ru/index.php?act=categories&amp;amp;CODE=article&amp;amp;article=3089&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;7OrC&quot;&gt;Четыре страницы пустой болтовни: &lt;a href=&quot;https://web.archive.org/web/20150523072145/https://vrtp.ru/index.php?showtopic=1600&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20150523072145/https://vrtp.ru/index.php?showtopic=1600&lt;/a&gt;&lt;/p&gt;
    &lt;p id=&quot;5UdK&quot;&gt;(Продолжение следует...)&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;EtTf&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;392q&quot;&gt;Некоторые ссылки с VRTP&lt;/h2&gt;
  &lt;p id=&quot;Kmpq&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;GGxR&quot;&gt;&lt;a href=&quot;https://www.qsl.net/ve2emm/pic-projects/doppler3/doppler3-e.html&quot; target=&quot;_blank&quot;&gt;https://www.qsl.net/ve2emm/pic-projects/doppler3/doppler3-e.html&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;x0xc&quot;&gt;&lt;a href=&quot;https://www.ve2ums.ca/chasse/Serge/Transmitter%20Hunting/Doppler/doppler_links.htm&quot; target=&quot;_blank&quot;&gt;https://www.ve2ums.ca/chasse/Serge/Transmitter%20Hunting/Doppler/doppler_links.htm&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;zp8f&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20180809144930/http://www.silcom.com/~pelican2/PicoDopp/PICODOPP.htm&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20180809144930/http://www.silcom.com/~pelican2/PicoDopp/PICODOPP.htm&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;OlPT&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;1GiS&quot;&gt;Правильный путь&lt;/h2&gt;
  &lt;p id=&quot;VqWk&quot;&gt;&lt;/p&gt;
  &lt;ol id=&quot;cp2Z&quot;&gt;
    &lt;li id=&quot;OKkY&quot;&gt;ВЧ часть от M7142 на pin диодах (можно использовать MPN3700 или советские «переключательные», например, &lt;a href=&quot;https://eandc.ru/catalog/2a515a/&quot; target=&quot;_blank&quot;&gt;2А515&lt;/a&gt;)&lt;/li&gt;
    &lt;li id=&quot;rD00&quot;&gt;Приемник подойдет любой, в том числе готовый, лишь бы он был узкополосный ЧМ&lt;/li&gt;
    &lt;li id=&quot;FSp0&quot;&gt;Коммутатор на таймере 555 и CD4013&lt;/li&gt;
    &lt;li id=&quot;7PfD&quot;&gt;Фазовый компаратор на ваш выбор&lt;/li&gt;
    &lt;li id=&quot;3vtB&quot;&gt;Индикатор — светодиодная шкала на LM3914.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;SRP1&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;E1kL&quot;&gt;Пусть начинающих не пугает, что в одних схемах используется &lt;strong&gt;фазовый компаратор&lt;/strong&gt;, а в других — &lt;strong&gt;синхронный детектор&lt;/strong&gt;: результат один и тот же.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;K6IB&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;fvtr&quot;&gt;&lt;strong&gt;Подпишитесь&lt;/strong&gt; на блог, не дайте фуфлыжникам шанса!&lt;/p&gt;
  &lt;p id=&quot;ND9o&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;KsnA&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:photo</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/photo?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Фото настоящих жучков (2022)</title><published>2026-02-05T11:31:22.582Z</published><updated>2026-02-07T05:42:45.508Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2a/c3/2ac316ef-2497-4dc7-9d63-4e6c1902cde4.png"></media:thumbnail><category term="radiomikrofony" label="Радиомикрофоны"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/26/5e/265e4b04-e284-4f70-961b-4b6003a78cde.jpeg&quot;&gt;Коллекционирую самые новые и самые интересные фотографии настоящих подслушивающих устройств. Вся информация из открытых источников.</summary><content type="html">
  &lt;p id=&quot;skjT&quot;&gt;Коллекционирую самые новые и самые интересные фотографии настоящих подслушивающих устройств. Вся информация из открытых источников.&lt;/p&gt;
  &lt;blockquote id=&quot;y9sD&quot;&gt;Не так страшен черт, как его малюют&lt;br /&gt;— русская народная поговорка&lt;/blockquote&gt;
  &lt;p id=&quot;mD3O&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;BGBz&quot;&gt;В отличие от &lt;a href=&quot;https://teletype.in/@badradio&quot; target=&quot;_blank&quot;&gt;других страниц&lt;/a&gt; моего блога, на этой нет ничего нового, просто понравившиеся мне фотограии с &lt;a href=&quot;https://teletype.in/@badradio/sitering&quot; target=&quot;_blank&quot;&gt;интересных сайтов&lt;/a&gt; собраны в одном месте.&lt;/p&gt;
  &lt;p id=&quot;NRiz&quot;&gt;Хотя именно этот &lt;strong&gt;фотоальбом спецтехники&lt;/strong&gt; вдохновляет многих людей &lt;a href=&quot;https://teletype.in/@badradio/cia&quot; target=&quot;_blank&quot;&gt;углубиться&lt;/a&gt; в тему, прочитать что-нибудь &lt;a href=&quot;https://teletype.in/@badradio/agc&quot; target=&quot;_blank&quot;&gt;интересное&lt;/a&gt; у меня &lt;a href=&quot;https://teletype.in/@badradio/gold&quot; target=&quot;_blank&quot;&gt;на сайте&lt;/a&gt; и &lt;a href=&quot;https://cryptomuseum.com/covert/bugs/index.htm&quot; target=&quot;_blank&quot;&gt;не только&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;DZ69&quot;&gt;К сожалению, сравнивая современные находки с миниатюрными изделиями 1970-х годов, приходишь к выводу, что самые лучшие образцы в этой фотогалерее отсутствуют, так как не были еще никем обнаружены.&lt;/p&gt;
  &lt;p id=&quot;w1EG&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Ktq9&quot;&gt;Болонья, 2018:&lt;/h2&gt;
  &lt;figure id=&quot;VrQb&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/26/5e/265e4b04-e284-4f70-961b-4b6003a78cde.jpeg&quot; width=&quot;2448&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;XgGp&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/70/74/70745e45-1ffc-48de-870c-71e6b66723f2.jpeg&quot; width=&quot;768&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;3TAJ&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;2ZjT&quot;&gt;Дижон, 2022:&lt;/h2&gt;
  &lt;figure id=&quot;evS6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c2/08/c2087230-72f2-47c2-92a2-2724e3516725.jpeg&quot; width=&quot;500&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;YDFG&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3e/a6/3ea669f6-7f61-45bc-9ddb-475589a7902f.jpeg&quot; width=&quot;500&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;C3SJ&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;dN0C&quot;&gt;Лечче, 2017 (миниатюрный жучок):&lt;/h2&gt;
  &lt;figure id=&quot;RItK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a6/9e/a69e2ab9-a67d-41ce-bff7-904412d7c801.jpeg&quot; width=&quot;1050&quot; /&gt;
    &lt;figcaption&gt;ABG bug&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;PRvC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/23/82/23826079-6ff3-417c-96ce-a01e9037d8fa.jpeg&quot; width=&quot;840&quot; /&gt;
    &lt;figcaption&gt;ABG bug&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;h8q8&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Zqie&quot;&gt;Белфаст, 2015&lt;/h2&gt;
  &lt;figure id=&quot;3Gim&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7b/99/7b995de6-ed70-4e35-9cd2-2e7366f3c52d.jpeg&quot; width=&quot;885&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hN4v&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;ZECH&quot;&gt;Гренобль, 2018:&lt;/h2&gt;
  &lt;figure id=&quot;dKhB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/51/55/5155a004-c913-4b4e-a914-13b0994f2f30.jpeg&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;wrRk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b6/7a/b67a6175-fe44-41eb-962e-83810515047a.jpeg&quot; width=&quot;1000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9omA&quot;&gt;ATmega128&lt;/p&gt;
  &lt;p id=&quot;6tIV&quot;&gt;&lt;a href=&quot;https://www.analog.com/en/products/adg2188.html&quot; target=&quot;_blank&quot;&gt;AD2188&lt;/a&gt; - I2C Analog Switch Array 8x8&lt;/p&gt;
  &lt;p id=&quot;xXzB&quot;&gt;&lt;a href=&quot;https://www.alldatasheet.com/datasheet-pdf/pdf/19815/PHILIPS/UAA2082.html&quot; target=&quot;_blank&quot;&gt;UAA2082H&lt;/a&gt; - однокристальный приемник до 900 МГц, применялся в пейджерах&lt;/p&gt;
  &lt;p id=&quot;ds8c&quot;&gt;Nitronex (MACOM) &lt;a href=&quot;https://www.mouser.com/datasheet/2/249/NDS-036r2%20NPTB00004A%20datasheet-693285.pdf&quot; target=&quot;_blank&quot;&gt;NPTB00004A&lt;/a&gt; - GaN HEMT транзистор, обеспечивающий выходную мощность до 5 Вт на частотах до 5 ГГц&lt;/p&gt;
  &lt;p id=&quot;vHKj&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;htUE&quot;&gt;Берлин, 2022:&lt;/h2&gt;
  &lt;figure id=&quot;AoQt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/57/7b/577b3880-19f2-4d12-b29d-1ac203c3481f.jpeg&quot; width=&quot;4032&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;tpdh&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7e/43/7e43911a-8cc6-4b03-92ca-6b3a24053ea6.jpeg&quot; width=&quot;1200&quot; /&gt;
    &lt;figcaption&gt;DESAG Telematic NavKoS T&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;LuXr&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;NYjL&quot;&gt;Греция, 2019&lt;/h2&gt;
  &lt;p id=&quot;B1fj&quot;&gt;Сделан на основе GSM модуля Telit UC864-G (миниатюрность и расширенный температурный диапазон):&lt;/p&gt;
  &lt;figure id=&quot;Nkp2&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a4/46/a446ecf2-8ba0-4e39-b2ec-cc37d13a31c6.jpeg&quot; width=&quot;1322&quot; /&gt;
    &lt;figcaption&gt;Telit UC864-G GSM bug&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;SDcl&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;5qIx&quot;&gt;Афины, 2019 (GPS трэкер)&lt;/h2&gt;
  &lt;figure id=&quot;ooJt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/19/ce/19ce3571-ca52-463d-962d-2b185f63bf80.jpeg&quot; width=&quot;1440&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;Xyb1&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4a/3d/4a3d1ac2-b3c9-4fc1-9678-85be538c434e.jpeg&quot; width=&quot;1440&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DdUM&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;bm22&quot;&gt;Фоллоника, 2020:&lt;/h2&gt;
  &lt;figure id=&quot;GrFH&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4a/ef/4aefaf25-b53a-4618-8db3-e89b17c71fa3.jpeg&quot; width=&quot;388&quot; /&gt;
    &lt;figcaption&gt;Follonica GSM bug&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gIdl&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;zaQg&quot;&gt;Источник: &lt;a href=&quot;https://earsandeyes.noblogs.org/downloads/&quot; target=&quot;_blank&quot;&gt;https://earsandeyes.noblogs.org/downloads/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;rfMK&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;k4h0&quot;&gt;Италия, 2022&lt;/h2&gt;
  &lt;figure id=&quot;VtJz&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ef/17/ef17f13e-63eb-4288-b767-a87169b5f64b.jpeg&quot; width=&quot;3000&quot; /&gt;
    &lt;figcaption&gt;VOD&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;cbVq&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/20/e9/20e966eb-b2fb-44cb-b53c-2f94ab007019.jpeg&quot; width=&quot;3000&quot; /&gt;
    &lt;figcaption&gt;WESO&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;S5fv&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/93/9a937d99-2f53-42d0-b849-df700e0fbb47.jpeg&quot; width=&quot;3000&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Jkw9&quot;&gt;Источник: &lt;a href=&quot;https://www.reddit.com/r/TSCM/comments/14lizni/the_government_is_spying_me/&quot; target=&quot;_blank&quot;&gt;https://www.reddit.com/r/TSCM/comments/14lizni/the_government_is_spying_me/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;f7pS&quot;&gt;&lt;a href=&quot;https://imgur.com/a/gadget-minecraft-server-w8wGNu9&quot; target=&quot;_blank&quot;&gt;https://imgur.com/a/gadget-minecraft-server-w8wGNu9&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;QbLH&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Mfjs&quot;&gt;Для сравнения — изделие ABU 1974 года (радиомаячок в наручных часах)&lt;/h2&gt;
  &lt;figure id=&quot;R8di&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/da/18/da18bbc2-0096-4100-a492-ae6de9986e17.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;168.360 MHz&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;prru&quot;&gt;Источник: &lt;a href=&quot;https://cryptomuseum.com/covert/bugs/telefunken/abu/&quot; target=&quot;_blank&quot;&gt;https://cryptomuseum.com/covert/bugs/telefunken/abu/&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Vd4V&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;IVAC&quot;&gt;(Продолжение следует)&lt;/p&gt;
  &lt;p id=&quot;dd3V&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;kEz3&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>badradio:kt606</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/kt606?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Неправильно указанная мощность в четырехканальной аппаратуре для радиоуправления моделями Чухаленко v1.0</title><published>2026-01-16T15:19:16.610Z</published><updated>2026-02-10T16:00:07.955Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/17/aa/17aad88a-ae30-4aac-a643-78e94d6680f6.png"></media:thumbnail><category term="radiostancii" label="Радиостанции"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/57/d0/57d000d9-c0f3-4b6f-8295-4c1f941b98fc.png&quot;&gt;Источник: «В помощь радиолюбителю». Выпуск 89 (1985). Четырехканальная аппаратура для радиоуправления моделями. А.Берестов, М.Васильченко, С.Чухаленко.</summary><content type="html">
  &lt;p id=&quot;iKUD&quot;&gt;Источник: «&lt;a href=&quot;https://archive.org/details/034_20240525/%D0%92%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%20%D1%80%D0%B0%D0%B4%D0%B8%D0%BE%D0%BB%D1%8E%D0%B1%D0%B8%D1%82%D0%B5%D0%BB%D1%8E%20089/page/n1/mode/2up&quot; target=&quot;_blank&quot;&gt;В помощь радиолюбителю&lt;/a&gt;». Выпуск 89 (1985). Четырехканальная аппаратура для радиоуправления моделями. &lt;strong&gt;А.Берестов, М.Васильченко, С.Чухаленко&lt;/strong&gt;. Тираж 900000 экземпляров.&lt;/p&gt;
  &lt;figure id=&quot;ttmk&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/57/d0/57d000d9-c0f3-4b6f-8295-4c1f941b98fc.png&quot; width=&quot;722&quot; /&gt;
    &lt;figcaption&gt;https://studfile.net/preview/16526372/page:6/&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MYBf&quot;&gt;Ошибки в схеме передатчика:&lt;/p&gt;
  &lt;ol id=&quot;nUuS&quot;&gt;
    &lt;li id=&quot;WdWT&quot;&gt;Короткое замыкание с коллектора VT1 на землю (спасибо &lt;strong&gt;kelvin phitrow&lt;/strong&gt;, который это заметил; в сборнике ВПР №89 этой ошибки нет).&lt;/li&gt;
    &lt;li id=&quot;DvcY&quot;&gt;Забыли поставить электролит по питанию.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;l35X&quot;&gt;Схема была &lt;strong&gt;скорее вымучена, чем разработана:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;Es39&quot;&gt;
    &lt;li id=&quot;jA0x&quot;&gt;Почему в коллекторе задающего генератора вместо экранированного колебательного контура с подстроечником стоит дроссель?&lt;/li&gt;
    &lt;li id=&quot;chzx&quot;&gt;Почему база КТ606 подключена к коллектору ГТ311Д фактически напрямую, &lt;strong&gt;без цепей согласования&lt;/strong&gt; (не к отводу от контура, например)?&lt;/li&gt;
    &lt;li id=&quot;g7gg&quot;&gt;Вопросы вызывают и входная цепь приемника, и контур гетеродина L4C27...&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;tADt&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ee/03/ee031bd4-b044-446c-9d0b-552dffdcc671.png&quot; width=&quot;1349&quot; /&gt;
    &lt;figcaption&gt;https://studfile.net/preview/16526372/page:6/&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;66AV&quot;&gt;Оптимальны эти узлы или нет, но &lt;strong&gt;и приемник, и передатчик данного комплекта работают&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;erN3&quot;&gt;Мелкие нестыковки:&lt;/p&gt;
  &lt;ol id=&quot;anbp&quot;&gt;
    &lt;li id=&quot;aVh0&quot;&gt;На стр. 10 сказано, что &lt;strong&gt;L1&lt;/strong&gt; должна содержать 15 витков провода 0.8 мм при длине 10 мм. Это невозможно, ведь даже без шага будет 15*0.8=12 мм.&lt;/li&gt;
    &lt;li id=&quot;KEwr&quot;&gt;20 витков того же провода в &lt;strong&gt;L2&lt;/strong&gt; даст 16 мм, а никак не 12 мм.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;RfRC&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;fy9A&quot;&gt;Переделка в CW передатчик на 10 м 1.28 Вт&lt;/h3&gt;
  &lt;p id=&quot;9Kxn&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;wLlw&quot;&gt;Вместо C6 и VT3 поставить телеграфный ключ. VT4, VT5 и все, что правее — не устанавливать.&lt;/p&gt;
  &lt;p id=&quot;mWb0&quot;&gt;Приемник собрать по другой схеме.&lt;/p&gt;
  &lt;p id=&quot;vv2w&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;A8sv&quot;&gt;Переделка в Си-Би радиостанцию с ЧМ (FM) 1.28 Вт&lt;/h3&gt;
  &lt;p id=&quot;2PqJ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;a2YJ&quot;&gt;Не проверял.&lt;/p&gt;
  &lt;p id=&quot;xCLp&quot;&gt;Вместо C6 и VT3 — перемычка. VT4, VT5 и все, что правее — не устанавливать.&lt;/p&gt;
  &lt;p id=&quot;uDoF&quot;&gt;Приемник собрать по другой схеме.&lt;/p&gt;
  &lt;p id=&quot;qouL&quot;&gt;Емкость C1 увеличить, последовательно с C1 включить варикап, подать на варикап постоянное напряжение смещения со стабилизатора. Модулирующее напряжение на варикап подавать через конденсатор 0.1 мкф и дроссель 47 мкГн.&lt;/p&gt;
  &lt;p id=&quot;iDau&quot;&gt;Выходной транзистор VT2 установить на радиатор.&lt;/p&gt;
  &lt;p id=&quot;JLfC&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;rPIj&quot;&gt;Переделка в Си-Би радиостанцию с АМ 1.28 Вт&lt;/h3&gt;
  &lt;p id=&quot;Ekxy&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;80kH&quot;&gt;Если выкинуть VT3 (ГТ403Б) и C6, вместо них включить вторичную обмотку трансформатора (с соотношением числа витков обмоток 1:1), первичную обмотку которого подключить к УНЧ около 5 Вт, получится &lt;strong&gt;рация с качественной АМ &lt;/strong&gt;(не проверял).&lt;/p&gt;
  &lt;p id=&quot;s1yR&quot;&gt;При модуляции напряжение питания передатчика должно изменяться от нескольких вольт до 18В, пиковая мощность будет около 5 Вт.&lt;/p&gt;
  &lt;p id=&quot;EtB2&quot;&gt;КТ907А или КТ606 придется установить на радиатор.&lt;/p&gt;
  &lt;p id=&quot;8Bfl&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;3FuJ&quot;&gt;Испытания&lt;/h2&gt;
  &lt;p id=&quot;Oofn&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;mY6V&quot;&gt;При закороченном ГТ403 мощность настроенного передатчика составила &lt;strong&gt;1.28 Вт&lt;/strong&gt; на нагрузке 50 Ом, потребляемый ток — &lt;strong&gt;360 мА при 9В&lt;/strong&gt;, КПД 40%.&lt;/p&gt;
  &lt;p id=&quot;YaTF&quot;&gt;Такой она была бы для &lt;a href=&quot;#A8sv&quot;&gt;ЧМ (FM)&lt;/a&gt; или &lt;a href=&quot;#fy9A&quot;&gt;CW SSB&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;gGZl&quot;&gt;Но для амплитудной модуляции (АМ) ситуация другая, и &lt;strong&gt;вместо заявленной мощности 600 мВт имеем 225 мВт&lt;/strong&gt; (потребляемый ток 200 мА).&lt;/p&gt;
  &lt;p id=&quot;maQG&quot;&gt;Малограмотные авторы просто измерили среднюю излучаемую мощность, с учетом потерь на ГТ403 как раз получилось 1.2Вт/2 = 600 мВт.&lt;/p&gt;
  &lt;p id=&quot;xX7n&quot;&gt;На самом деле мощность АМ передатчика в 4 раза меньше пиковой: 1.2Вт/4 = &lt;strong&gt;300 мВт&lt;/strong&gt; (при модуляции синусоидальным сигналом и глубине модуляции 100%).&lt;/p&gt;
  &lt;p id=&quot;P4mH&quot;&gt;Если вас это удивляет, пора прочитать &lt;strong&gt;учебник по радиопередающим устройствам&lt;/strong&gt; (&lt;strong&gt;Шахгильдяна&lt;/strong&gt;, например).&lt;/p&gt;
  &lt;p id=&quot;rzQH&quot;&gt;Кто-то может возразить, что в этом передатчике применяется &lt;strong&gt;импульсная модуляция&lt;/strong&gt; (C6 немного сглаживает), значит, мощность должна быть равна средней — 600 мВт.&lt;/p&gt;
  &lt;p id=&quot;R5Cz&quot;&gt;На самом деле при модуляции прямоугольным сигналом полезная мощность еще на 25% меньше, ведь энергия расходуется и на излучение гармоник модулирующей частоты (при 800 Гц — 2.4 кГц, 4 кГц и другие нечетные), которые игнорируются точно настроенным на одну частоту (800 Гц) дешифратором команд в приемнике.&lt;/p&gt;
  &lt;p id=&quot;J2fV&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;mz8f&quot;&gt;Плагиат А.Татаренко&lt;/h2&gt;
  &lt;p id=&quot;fNZ7&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;crTc&quot;&gt;С некоторыми изменениями схема была перепечатана в журнале &lt;strong&gt;Конструктор 4-5/2000 &lt;/strong&gt;(в бозе почивший сателлит «Радиоаматора» с тиражом 1000 экземпляров) под именем &lt;strong&gt;А.Титаренко&lt;/strong&gt;, который на самом деле &lt;a href=&quot;https://teletype.in/@badradio/plagiat#koze&quot; target=&quot;_blank&quot;&gt;Татаренко&lt;/a&gt; (РК 6/2000, стр. 43). &lt;strong&gt;Приведены чертежи печатных плат&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;M0va&quot;&gt;В модификации Татаренко ток потребления передатчика снизился почти в два раза (до 120 мА), во столько же раз &lt;strong&gt;упала и выходная мощность&lt;/strong&gt;; в схему добавлены новые ошибки (неполный список изменений):&lt;/p&gt;
  &lt;ol id=&quot;RimJ&quot;&gt;
    &lt;li id=&quot;eAnt&quot;&gt;Антенна передатчика подключена не через 6800, а через 6.8 пф (&lt;strong&gt;чтоб не работало&lt;/strong&gt;).&lt;/li&gt;
    &lt;li id=&quot;R9Jw&quot;&gt;«Удлиняющая» катушка помещена в экран, чего в заводской аппаратуре не бывает.&lt;/li&gt;
    &lt;li id=&quot;EO9i&quot;&gt;R3 увеличен с 91 Ом до 150 Ом, при этом R3 уменьшен с 6.8 кОм до 2.2 кОм.&lt;/li&gt;
    &lt;li id=&quot;ezcO&quot;&gt;C3 увеличен с 18 до 62 пф.&lt;/li&gt;
    &lt;li id=&quot;KeKs&quot;&gt;Модернизированы схемы стабилизаторов напряжения (КРЕН5).&lt;/li&gt;
    &lt;li id=&quot;YtzM&quot;&gt;В приемнике применены логические элементы и рэле вместо драйверов на VT13-VT18.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;O9xU&quot;&gt;&lt;strong&gt;Титаренко-Татаренко&lt;/strong&gt;, «забывший» упомянуть авторов оригинальной конструкции и &lt;strong&gt;добавивший ошибку в рабочую схему&lt;/strong&gt;, получает свое законное место в &lt;a href=&quot;https://teletype.in/@badradio/plagiat#koze&quot; target=&quot;_blank&quot;&gt;списке плагиаторов&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;DQeq&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;VGUf&quot;&gt;Также &lt;strong&gt;опасайтесь&lt;/strong&gt; других статей &lt;a href=&quot;https://teletype.in/@badradio/plagiat#koze&quot; target=&quot;_blank&quot;&gt;недоучки&lt;/a&gt; Татаренко, в которых могут скрываться довольно подлые ошибки:&lt;/p&gt;
    &lt;ol id=&quot;RxNJ&quot;&gt;
      &lt;li id=&quot;h9BV&quot;&gt;Усовершенствованная аппаратура радиоуправления моделями (РК 9-10/2000)&lt;/li&gt;
      &lt;li id=&quot;48Dz&quot;&gt;Аппаратура пропорционального управления моделями (РК 5,6,7/2001)&lt;/li&gt;
      &lt;li id=&quot;Kt7J&quot;&gt;Шифратор и дешифратор дистанционного управления (РА 11/2001)&lt;/li&gt;
      &lt;li id=&quot;0lvC&quot;&gt;ДУ — новые возможности старых микросхем (РА 8/2002)&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/section&gt;
  &lt;p id=&quot;CjsC&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Va5G&quot;&gt;&lt;strong&gt;Подпишитесь&lt;/strong&gt; на блог, не дайте фуфлыжникам шанса!&lt;/p&gt;
  &lt;p id=&quot;Ovd0&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;vYa1&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:sim900</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/sim900?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Восстановление исходников глючного GSM микрофона на SIM900 и PIC24FJ64GA004 от Tired/STG</title><published>2025-12-30T09:08:27.431Z</published><updated>2026-02-01T10:28:54.483Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e8/c5/e8c51824-bf8e-44d8-972b-4c0ae400f151.png"></media:thumbnail><category term="radiomikrofony" label="Радиомикрофоны"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/56/06/5606dca1-c924-4707-95b4-c1d1da5af4bd.jpeg&quot;&gt;Прошло 14 лет, исписано 30 страниц форума, но этот код с VRTP так и остался кривым.</summary><content type="html">
  &lt;p id=&quot;IKBC&quot;&gt;Прошло 14 лет, исписано 30 страниц &lt;a href=&quot;#0c6n&quot;&gt;форума&lt;/a&gt;, но этот &lt;a href=&quot;#Matf&quot;&gt;код&lt;/a&gt; с VRTP так и остался кривым.&lt;/p&gt;
  &lt;p id=&quot;rhNP&quot;&gt;Что будет, если не читать книги по программированию &lt;strong&gt;Кнута&lt;/strong&gt;, &lt;strong&gt;Вирта&lt;/strong&gt; и &lt;strong&gt;Дейкстры&lt;/strong&gt;? Результат перед вами. Как говорится в таких случаях, не вздумайте повторять увиденное дома.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;2K0H&quot;&gt;Исходники GSM радиожучков на других модулях: &lt;a href=&quot;https://teletype.in/@badradio/lexi&quot; target=&quot;_blank&quot;&gt;SIM300&lt;/a&gt; (PIC16F648A), &lt;a href=&quot;https://teletype.in/@badradio/treshka&quot; target=&quot;_blank&quot;&gt;SIM800&lt;/a&gt; (PIC12F1822, очень кривой).&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;0c6n&quot;&gt;&lt;strong&gt;Оригинальная статья&lt;/strong&gt; (без исходников, разные версии прошивки):&lt;/p&gt;
  &lt;p id=&quot;lXOp&quot;&gt;&lt;a href=&quot;https://web.archive.org/web/20221208224213/https://vrtp.ru/index.php?showtopic=20314&quot; target=&quot;_blank&quot;&gt;https://web.archive.org/web/20221208224213/https://vrtp.ru/index.php?showtopic=20314&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;pcq8&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/56/06/5606dca1-c924-4707-95b4-c1d1da5af4bd.jpeg&quot; width=&quot;1036&quot; /&gt;
    &lt;figcaption&gt;Схема последней версии. Добавлены дополнительные охранные шлейфы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;JiQj&quot;&gt;Похабная &lt;a href=&quot;#Matf&quot;&gt;прошивка&lt;/a&gt; от &lt;strong&gt;Tired&lt;/strong&gt; (№844) и &lt;strong&gt;STG&lt;/strong&gt; (№176) имеет классические ошибки безопасности. Прочтите комментарии в &lt;a href=&quot;#jW5Z&quot;&gt;листинге&lt;/a&gt;, чтобы научиться их избегать.&lt;/p&gt;
  &lt;p id=&quot;izQA&quot;&gt;Прекратите повторять конструкции с &lt;strong&gt;закрытым исходным кодом &lt;/strong&gt;или &lt;strong&gt;без расчетов&lt;/strong&gt;. Вы не знаете, какие ошибки, глюки и бэкдоры в них содержатся.&lt;/p&gt;
  &lt;p id=&quot;snL7&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;SRzq&quot;&gt;Вот только &lt;strong&gt;самые грубые косяки&lt;/strong&gt; этого GSM радиомикрофона на SIM900:&lt;/p&gt;
  &lt;ol id=&quot;ebfV&quot;&gt;
    &lt;li id=&quot;Fcjp&quot;&gt;Неправильно разведена печатная плата (уже &lt;a href=&quot;https://teletype.in/@badradio/treshka&quot; target=&quot;_blank&quot;&gt;проходили&lt;/a&gt; в «Трёшке»‬)&lt;/li&gt;
    &lt;li id=&quot;AL8F&quot;&gt;Нет автоматической перезагрузки GSM модуля при потере сети (виснет в течение суток)&lt;/li&gt;
    &lt;li id=&quot;vzQT&quot;&gt;Нет развязки SIM900 по питанию с помощью дросселя (глюки и жужжание)&lt;/li&gt;
    &lt;li id=&quot;TmLB&quot;&gt;Контролирующие шлейфы &lt;strong&gt;входы &lt;/strong&gt;контроллера &lt;strong&gt;не зашунтированы&lt;/strong&gt; конденсаторами (реагирует на любые импульсные помехи, в том числе от себя)&lt;/li&gt;
    &lt;li id=&quot;WGhv&quot;&gt;По достижении BUFSZ (127) символов &lt;strong&gt;буфер перезаписывается&lt;/strong&gt;. Например, подобрав длину SMS (может быть до 160 байт плюс заголовки SIM900) с текстом “RING”, можно заставить устройство подумать, будто идет входящий вызов. Кто раскрутит это до эксплуатируемой уязвимости?&lt;/li&gt;
    &lt;li id=&quot;sS37&quot;&gt;Ответы SIM900 проверяются «приблизительно»: не на равенство, а на &lt;strong&gt;вхождение подстроки&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;k5i4&quot;&gt;Успешность дозвона и отправки SMS не учитывается&lt;/li&gt;
    &lt;li id=&quot;ltWh&quot;&gt;Нестандартные ситуации (отсутствует SIM-карта, удалены номера) не отслеживаются&lt;/li&gt;
    &lt;li id=&quot;LOhZ&quot;&gt;Если ПИН-код неправильный, устройство введет его несколько раз, и &lt;strong&gt;карта заблокируется&lt;/strong&gt;!&lt;/li&gt;
    &lt;li id=&quot;8F3v&quot;&gt;Отсутствует резистор R2 для вывода MCLR контроллера (см. стр. 17 даташита).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;W79y&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;X2Lt&quot;&gt;Кроме того, даже не имея исходников и не зная, что за «шедевр» перед ними, форумчане VRTP выявили следующие &lt;strong&gt;недостатки&lt;/strong&gt;:&lt;/p&gt;
  &lt;ol id=&quot;7V5j&quot;&gt;
    &lt;li id=&quot;RKEv&quot;&gt;При обрыве шлейфа идет звонок за звонком, высаживается батарея&lt;/li&gt;
    &lt;li id=&quot;EI1c&quot;&gt;Владелец никак не узнает про обрыв связи в результате зависания GSM модуля, а это случается регулярно&lt;/li&gt;
    &lt;li id=&quot;Qe46&quot;&gt;Наличие средств на счету не отслеживается&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Enis&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;39eU&quot;&gt;Кстати, &lt;strong&gt;&lt;a href=&quot;#0c6n&quot;&gt;на форуме&lt;/a&gt; VRTP есть множество ценнейших комментариев по конструированию GSM радиомикрофонов&lt;/strong&gt;, но все они были проигнорированы. Лишний раз убеждаешся, что цель VRTP — не помочь и научить, а подставить и обломать.&lt;/p&gt;
  &lt;p id=&quot;mk51&quot;&gt;Примечательно, что среди изученных мною &lt;a href=&quot;#2K0H&quot;&gt;прошивок&lt;/a&gt; &lt;strong&gt;ни в одной не приняты меры против «продвинутого» нарушителя&lt;/strong&gt;, который попытается имитировать садящуюся батарею или выход ее из строя, вызвать ложные срабатывания или зависание устройства. Ничто не позволит &lt;strong&gt;отличить&lt;/strong&gt; &lt;strong&gt;от постороннего вмешательства&lt;/strong&gt;:&lt;/p&gt;
  &lt;ol id=&quot;qWRM&quot;&gt;
    &lt;li id=&quot;1Pvw&quot;&gt;ошибку в прошивке&lt;/li&gt;
    &lt;li id=&quot;UQp3&quot;&gt;отказ GSM модуля&lt;/li&gt;
    &lt;li id=&quot;Zvq4&quot;&gt;неполадки на стороне оператора&lt;/li&gt;
    &lt;li id=&quot;84BY&quot;&gt;случаи медленно и внезапно севшей батареи&lt;/li&gt;
    &lt;li id=&quot;2suR&quot;&gt;неполадки с питанием.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Jr21&quot;&gt;Начинающим следует &lt;strong&gt;изучить несколько схем и прошивок промышленных ОПС&lt;/strong&gt;, прежде чем изобретать свой велосипед. Чтение руководства по микроконтроллеру, даташитов, аппнот и доступного открытого кода — обязательно.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qSZQ&quot;&gt;Осторожно! В листинге еще масса несоответствий (использование &lt;strong&gt;naken_util&lt;/strong&gt; не позволяет пока получить идентичный hex-файл, в отличие от &lt;a href=&quot;#2K0H&quot;&gt;других прошивок&lt;/a&gt;, дизассемблированных с помощью &lt;strong&gt;gpdasm&lt;/strong&gt;), проверяйте все вызывающие подозрение места. Некоторые участки дизассемблер &lt;a href=&quot;https://github.com/mikeakohn/naken_asm&quot; target=&quot;_blank&quot;&gt;naken_util&lt;/a&gt; дизассемблировать не смог.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Matf&quot;&gt;Оригинальный исходник написан на Си.&lt;/p&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#jW5Z&quot;&gt;mic.asm (первая версия прошивки)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#g7NU&quot;&gt;uart.asm (последовательный порт)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#S3Fb&quot;&gt;macro.asm (макросы)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#hjyz&quot;&gt;utils.asm (очистка буфера, задержки, поиск подстроки)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#26M6&quot;&gt;at.asm (строки AT-команд)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#aPpq&quot;&gt;atoi.asm (преобразование строки в число)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#rCnD&quot;&gt;naken.asm (исправление ошибок дизассемблера и макросы-сокращения)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#yGXB&quot;&gt;PIC24FJ64GA004.inc (минималистический включаемый файл)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#tRLC&quot;&gt;idata.asm (инициализация переменных)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#iCyh&quot;&gt;ivt.asm (таблица векторов прерываний)&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#umeI&quot;&gt;idata2.asm (инициализированные данные)&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;h3 id=&quot;jW5Z&quot;&gt;mic.asm (первая версия прошивки)&lt;/h3&gt;
  &lt;pre id=&quot;qH9q&quot;&gt;; Disassembler: naken_util - by Michael Kohn
;                 Joe Davisson
;     Web: https://www.mikekohn.net/
;   Email: mike@mikekohn.net
;
; Version: May 25, 2025
;
; Loaded mic.hex of type hex / dspic from 0x0000 to 0x157ff
; Type help for a list of commands.
;
; Addr    Opcode     Instruction                              Cycles
; ------- ---------- ----------------------------------       ------

; Compilation:
; naken_asm -o mic_recompiled.hex -type hex mic.asm
; Также см. https://www.watelectronics.com/sim900-module/


; PIC24FJ64GA004
.PIC24


;===============================================================================


#define                 TRUE    1
#define                 FALSE   0
; смещение номера в ответе на AT+CLCC
#define CLCC_PHONE_OFFSET 18
; число символов в телефонном номере
#define PHONE_LEN 39
BUFSZ                   equ     127

; получить адрес переменной в Linear Data Memory
LINEAR_DATA_MEMORY      equ     0x8000
#define LDM(var)        #(var) + LINEAR_DATA_MEMORY

; alternate interrupt vector table (59)
ALTIVT_START            equ     0x0104

; маска для AND
#define MASK(bit)       (1 &amp;lt;&amp;lt; (bit))

; если операнд - байт
#define HIREG(reg)      (reg + 1)
#define HIBIT(bit)      (bit - 8)
#define HIMASK(bit)     MASK(HIBIT(bit))


#include &amp;quot;PIC24FJ64GA004.inc&amp;quot;


;===============================================================================
; DATA address definitions

buffer  equ 0x0c11              ; принятый ответ на AT-команду
;after  equ 0x0c90              ; первый байт после буфера

phone1  equ 0x1157              ; номера из записной книги SIM
phone2  equ 0x117f
phone3  equ 0x11a7

callee  equ 0x11cf              ; номер звонящего абонента
;cafter equ 0x11f6              ; первый байт после номера

active1 equ 0x11f8              ; флаги наличия номеров в записной книге SIM
active2 equ 0x11fa
active3 equ 0x11fc
unknown equ 0x11fe

state   equ 0x1202              ; конечный автомат
#define STATE_RESET 4
#define STATE_GSMON 5
#define STATE_PIN_OK 6

bufptr  equ 0x1208              ; индекс свободного байта в буфере

tm4h    equ 0x121C              ; ограничитель времени звонка?

var_a   equ 0x1230              ; ? - только чтение

lowbat  equ 0x1232              ; батарея разряжена
pollcnt equ 0x1234              ; ? - только запись

calling equ 0x1236              ; активен звонок

alert   equ 0x1238              ; шлейф сигнализации в обрыве
charged equ 0x123a              ; аккумулятор полностью заряжен
lbsent  equ 0x123c              ; сообщение о разрядившейся батарее отправлено

temp    equ 0x123e              ; временная переменная для многих операций

STKPTR  equ 0x27f0              ; стек

; indirect
i       equ 20
j       equ 14
k       equ 16
m       equ 10
pbk     equ 18                  ; прочитанный из записной книги номер
cbcpos  equ 12
search_result   equ 6           ; номер позвонившего обнаружен на SIM?
callee_offset   equ 8

;===============================================================================
; PINS usage definitions

LED_PORT            equ PORTB       ; светодиод
LED                 equ RB2

MIC_PORT            equ PORTB       ; управление чувствительностью микрофона
MICLEVEL            equ RB0

SENSOR_PORT         equ PORTB       ; шлейф сигнализации
SENSOR              equ RB8

CHARGE_PORT         equ PORTC       ; контроллер заряда
CHARGE              equ RC1

PWRKEY_PORT         equ PORTC       ; кнопка включения SIM900
PWRKEY              equ RC9         ; pin 1 of SIM900, pin 5 of PIC

STATUS_PORT         equ PORTB       ; SIM900 STATUS
STATUS              equ RB14

; PIC   - SIM900
; 2 RC6 - 10 RXD
; 3 RC7 - 9 TXD

DTR_PORT            equ PORTC       ; SIM900 DTR
DTR                 equ RC8         ; pin 3 of SIM900, pin 4 of PIC


#include &amp;quot;macro.asm&amp;quot;


.org 0


    goto main


; таблица векторов прерываний
#include &amp;quot;ivt.asm&amp;quot;


.org 0x200


main:
    mov #temp, w15

    ; стек
    mov #STKPTR, w0
    mov w0, SPLIM

    nop
    rcall setup1

    ; инициализированные переменные
    invoke2(intialize, #initialized_data, #0)

    ; ?
    mov #0, w0
    cp0 w0
    bra z, skip

    call 0

skip:
    call start
    sleep_
    reset


setup1:
    .scope

    ; Program Space Visibility in Data Space Enable bit:
    ; Program space is not visible in data space
    bclr CORCON, #PSV

    ; 8 trap vectors + interrupt vectors
    mov #(2 * (8 + 14) + ALTIVT_START), w0
    cp0 w0
    bra z, done

    mov #0, w0
    mov w0, PSVPAG

    ; Program space is visible in data space
    bset CORCON, #PSV

done:
    return
    .ends

#include &amp;quot;idata.asm&amp;quot;
#include &amp;quot;at.asm&amp;quot;


start:
    lnk #0x00

    ; A/D PORT CONFIGURATION REGISTER (199)
    setm w0
    mov w0, AD1PCFG

    ; Peripheral Output Function is Assigned to RP22 Output Pin bits (123)
    bset RPOR11, #0
    bset RPOR11, #1

    bclr RPOR11, #2
    bclr RPOR11, #3
    bclr RPOR11, #4

    ; Assign UART1 Receive (U1RX) to the Corresponding RPn Pin bits
    bset RPINR18, #0
    bset RPINR18, #1
    bset RPINR18, #2
    ; U1RXR3
    bclr RPINR18, #3
    bset RPINR18, #4

    ; TON: Timery On bit - 1 = Starts 16-bit Timery
    ; Timery Input Clock Prescale Select bits: 11 = 1:256
    mov #(TON | TCKPS1 | TCKPS0), w0
    mov w0, T4CON

    ; период таймера 4
    movlf(15200, PR4)

    mov #(TON | TCKPS1 | TCKPS0), w0
    mov w0, T3CON

    ; период таймера 3
    movlf(760, PR3)

    bclr IFS1, #T4IF
    ; T4IE: Timer4 Interrupt Enable bit
    bset IEC1, #T4IE

    movlf(STATE_RESET, state)

    delay(#1000)

    bclr TRISB, #TRISB2
    ; Change Notice 4 Pull-Up Enable
    bset CNPU1, #CN4PUE

loop:
    rcall SIM900_power
    rcall function_sim900_init
    rcall function_register
    bra loop


#include &amp;quot;atoi.asm&amp;quot;


interrupt_timer3:               ; 0x05f8
    .scope
    push.d w0
    push w2
    push PSVPAG
    mov #0, w0
    mov w0, PSVPAG
    lnk #0

    bclr IFS0, #T3IF            ; прерывание обработано

    IFNE(calling, TRUE, exit)   ; если соединение не активно, выход
    IBLINK
exit:

    ulnk
    pop PSVPAG
    pop w2
    pop.d w0
    retfie
    .ends


interrupt_timer4:
    .scope
    push.d w0
    push w2
    push PSVPAG
    mov #0, w0
    mov w0, PSVPAG
    lnk #0x00

    bclr IFS1, #T4IF            ; прерывание обработано

    ; увеличение счетчика времени в tm4h:initialized_data
    inc16(tm4h, initialized_data)

    IFNE(var_a, TRUE, exit)     ; мигаем, если var_a не ноль
    IBLINK
exit:

    ulnk
    pop PSVPAG
    pop w2
    pop.d w0
    retfie
    .ends


#include &amp;quot;utils.asm&amp;quot;
#include &amp;quot;uart.asm&amp;quot;


; кнопка включения модуля SIM900
SIM900_power:
    .scope
    lnk #0x00

    IFNE(state, STATE_RESET, exit)

    delay(#400)

    bclr TRISC, #TRISC9
    bclr PWRKEY_PORT, #PWRKEY

    delay(#2000)

    bset PWRKEY_PORT, #PWRKEY
    bset TRISB, #TRISB14

wait:                           ; ожидание SIM900 STATUS (66)
    mov.b HIREG(STATUS_PORT), wreg
    and.b #HIMASK(STATUS), w0
    CP0_W0
    bra z, wait

    rcall setup_uart

    movlf(STATE_GSMON, state)

exit:
    ulnk
    return
    .ends


function_sim900_init:
    .scope
    lnk #0x02

    IFNE(state, STATE_GSMON, exit)

    movlf(0, lbsent)

loop:
    ATCMD(at)                  ; отправляем &amp;quot;AT&amp;quot;

    blink                       ; мигаем
    blink

    unless_buffer_contains(ok + 1, retry)
    rcall clear_buffer
    bra autobauded              ; ответ содержит &amp;quot;OK&amp;quot;

retry:
    ATCMD(at)

    blink
    blink
    blink
    blink

    unless_buffer_contains(ok + 1, more)
    rcall clear_buffer
    bra autobauded

more:
    ATCMD(at)

    delay(#250)
    led_off
    delay(#250)
    blink
    blink
    blink
    blink
    blink
    blink
    blink

    unless_buffer_contains(ok + 1, loop)
    rcall clear_buffer

autobauded:                     ; получен &amp;quot;OK&amp;quot;
    clr w0
    mov w0, [w14]

repeat_pin:
    ATCMD(at_cpin)             ; нужен ли SIM PIN?

    blink
    blink

    if_buffer_contains(cpin_sim_pin + 1, pin_ready_or_sim_pin)
    unless_buffer_contains(cpin_ready, repeat_pin)

pin_ready_or_sim_pin:
    unless_buffer_contains(cpin_sim_pin + 1, enter_pin)

    movlo(TRUE, 0)              ; требуется ввод пин-кода

enter_pin:
    rcall clear_buffer

    mov #TRUE, w0               ; установлен пин-код?
    subr w0, [w14], [w15]
    bra z, repeat_enter_pin
    bra pin_accepted_or_no_pin

    ; если пин-код неправильный, зачем вводить его снова?
    ; SIM-карта будет заблокирована!
repeat_enter_pin:
    ATCMD0(at_cpin_2000 + 1)     ; вводим пин-код &amp;quot;2000&amp;quot;
    rcall clear_buffer
    delay(#1000)
    if_buffer_contains(ok + 1, pin_accepted_or_no_pin)
    bra repeat_enter_pin

pin_accepted_or_no_pin:         ; пин-код принят
    movlf(STATE_PIN_OK, state)

exit:
    ulnk
    return
    .ends


function_register:
    lnk #0x16

    IFNE(state, STATE_PIN_OK, wrong_state)

    ; ожидание регистрации в сети
registration_loop:
    ATCMD(at_creg)
    blink
    unless_buffer_contains(creg_01 + 1, registration_loop)

    delay(#500)

    ; чтение трех номеров из телефонной книги SIM карты

    rcall clear_buffer

    movlf(FALSE, active1)
    movlf(FALSE, active2)
    movlf(FALSE, active3)

    ATCMD0(at_cpbs_sm)
    delay(#2000)

    read_parse_phonebook(at_cpbr_1 + 1, phone1, active1)
    read_parse_phonebook(at_cpbr_2, phone2, active2)
    read_parse_phonebook(at_cpbr_3, phone3, active3)

    ATCMD0(at_cmgf_1)            ; переключаем SIM900 в текстовый режим

    led_on                      ; мигаем
    delay(#2000)
    led_off
    delay(#2000)

    ; пин MICLEVEL управляет выбором чувствительности микрофона
    mov.b MIC_PORT, wreg
    and.b w0, #MASK(MICLEVEL), w0
    CP0_W0
    bra nz, mic_sensitivity_high

    ATCMD0(at_cmic00)            ; установить низкую чувствительность микрофона

mic_sensitivity_high:
    mov.b MIC_PORT, wreg
    and.b w0, #MASK(MICLEVEL), w0
    CP0_W0
    bra z, mic_sensitivity_low

    ATCMD0(at_cmic015)           ; установить высокую чувствительность микрофона

mic_sensitivity_low:

    ; отправка SMS по каждому номеру
    ; успешность отправки SMS не проверяется!

    IFNE(active1, TRUE, skip_number1_sms_ready)
    delay(#1000)
    SEND_SMS(#phone1, Ready + 1, i)

skip_number1_sms_ready:
    IFNE(active2, TRUE, skip_number2_sms_ready)
    delay(#5000)
    SEND_SMS(#phone2, Ready + 1, i)

skip_number2_sms_ready:
    IFNE(active3, TRUE, skip_number3_sms_ready)
    delay(#5000)
    SEND_SMS(#phone3, Ready + 1, i)

skip_number3_sms_ready:
    delay(#1000)

    bclr IFS1, #CNIF            ; Change Notice Interrupt Flag

    mov #HIREG(IPC4), w1        ; INTERRUPT PRIORITY CONTROL REGISTER 4
    mov.b [w1], w1
    mov_w0(0x8f)                ; clear CNIP&amp;lt;2:0&amp;gt;
    and.b w1, w0, w0
    mov_w1(0x40)                ; set CNIP&amp;lt;2:0&amp;gt; to 100 - priority 4? (82)
    ior.b w0, w1, w0
    mov.b wreg, HIREG(IPC4)

    bset IEC1, #T1IE            ; Timer1 Interrupt Enable bit
    bset CNEN2, #CN22IE
    bset CNEN1, #CN8IE
    bset CNPU1, #CN8PUE

    movlf(FALSE, lowbat)
    movlf(2, pollcnt)

    delay(#1000)

    for (k, repeat, repeat)
    ; k++
    inco(w14, k)

    mov [w14+k], w0
    sub w0, #20, [w15]
    bra le, local11

    movlo(0, k)

    ; получить заряд батареи
    ATCMD(at_cbc + 1)
    delay(#500)

    ; проверяем наличие чего-то, похожего на ответ
    unless_buffer_contains(cbc, skip_sms_lowbat)

    ; позиция &amp;quot;ответа&amp;quot;
    invoke_strnpos(cbc)
    mov.b w0, [w14+cbcpos]

    ; преобразуем строку в число
    get_digit(14, w2)
    get_digit(13, w5)
    get_digit(12, w4)
    get_digit(11, w0)
    mov.b w2, w3
    mov.b w5, w2
    mov.b w4, w1
    rcall function_atoi

    ; напряжение 3.5В
    ; temp = 3500 - atoi(cbcpos + 11)
    mov w0, w1
    mov #3500, w0
    sub w1, w0, [w15]
    bra gtu, more3_5V

    movlf(TRUE, lowbat)

    mov lbsent, w0
    sub w0, #1, [w15]
    bra gtu, skip_sms_lowbat

    incf(lbsent)

    IFNE(active1, TRUE, skip_number1_sms_lowbat)
    SEND_SMS(#phone1, Low_battery, i)

skip_number1_sms_lowbat:
    IFNE(active2, TRUE, skip_number2_sms_lowbat)
    delay(#5000)
    SEND_SMS(#phone2, Low_battery, i)

skip_number2_sms_lowbat:
    IFNE(active3, TRUE, skip_number3_sms_lowbat)
    delay(#5000)
    SEND_SMS(#phone3, Low_battery, i)

skip_number3_sms_lowbat:
    delay(#1000)
    bra skip_sms_lowbat

more3_5V:
    movlf(FALSE, lowbat)

skip_sms_lowbat:
    rcall clear_buffer

local11:
    delay(#380)
    delay(#380)

    incf(pollcnt)

    delay(#380)
    delay(#380)
    delay(#380)

    led_on

    delay(#380)
    delay(#380)

    led_off

    ; входящий звонок?
    unless_buffer_contains(ring, local4)

    ; определить номер
    ATCMD(at_clcc + 1)

    delay(#380)
    delay(#380)
    delay(#380)
    delay(#380)
    delay(#380)

    for(m, local1, local2)
        erase(callee, m)
    endfor(m, PHONE_LEN, local1, local2)

    ; ошибка: даже если номер не определен,
    ; сравнение выполняется
    unless_buffer_contains(clcc + 1, check_phone)

    invoke_strnpos(clcc + 1)

    ; callee_offset = strnpos(clcc) + CLCC_PHONE_OFFSET
    ze w0, w0
    add w0, #CLCC_PHONE_OFFSET, w0
    mov w0, [w14+callee_offset]
    ; m = 0
    movlo(0, m)
    bra local3

local5:
    ; buffer[callee_offset + m] == &amp;#x27;&amp;quot;&amp;#x27;?
    mov [w14+callee_offset], w1
    mov [w14+m], w0
    add w1, w0, w1
    mov #buffer, w0
    add w1, w0, w0
    mov.b [w0], w1
    mov_w0(&amp;#x27;&amp;quot;&amp;#x27;)
    sub.b w1, w0, [w15]
    ; закрывающая кавычка
    bra z, check_phone

    ; копируем номер звонящего:
    ; callee[m] = buffer[callee_offset + m]
    mov [w14+m], w2
    mov [w14+callee_offset], w1
    mov [w14+m], w0
    add w1, w0, w1
    mov #buffer, w0
    add w1, w0, w0
    mov.b [w0], w1
    mov #callee, w0
    add w2, w0, w0
    mov.b w1, [w0]

    endfor(m, PHONE_LEN, local3, local5)

check_phone:
    ; звонит владелец?

    ; search_result = FALSE
    movlo(FALSE, search_result)

    ; 1. если сигнатура CLCC не обнаружена, в callee будет номер предыдущего звонка
    ; (почти всегда номер хозяина)
    ; 2. то же при пустом номере &amp;quot;&amp;quot; (запрет определения номера)

    check_number(active1, phone1)
    check_number(active2, phone2)
    check_number(active3, phone3)

    mov [w14+search_result], w0
    sub w0, #TRUE, [w15]
    bra nz, drop_call

    ; поднять трубку
    ATCMD(ata)

    mul.uu w0, #0, w0
    mov w0, initialized_data
    mov w1, tm4h
    bclr IFS0, #T3IF
    bset IEC0, #T3IE

    movlf(TRUE, calling)

    bra local4

drop_call:
    ; сбросить звонок
    ATCMD0(ath)

local4:
    ; tm4h:initialized_data &amp;lt; 0xf00?
    mov initialized_data, w2
    mov tm4h, w3
    mov #15, w0
    mov #0, w1
    sub w2, w0, [w15]
    subb w3, w1, [w15]
    bra leu, not_calling

    IFNE(calling, TRUE, not_calling)

    mov.b MIC_PORT, wreg
    and.b w0, #MASK(MICLEVEL), w0
    CP0_W0
    bra nz, not_calling

    ; повесить трубку
    ATCMD(ath)

    ; сбросить флаг активного звонка
    movlf(0, calling)

    bclr IFS0, #T3IF
    bclr IEC0, #T3IE

not_calling:
    ; нет связи?
    unless_buffer_contains(no_carrier, local7)
    rcall clear_buffer

    bclr IFS0, #T3IF
    bclr IEC0, #T3IE

    ; сбросить флаг активного звонка
    movlf(0, calling)

local7:
    unless_buffer_contains(ath2 + 1, check_alert)
    rcall clear_buffer

    bclr IFS0, #T3IF
    bclr IEC0, #T3IE

    ; сбросить флаг активного звонка
    movlf(0, calling)

check_alert:
    IFNE(alert, TRUE, dont_call)

    ; сбрасываем флаг тревоги
    movlf(0, alert)

    IFNE(active1, TRUE, number1_inactive)

    ; звоним по первому номеру
    CALL(phone1, 4)
    bra call_done

number1_inactive:
    IFNE(active2, TRUE, number2_inactive)

    delay(#5000)
    CALL(phone2, 2)
    bra call_done

number2_inactive:
    IFNE(active3, TRUE, call_done)

    delay(#5000)

    ; звоним по третьему номеру
    CALL(phone3, 0)

call_done:
    delay(#1000)

dont_call:
    IFNE(charged, TRUE, repeat)

    movlf(0, charged)

    IFNE(active1, TRUE, sms_number1_inactive)
    SEND_SMS(#phone1, High_battery + 1, j)

sms_number1_inactive:
    IFNE(active2, TRUE, sms_number2_inactive)
    delay(#5000)
    SEND_SMS(#phone2, High_battery + 1, j)

sms_number2_inactive:
    IFNE(active3, TRUE, sms_number3_inactive)
    delay(#5000)
    SEND_SMS(#phone3, High_battery + 1, j)

sms_number3_inactive:
    delay(#1000)
    bra repeat

wrong_state:
    ulnk
    return


#include &amp;quot;itoa_digit.asm&amp;quot;


; прерывание от охранного шлейфа
interrupt_sensor:
    .scope
    push RCOUNT
    push.d w0
    push.d w2
    push.d w4
    push.d w6
    push PSVPAG

    mov #0, w0
    mov w0, PSVPAG

    lnk #0x00

    ; Input Change Notification Interrupt Flag Status bit
    bclr IFS1, #CNIF

    ; контроль охранного шлейфа сигнализации
    mov.b HIREG(SENSOR_PORT), wreg
    and.b w0, #HIMASK(SENSOR), w0
    CP0_W0
    bra z, sensor_ok

    ; за это время можно и успеть восстановить шлейф (быстро войти и закрыть дверь)
    delay(#600)

    mov.b HIREG(SENSOR_PORT), wreg
    and.b w0, #HIMASK(SENSOR), w0
    CP0_W0
    bra z, sensor_ok

    ; тревога!
    movlf(TRUE, alert)

sensor_ok:

    ; аккумулятор полностью заряжен?
    mov.b CHARGE_PORT, wreg
    and.b w0, #CHARGE, w0
    CP0_W0
    bra nz, exit

    delay(#600)

    mov.b CHARGE_PORT, wreg
    and.b w0, #CHARGE, w0
    CP0_W0
    bra nz, exit

    ; аккумулятор заряжен
    movlf(TRUE, charged)

exit:
    ulnk
    pop PSVPAG
    pop.d w6
    pop.d w4
    pop.d w2
    pop.d w0
    pop RCOUNT
    retfie
    .ends

initialized_data:

; инициализированные данные
#include &amp;quot;idata2.asm&amp;quot;

; все неиспользуемые прерывания
interrupt_reset:
    reset
&lt;/pre&gt;
  &lt;p id=&quot;aqYA&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;g7NU&quot;&gt;uart.asm (последовательный порт)&lt;/h3&gt;
  &lt;pre id=&quot;lV2V&quot;&gt;; антипаттерн работы с последовательным портом
interrupt_uart:                 ; оригинальный адрес 0x0748
    .scope

    push.d w0
    push PSVPAG
    mov #0, w0
    mov w0, PSVPAG
    lnk #0x02

    ; прерывание обработано
    ; бит нужно сбрасывать в конце обработчика, а не в начале
    ; https://www.joelw.id.au/PicMcuTips
    bclr IFS0, #U1RXIF

    ; этот цикл - источник зависаний
    ; не проверяются FERR, PERR, OERR
wait:
    mov.b U1STA, wreg
    ; Receive buffer has data; at least one more character can be read
    and.b w0, #MASK(URXDA), w0
    CP0_W0
    bra z, wait

    ; принятый байт (а в буфере USART могут быть еще)
    mov U1RXREG, w0

    ; временно сохраняем
    mov.b w0, [w14]

    ; buffer[bufptr++] = c
    mov bufptr, w1
    mov #buffer, w0
    add w1, w0, w0
    mov.b [w14], [w0]

    incf(bufptr)

    ; буфер не заполнен?
    IFNE2(bufptr, BUFSZ, end)

    ; первые байты перезаписываются новыми,
    ; что может привести к интересным уязвимостям
    movlf(0, bufptr)

end:
    ulnk
    pop PSVPAG
    pop.d w0
    retfie
    .ends

transmit_char:
    lnk #0x02
    mov.b w0, [w14]

    mov.b U1STA + 1, wreg
    and.b w0, #2, w0
    CP0_W0
    bra nz, $-6

    se [w14], w0
    mov w0, U1TXREG

    ulnk
    return

setup_uart:
    lnk #0x00

    movlf(103, U1BRG)           ; Baud Rate Generator Prescaler Register (160)
    movlf(0, U1MODE)
    bset U1MODE, #BRGH
    bset U1MODE, #UARTEN        ; UARTx Enable bit (162)

    ; URXISEL = 0
    ; Interrupt is set when any character is received and transferred from the
    ; RSR to the receive buffer;
    ; receive buffer has one or more characters (164)
    movlf(0, U1STA)

    ; Transmit is enabled, UxTX pin is controlled by UARTx (164)
    bset U1STA, #UTXEN
    bclr IFS0, #U1RXIF

    bset IEC0, #T4IE            ; разрешить прерывания от таймера 4

    ulnk
    return

transmit_at_command:
    .scope
    lnk #0x02
    mov w0, [w14]
    bra loop

next_char:
    mov.b U1STA + 1, wreg
    and.b w0, #2, w0
    CP0_W0
    bra nz, next_char
    mov [w14], w0
    mov.b [w0], w0
    se w0, w0
    mov w0, U1TXREG
    inc [w14], [w14]

loop:
    mov [w14], w0
    mov.b [w0], w0
    CP0_W0
    bra nz, next_char

    ulnk
    return
    .ends
&lt;/pre&gt;
  &lt;p id=&quot;wnN9&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;S3Fb&quot;&gt;macro.asm (макросы)&lt;/h3&gt;
  &lt;pre id=&quot;AmA8&quot;&gt;;===============================================================================
; Макросы

#include &amp;quot;naken.asm&amp;quot;

.macro for(var, label_start, label_next)
    movlo(0, var)
    bra label_start
label_next:
.endm

.macro endfor(var, limit, label_start, label_next)
    inco(w14, var)
label_start:
    .if var == 0
        mov #limit, w0
        subr w0, [w14], [w15]
    .else
        mov [w14+var], w1
        mov #limit, w0
        sub w1, w0, [w15]
    .endif
    bra le, label_next
.endm

; for до конца строки
.macro endforc(buf, pos, label_start, label_next)
    inco(w14, pos)
label_start:
    getc(buf, pos)
    add.b w0, #1, [w15]
    bra nz, label_next
.endm

.macro endforc2(buf, pos, limit, label_start, label_next)
    inco(w14, pos)
label_start:
    getc(buf, pos)
    add.b w0, #1, [w15]
    bra z, break
    IFLEO(w14, pos, limit, label_next)
break:
.endm

.macro inc16(high, low)
    mov low, w0
    mov high, w1
    add w0, #1, w0
    addc w1, #0, w1
    mov w0, low
    mov w1, high
.endm

.macro erase(buf, var)
    movor(w14, var, w1)
    mov #buf, w0
    add w1, w0, w1
    ; 0xff
    setm.b w0
    mov.b w0, [w1]
.endm

; reg = base[pos]
.macro getc_(base, pos, reg)
    movor(w14, pos, w1)
    mov base, w0
    add w1, w0, w0
    mov.b [w0], reg
.endm

; w0 = base[pos]
.macro getc(base, pos)
    getc_(base, pos, w0)
.endm

.macro delay(n)
    mov n, w0
    rcall function_delay
.endm

; отправить AT-команду без предварительной очистки буфера ответа
.macro ATCMD0(cmd)
    mov LDM(cmd), w0
    rcall transmit_at_command
.endm

.macro ATCMD(cmd)
    rcall clear_buffer
    ATCMD0(cmd)
.endm

; отправить символ
.macro SEND(char)
    mov_w0(char)
    rcall transmit_char
.endm

.macro SEND_SMS(number, text, ii)
.scope
    ; AT+CMGS=&amp;quot;recipient_number&amp;quot;
    ATCMD0(at_cmgs + 1)

    for(ii, start, next)
        getc(number, ii)
        rcall transmit_char
    endforc(number, ii, start, next)

    ATCMD0(Ready - 1)
    SEND(&amp;#x27;\r&amp;#x27;)
    SEND(&amp;#x27;\n&amp;#x27;)

    delay(#1000)

    ATCMD0(text)

    ; ^Z - символ конца сообщения
    SEND(0x1a)
.ends
.endm

.macro led_on
    bset LED_PORT, #LED
.endm

.macro led_off
    bclr LED_PORT, #LED
.endm

.macro blink
    led_on
    delay(#250)
    led_off
    delay(#250)
.endm

.macro IBLINK
    mov.b LED_PORT, wreg        ; мигаем
    ze w0, w0
    lsr w0, #LED, w0
    and.b w0, #1, w0
    com.b w0, w0
    and.b w0, #1, w0
    and.b w0, #1, w0            ; что за ерунда?
    sl w0, #LED, w2
    mov #LED_PORT, w1
    mov.b [w1], w1
    mov_w0(~MASK(LED))
    and.b w1, w0, w0
    ior.b w0, w2, w0
    mov.b wreg, LED_PORT
.endm

.macro CALL(number, tmp)
.scope
    ATCMD0(atd + 1)

    for(tmp, start, next)
        getc(#number, tmp)
        rcall transmit_char
    endforc2(#number, tmp, PHONE_LEN, start, next)

    ATCMD0(tail + 1)
.ends
.endm

; вызов функции с двумя аргументами
.macro invoke2(func, arg1, arg2)
    mov arg1, w0
    mov arg2, w1
    rcall initialize
.endm

; вызов функции strnpos для поиска в буфере
.macro invoke_strnpos(needle)
    mov LDM(needle), w1
    mov #BUFSZ, w2
    mov #buffer, w0
    rcall strnpos
.endm

; буфер не содержит needle
.macro unless_buffer_contains(needle, label)
    invoke_strnpos(needle)
    CP0_W0
    bra lt, label
.endm

; буфер содержит needle
.macro if_buffer_contains(needle, label)
    invoke_strnpos(needle)
    CP0_W0
    bra ge, label
.endm

; читать номер из записной книги SIM карты
.macro read_parse_phonebook(cmd, number, flag_active)
    .scope
    ATCMD(cmd)
    delay(#1500)

    ; заполнить номер 0xff
    for(i, start1, next1)
        erase(number, i)
    endfor(i, PHONE_LEN, start1, next1)

    ; проверка корректности ответа
    unless_buffer_contains(cpbr + 1, error)

    invoke_strnpos(cpbr + 1)

    ze w0, w0
    add w0, #10, w0
    mov w0, [w14+pbk]

    for (i, start, next)
        mov [w14+pbk], w1
        mov [w14+i], w0
        add w1, w0, w1
        mov #buffer, w0
        add w1, w0, w0
        mov.b [w0], w1

        ; до закрывающей кавычки
        mov_w0(&amp;#x27;&amp;quot;&amp;#x27;)
        sub.b w1, w0, [w15]
        bra z, break

        ; сохраняем номер в number
        mov [w14+i], w2
        mov [w14+pbk], w1
        mov [w14+i], w0
        add w1, w0, w1
        mov #buffer, w0
        add w1, w0, w0
        mov.b [w0], w1
        mov #number, w0
        add w2, w0, w0
        mov.b w1, [w0]
    endfor(i, PHONE_LEN, start, next)

break:
    ; первый номер прочитан с SIM карты, пометить как активный
    movlf(TRUE, flag_active)
error:
    delay(#2000)
    .ends
.endm

.macro check_number(flag_active, number)
    .scope
    mov flag_active, w0
    sub w0, #TRUE, [w15]
    bra nz, exit

    for(m, start, next)
        ; number[m] == callee[m]?
        getc_(#number, m, w2)
        getc_(#callee, m, w0)
        sub.b w2, w0, [w15]
        bra nz, break
    endfor(m, PHONE_LEN, start, next)

break:
    ; number[m] != callee[m]
    mov [w14+m], w1
    mov #PHONE_LEN + 1, w0
    sub w1, w0, [w15]
    bra nz, exit

    movlo(TRUE, 6)

exit:
    .ends
.endm

.macro get_digit(ndigit, dest)
    mov.b [w14+cbcpos], w0
    ze w0, w0
    add w0, #ndigit, w1
    mov #buffer, w0
    add w1, w0, w0
    mov.b [w0], dest
.endm
&lt;/pre&gt;
  &lt;p id=&quot;37Pj&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;hjyz&quot;&gt;utils.asm (очистка буфера, задержки, поиск подстроки)&lt;/h3&gt;
  &lt;pre id=&quot;R3Sk&quot;&gt;clear_buffer:
    .scope
    lnk #0x02

    for(0, check_cond, repeat)
        erase(buffer, 0)
    endfor(0, BUFSZ, check_cond, repeat)

    movlf(0, bufptr)

    ulnk
    return
    .ends

function_delay:
    .scope
    lnk #0x02

    mov w0, [w14]

    movlf(0x8000, T2CON)
    bra start

loop:
    movlf(0, TMR2)
inner:
    mov TMR2, w1
    mov #3999, w0
    sub w1, w0, [w15]
    bra leu, inner
start:
    dec [w14], [w14]
    setm w0
    subr w0, [w14], [w15]
    bra nz, loop

    ulnk
    return
    .ends

; не используется
timer_delay:
    .scope
    lnk #0x02
    mov w0, [w14]

    movlf(0x8000, T2CON)

    bra start

repeat:
    movlf(0, TMR2)

wait:
    mov TMR2, w1
    mov #PHONE_LEN, w0
    sub w1, w0, [w15]
    bra leu, wait

start:
    dec [w14], [w14]
    setm w0
    subr w0, [w14], [w15]
    bra nz, repeat

    ulnk
    return
    .ends

strnpos:
.scope
    lnk #0x0c

    mov w0, [w14+4]             ; haystack
    mov w1, [w14+6]             ; needle
    mov w2, [w14+8]             ; максимальная длина (i + j)

    for(2, check, nextchar)  ; i (2) - позиция в haystack
    movlo(0, 0)                 ; j (0) - позиция в needle
    bra compare

match:
    inco(w14, 0)                ; j++

    ; needle[j] == &amp;#x27;\0&amp;#x27;?
    mov [w14], w1
    mov [w14+6], w0
    add w1, w0, w0
    mov.b [w0], w0
    CP0_W0
    bra nz, more

    ; нашли needle
    ; возвращаем i - позицию в haystack
    mov [w14+2], w0
    ze w0, w0
    mov w0, [w14+10]
    bra exit

more:
    ; еще не конец needle
    mov [w14+2], w0
    add w0, [w14], w1           ; i + j
    mov [w14+8], w0             ; максимальная длина
    sub w1, w0, [w15]
    bra ltu, compare

    ; подстрока не найдена
    ; достигнут предел суммы позиций в haystack и needle
    mov #0xff, w0
    mov w0, [w14+10]
    bra exit

compare:
    mov [w14+2], w0             ; i
    add w0, [w14], w0           ; j
    mov w0, w1

    mov [w14+4], w0             ; haystack
    add w1, w0, w0
    mov.b [w0], w2              ; w2 = haystack[i + j]

    mov [w14], w1               ; j
    mov [w14+6], w0             ; needle
    add w1, w0, w0
    mov.b [w0], w0              ; w0 = needle[j]

    sub.b w2, w0, [w15]
    bra z, match

    ; символы не совпали
    ; i++ (следующая позиция в haystack)
    inco(w14, 2)

check:
    ; достигли конца haystack?
    mov [w14+2], w1             ; i
    mov [w14+8], w0             ; предел haystack
    sub w1, w0, [w15]
    bra leu, nextchar

    ; конец haystack
    movlo(0xff, 10)             ; -1 - не найдено

exit:
    mov [w14+10], w0            ; результат
    ulnk
    return
.ends
&lt;/pre&gt;
  &lt;p id=&quot;Zqza&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;26M6&quot;&gt;at.asm (строки AT-команд)&lt;/h3&gt;
  &lt;pre id=&quot;T0ay&quot;&gt;org 0x290
    ; AT команды и ответы SIM900

.align_bits 8
at:
    ; &amp;quot;AT\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

ok:
    ; &amp;quot;OK&amp;quot;
    db &amp;#x27;O&amp;#x27;,0,0,&amp;#x27;K&amp;#x27;,0,0,0

at_cpin:
    ; &amp;quot;AT+CPIN?\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;PI&amp;quot;,0,0,&amp;quot;N?&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

cpin_sim_pin:
    ; &amp;quot;+CPIN: SIM PIN&amp;quot;
    db &amp;#x27;+&amp;#x27;,0,0,&amp;quot;CP&amp;quot;,0,0,&amp;quot;IN&amp;quot;,0,0,&amp;quot;: &amp;quot;,0,0,&amp;quot;SI&amp;quot;,0,0,&amp;quot;M &amp;quot;,0,0,&amp;quot;PI&amp;quot;,0,0,&amp;#x27;N&amp;#x27;,0,0,0

cpin_ready:
    ; &amp;quot;+CPIN: READY&amp;quot;
    db &amp;quot;+C&amp;quot;,0,0,&amp;quot;PI&amp;quot;,0,0,&amp;quot;N:&amp;quot;,0,0,&amp;quot; R&amp;quot;,0,0,&amp;quot;EA&amp;quot;,0,0,&amp;quot;DY&amp;quot;,0,0,0

at_cpin_2000:
    ; &amp;quot;AT+CPIN=2000\r\n&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;T+&amp;quot;,0,0,&amp;quot;CP&amp;quot;,0,0,&amp;quot;IN&amp;quot;,0,0,&amp;quot;=2&amp;quot;,0,0,&amp;quot;00&amp;quot;,0,0,&amp;quot;0\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

at_creg:
    ; &amp;quot;AT+CREG?\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;RE&amp;quot;,0,0,&amp;quot;G?&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

creg_01:
    ; &amp;quot;+CREG: 0,1&amp;quot;
    db &amp;#x27;+&amp;#x27;,0,0,&amp;quot;CR&amp;quot;,0,0,&amp;quot;EG&amp;quot;,0,0,&amp;quot;: &amp;quot;,0,0,&amp;quot;0,&amp;quot;,0,0,&amp;#x27;1&amp;#x27;,0,0,0

at_cpbs_sm:
    ; AT+CPBS=&amp;quot;SM&amp;quot;\r\n
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;PB&amp;quot;,0,0,&amp;quot;S=&amp;quot;,0,0,&amp;quot;\&amp;quot;S&amp;quot;,0,0,&amp;quot;M\&amp;quot;&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

at_cpbr_1:
    ; &amp;quot;AT+CPBR=1\r\n&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;T+&amp;quot;,0,0,&amp;quot;CP&amp;quot;,0,0,&amp;quot;BR&amp;quot;,0,0,&amp;quot;=1&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

cpbr:
    ; &amp;quot;+CPBR:&amp;quot;
    db &amp;#x27;+&amp;#x27;,0,0,&amp;quot;CP&amp;quot;,0,0,&amp;quot;BR&amp;quot;,0,0,&amp;#x27;:&amp;#x27;,0,0,0

at_cpbr_2:
    ; &amp;quot;AT+CPBR=2\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;PB&amp;quot;,0,0,&amp;quot;R=&amp;quot;,0,0,&amp;quot;2\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

at_cpbr_3:
    ; &amp;quot;AT+CPBR=3\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;PB&amp;quot;,0,0,&amp;quot;R=&amp;quot;,0,0,&amp;quot;3\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

at_cmgf_1:
    ; AT+CMGF=1\r\n
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;MG&amp;quot;,0,0,&amp;quot;F=&amp;quot;,0,0,&amp;quot;1\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

; AT+CMIC=&amp;lt;channel&amp;gt;,&amp;lt;gainlevel&amp;gt;
; https://www.espruino.com/datasheets/SIM900_AT.pdf
; &amp;lt;channel&amp;gt; 0 main audio handset channel
; 1 aux audio headset channel
; 2 main audio handfree channel
; 3 aux audio handfree channel
; &amp;lt;gainlevel&amp;gt; int: 0-15

; animals:
; на канале 1 чувствительность кажется получше, но качество звука идеальное, чистый без искажений звук
; на 2 канале отличий не увидел, всё также как и канале 0

at_cmic00:
    ; &amp;quot;AT+CMIC=0,0\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;MI&amp;quot;,0,0,&amp;quot;C=&amp;quot;,0,0,&amp;quot;0,&amp;quot;,0,0,&amp;quot;0\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

at_cmic015:
    ; &amp;quot;AT+CMIC=0,15\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;+C&amp;quot;,0,0,&amp;quot;MI&amp;quot;,0,0,&amp;quot;C=&amp;quot;,0,0,&amp;quot;0,&amp;quot;,0,0,&amp;quot;15&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

at_cmgs:
    ; AT+CMGS=&amp;quot;\x00&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;T+&amp;quot;,0,0,&amp;quot;CM&amp;quot;,0,0,&amp;quot;GS&amp;quot;,0,0,&amp;quot;=\&amp;quot;&amp;quot;,0,0,&amp;quot;\0\&amp;quot;&amp;quot;,0,0,0

Ready:
    ; &amp;quot;Ready&amp;quot;
    db &amp;#x27;R&amp;#x27;,0,0,&amp;quot;ea&amp;quot;,0,0,&amp;quot;dy&amp;quot;,0,0,0

at_cbc:
    ; &amp;quot;AT+CBC\r\n&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;T+&amp;quot;,0,0,&amp;quot;CB&amp;quot;,0,0,&amp;quot;C\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

cbc:
    ; &amp;quot;+CBC:&amp;quot;
    db &amp;quot;+C&amp;quot;,0,0,&amp;quot;BC&amp;quot;,0,0,&amp;#x27;:&amp;#x27;,0,0,0

Low_battery:
    ; &amp;quot;Low battery&amp;quot;
    db &amp;quot;Lo&amp;quot;,0,0,&amp;quot;w &amp;quot;,0,0,&amp;quot;ba&amp;quot;,0,0,&amp;quot;tt&amp;quot;,0,0,&amp;quot;er&amp;quot;,0,0,&amp;#x27;y&amp;#x27;,0,0,0

ring:
    ; &amp;quot;RING&amp;quot;
    db &amp;quot;RI&amp;quot;,0,0,&amp;quot;NG&amp;quot;,0,0,0

at_clcc:
    ; &amp;quot;AT+CLCC\r\n&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;T+&amp;quot;,0,0,&amp;quot;CL&amp;quot;,0,0,&amp;quot;CC&amp;quot;,0,0,&amp;quot;\r\n&amp;quot;,0,0,0

clcc:
    ; &amp;quot;+CLCC:&amp;quot;
    db &amp;#x27;+&amp;#x27;,0,0,&amp;quot;CL&amp;quot;,0,0,&amp;quot;CC&amp;quot;,0,0,&amp;#x27;:&amp;#x27;,0,0,0

ata:
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;A\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

ath:
    ; &amp;quot;ATH\r\n&amp;quot;
    db &amp;quot;AT&amp;quot;,0,0,&amp;quot;H\r&amp;quot;,0,0,&amp;#x27;\n&amp;#x27;,0,0,0

no_carrier:
    ; &amp;quot;NO CARRIER&amp;quot;
    db &amp;quot;NO&amp;quot;,0,0,&amp;quot; C&amp;quot;,0,0,&amp;quot;AR&amp;quot;,0,0,&amp;quot;RI&amp;quot;,0,0,&amp;quot;ER&amp;quot;,0,0,0

; дубликат строки
ath2:
    ; &amp;quot;ATH&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;TH&amp;quot;,0,0,0

atd:
    ; &amp;quot;ATD&amp;quot;
    db &amp;#x27;A&amp;#x27;,0,0,&amp;quot;TD&amp;quot;,0,0,0

tail:
    ; &amp;quot;;\x00\r\n&amp;quot;
    db &amp;quot;;\0&amp;quot;,0,&amp;quot;\r\n&amp;quot;,0,0,0

High_battery:
    ; &amp;quot;High battery 100%&amp;quot;
    db &amp;#x27;H&amp;#x27;,0,0,&amp;quot;ig&amp;quot;,0,0,&amp;quot;h &amp;quot;,0,0,&amp;quot;ba&amp;quot;,0,0,&amp;quot;tt&amp;quot;,0,0,&amp;quot;er&amp;quot;,0,0,&amp;quot;y &amp;quot;,0,0,&amp;quot;10&amp;quot;,0,0,&amp;quot;0%&amp;quot;,0,0,0
    db 0,0,0
&lt;/pre&gt;
  &lt;p id=&quot;0LlC&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;aPpq&quot;&gt;atoi.asm (преобразование строки в число)&lt;/h3&gt;
  &lt;pre id=&quot;nVGD&quot;&gt;.macro atoi_case(n, offset, label, nobra)
    movl(n, w0)
    movro(w0, w14, offset)
    .if nobra == 0
        bra label
    .endif
.endm

; avoid naken_asm 1024 chars macro limit
.macro atoi_subround(label, tmp1, tmp2, tmp3)
    ; select
    mov [w14+tmp1], w0
    mov [w14+tmp2], w1
    bra w0

    ; case
    bra $+20
    bra $+2*(10+1*2)
    bra $+2*(10+2*2)
    bra $+2*(10+3*2)
    bra $+2*(10+4*2)
    bra $+2*(10+5*2)
    bra $+2*(10+6*2)
    bra $+2*(10+7*2)
    bra $+2*(10+8*2)
    bra $+2*(10+9*2)

    atoi_case(0, tmp3, label, 0)
    atoi_case(1, tmp3, label, 0)
    atoi_case(2, tmp3, label, 0)
    atoi_case(3, tmp3, label, 0)
    atoi_case(4, tmp3, label, 0)
    atoi_case(5, tmp3, label, 0)
    atoi_case(6, tmp3, label, 0)
    atoi_case(7, tmp3, label, 0)
    atoi_case(8, tmp3, label, 0)
    atoi_case(9, tmp3, label, 1)
.endm

.macro atoi_round(tmp0, tmp1, tmp2, tmp3, label)
    mov.b [w14+tmp0], w0
    ze w0, w0
    mul.su w0, #1, w2
    mov #-&amp;#x27;0&amp;#x27;, w0
    mov #-1, w1
    add w0, w2, w2
    addc w1, w3, w3
    mov w2, [w14+tmp1]
    mov w3, [w14+tmp2]
    mov #9, w0
    mov #0, w1
    mov [w14+tmp1], w2
    mov [w14+tmp2], w3
    sub w2, w0, [w15]
    subb w3, w1, [w15]
    bra gtu, label

    atoi_subround(label, tmp1, tmp2, tmp3)

label:
.endm

function_atoi:
    .scope
    lnk #0x1c
    mov.b w0, [w14+8]
    mov.b w1, [w14+9]
    mov.b w2, [w14+10]
    mov.b w3, [w14+11]

    atoi_round(8, 12, 14, 6, overflow1)
    atoi_round(9, 16, 18, 4, overflow2)
    atoi_round(10, 20, 22, 2, overflow3)
    atoi_round(11, 24, 26, 0, overflow4)

    mov [w14+6], w1
    mov #1000, w0
    mul.ss w1, w0, w0
    mov w0, w2
    mov [w14+4], w1
    mov #100, w0
    mul.ss w1, w0, w0
    add w2, w0, w2
    mov [w14+2], w0
    mul.su w0, #10, w0
    add w2, w0, w0
    add w0, [w14], w0

    ulnk
    return
    .ends&lt;/pre&gt;
  &lt;p id=&quot;HqhI&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;rCnD&quot;&gt;naken.asm (исправление ошибок дизассемблера и макросы-сокращения)&lt;/h3&gt;
  &lt;pre id=&quot;8Rfo&quot;&gt;.macro sleep_
    ; unknown opcode
    db 0, 0x40, 0xda, 0
.endm

; константа - регистр
.macro movl(value, reg)
    .if (value) == 0
        clr reg
    .else
        mov #(value), reg
    .endif
.endm

; константа - файл
.macro movlf(value, file)
    movl(value, w0)
    mov w0, (file)
.endm

; [reg] and [reg+0] are not the same
.macro movro(src, dst, offset)
    .if (offset) == 0
        mov src, [dst]
    .else
        mov src, [dst+offset]
    .endif
.endm

; косвенная базовая адресация (со смещением и без)
.macro movor(src, offset, dst)
    .if (offset) == 0
        mov [src], dst
    .else
        mov [src+offset], dst
    .endif
.endm

.macro movlo(value1, var1)
    movl(value1, w0)
    movro(w0, w14, var1)
.endm

.macro inco(reg, offset)
    .if offset == 0
        inc [reg], [reg]
    .else
        mov [reg+offset], w0
        inc w0, w0
        mov w0, [reg+offset]
    .endif
.endm

; если [reg+offset] &amp;lt; n, перейти на label
.macro IFLEO(reg, offset, n, label)
    .if offset == 0
        mov #n, w0
        subr w0, [reg], [w15]
    .else
        mov [reg+offset], w1
        mov #n, w0
        sub w1, w0, [w15]
    .endif
    bra le, label
.endm

.macro incf(file)
    mov file, w0
    inc w0, w0
    mov w0, file
.endm

; naken_asm bugs fix

;cp0 w0
.macro CP0_W0
    db 0, 4, 0xe0, 0
.endm

; mov #b, w0
.macro mov_w0(b)
    db (b &amp;amp; 0x0f) &amp;lt;&amp;lt; 4, 0xc0 | ((b &amp;gt;&amp;gt; 4) &amp;amp; 0x0F), 0xb3, 0
.endm

; mov #b, w1
.macro mov_w1(b)
    db ((b &amp;amp; 0x0f) &amp;lt;&amp;lt; 4) | 1, 0xc0 | ((b &amp;gt;&amp;gt; 4) &amp;amp; 0x0F), 0xb3, 0
.endm

; если file не равно value, перейти на метку label
.macro IFNE(file, value, label)
    mov (file), w0
    sub w0, #(value), [w15]
    bra nz, (label)
.endm

.macro IFNE2(file, value, label)
    mov (file), w1
    mov #(value), w0
    sub w1, w0, [w15]
    bra nz, (label)
.endm&lt;/pre&gt;
  &lt;p id=&quot;Jxuz&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;yGXB&quot;&gt;PIC24FJ64GA004.inc (минималистический включаемый файл)&lt;/h3&gt;
  &lt;pre id=&quot;kcui&quot;&gt;;===============================================================================
; Самодельный PIC24FJ64GA004 для naken_asm
; см. include/dspic/convert.py для преобразования include-файлов
; из формата MPLAB в формат naken_asm (добавлено вручную - возможны ошибки!)

RPOR11  equ 0x06d6
RPINR18 equ 0x06a4
AD1PCFG equ 0x032c

PORTB   equ 0x02CA
RB14    equ 14          ; pin 14
RB8     equ 8           ; pin 44
RB2     equ 2           ; pin 23
RB0     equ 0           ; pin 21

TRISB   equ 0x02C8
TRISB14 equ 14
TRISB2  equ 2

PORTC   equ 0x02D2
RC9     equ 9           ; pin 5
RC1     equ 1           ; pin 26

TRISC   equ 0x02D0
TRISC9  equ 9

U1BRG   equ 0x0228
U1RXREG equ 0x0226
U1TXREG equ 0x0224

U1STA   equ 0x0222
UTXEN   equ 10
URXDA   equ 0

U1MODE  equ 0x0220
UARTEN  equ 15
BRGH    equ 3

T4CON   equ 0x011E
PR4     equ 0x011A
T3CON   equ 0x0112
T2CON   equ 0x0110
TMR2    equ 0x0106

TON     equ 0x8000
TCKPS0  equ 16
TCKPS1  equ 32

PR3     equ 0x010E

IPC4    equ 0x00AC

IEC1    equ 0x0096
T4IE    equ 11
T1IE    equ 3

IEC0    equ 0x0094
T3IE    equ 8

IFS1    equ 0x0086
T4IF    equ 11
CNIF    equ 3

IFS0    equ 0x0084
U1RXIF  equ 11
T3IF    equ 8

CNPU1   equ 0x0068
CN4PUE  equ 4
CN8PUE  equ 8

CNEN1   equ 0x0060
CN8IE   equ 8

CNEN2   equ 0x0062
CN22IE  equ 6

CORCON  equ 0x0044
PSV     equ 2

RCOUNT  equ 0x0036
PSVPAG  equ 0x0034
TBLPAG  equ 0x0032
SPLIM   equ 0x0020&lt;/pre&gt;
  &lt;p id=&quot;rPAU&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;tRLC&quot;&gt;idata.asm (инициализация переменных)&lt;/h3&gt;
  &lt;pre id=&quot;bi5b&quot;&gt;initialize:
    .scope
    ; Table Memory Page Address Register
    mov w1, TBLPAG
    mov w0, w1
    clr w0
    bra local1

local2:
    add w1, #2, w1
    addc TBLPAG
    tblrdl [w1], w3
    add w1, #2, w1
    addc TBLPAG
    tblrdl [w1], w5
    add w1, #2, w1
    addc TBLPAG
    clr w4
    lsr w5, #7, w6
    and #0x7f, w5
    cp.b w5, #0
    bra nz, local3

loop:
    clr.b [w2++]
    dec w3, w3
    bra gtu, loop

    bra local1

local3:
    cp w5, #1
    bra z, skip
    setm w4

skip:
    rcall function_026c

local1:
    ; reading the lower word
    tblrdl [w1], w2
    cp0 w2
    bra nz, local2

    return
    .ends


function_026c:
    .scope
start:
    tblrdl.b [w1++], [w2++]
    dec w3, w3
    bra z, exit

    tblrdl.b [w1--], [w2++]
    dec w3, w3
    bra z, next

    cp0 w4
    bra nz, local1

local2:
    add w1, #2, w1
    addc TBLPAG
    bra start

local1:
    tblrdh.b [w1], [w2++]
    dec w3, w3
    bra nz, local2

next:
    inc w1, w1

exit:
    add w1, #1, w1
    addc TBLPAG
    return
    .ends
&lt;/pre&gt;
  &lt;p id=&quot;NuaQ&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;iCyh&quot;&gt;ivt.asm (таблица векторов прерываний)&lt;/h3&gt;
  &lt;pre id=&quot;3VZy&quot;&gt;    ; таблица векторов прерываний
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_timer3,interrupt_reset, interrupt_reset, interrupt_uart
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_sensor
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_timer4
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, 0,                 0

    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_timer3,interrupt_reset, interrupt_reset, interrupt_uart
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_sensor
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_timer4
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
    dd interrupt_reset, interrupt_reset, interrupt_reset, interrupt_reset
&lt;/pre&gt;
  &lt;p id=&quot;DEv0&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;umeI&quot;&gt;idata2.asm (инициализированные данные)&lt;/h3&gt;
  &lt;pre id=&quot;a781&quot;&gt;    dd unknown, 0x40,   2,      0
    dd 0,       0,      0,      0
    dd 0,       0,      0,      0
    dd 0,       0,      0,      0
    dd 0,       1,      0,      0
    dd 0,       1,      0,      0
    dd 0,       0x800,  0x9FE,  0
    dd 0&lt;/pre&gt;
  &lt;p id=&quot;wy2L&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;7VZG&quot;&gt;Перейти к &lt;a href=&quot;#Matf&quot;&gt;оглавлению&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;jpaV&quot;&gt;&lt;strong&gt;Подпишитесь&lt;/strong&gt; на мой блог, не дайте &lt;a href=&quot;/@badradio/plagiat&quot;&gt;фуфлыжникам&lt;/a&gt; шанса!&lt;/p&gt;
  &lt;p id=&quot;eOtH&quot;&gt;&lt;a href=&quot;/@badradio&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;xFrg&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:flind</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/flind?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Нерабочий радиомикрофон Э.Флинда (1981) v1.0</title><published>2025-12-11T05:38:21.102Z</published><updated>2025-12-28T14:08:37.662Z</updated><category term="radiomikrofony" label="Радиомикрофоны"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/24/b5/24b5dad0-2809-4e02-8954-317ff5c278ce.jpeg&quot;&gt;Книга «Электронные устройства для дома» вышла в 1984 году тиражом 200000 экземпляров в СССР, но ошибку в радиомикрофоне никто так и не заметил.</summary><content type="html">
  &lt;p id=&quot;CvJY&quot;&gt;Книга «&lt;strong&gt;Электронные устройства для дома&lt;/strong&gt;» вышла в &lt;strong&gt;1984&lt;/strong&gt; году тиражом 200000 экземпляров в СССР, но ошибку в радиомикрофоне никто так и не заметил.&lt;/p&gt;
  &lt;p id=&quot;zzYf&quot;&gt;Схема нерабочего радиомикрофона Э.Флинда:&lt;/p&gt;
  &lt;figure id=&quot;GXJM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/24/b5/24b5dad0-2809-4e02-8954-317ff5c278ce.jpeg&quot; width=&quot;525&quot; /&gt;
    &lt;figcaption&gt;Э.Флинд. Электронные устройства для дома. Рис. 3.1. Схема радиомикрофона&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;f2TK&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/32/e6323d5a-c397-41e3-8ab9-175e12749df0.jpeg&quot; width=&quot;525&quot; /&gt;
    &lt;figcaption&gt;Э.Флинд. Электронные устройства для дома. Рис. 3.3. Расположение элементов на плате радиомикрофона&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;y2Jy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a2/a1/a2a1ecf4-1060-4bdd-a470-159d6598afea.jpeg&quot; width=&quot;525&quot; /&gt;
    &lt;figcaption&gt;Э.Флинд. Электронные устройства для дома. Номиналы элементов радиомикрофона&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CxXS&quot;&gt;Частота — средневолновый диапазон 200-400 м, антенна магнитная (должна быть расположена соосно с магнитной антенной радиоприемника).&lt;/p&gt;
  &lt;p id=&quot;6pSa&quot;&gt;На транзисторе VT2 собран источник тока: I = ((9В * R5 / (R5 + R4)) - 0.6В) / R8.&lt;/p&gt;
  &lt;p id=&quot;cn45&quot;&gt;При модуляции в базу VT2 меняется ток генератора на VT3, VT4, следовательно и мощность.&lt;/p&gt;
  &lt;p id=&quot;QHmg&quot;&gt;Проблема в том, что при указанных на схеме номиналах I = ((9 * 8.2 / (8.2 + 39)) - 0.6) / 3.3 = 292 мкА, и при таком ничтожном токе генератор просто не будет работать.&lt;/p&gt;
  &lt;p id=&quot;UI9p&quot;&gt;Чтобы радиомикрофон Флинда заработал, нужно &lt;strong&gt;уменьшить R8 в 10 раз&lt;/strong&gt; — до 330 Ом.&lt;/p&gt;
  &lt;p id=&quot;tsW1&quot;&gt;Так как в режиме молчания на базе VT2 1.5В, а на эмиттерах VT3, VT4 3.3В, то модуляцию без искажений получить трудно. При положительной полуволне модулирующего напряжения ток VT3, VT4 будет возрастать линейно, а при отрицательной — упадет до нуля уже при уменьшении базового напряжения VT2 на 0.7В. Это легко исправить, уменьшив &lt;strong&gt;R6&lt;/strong&gt; с 18 до 10 кОм.&lt;/p&gt;
  &lt;p id=&quot;5nOP&quot;&gt;В английском оригинале книги Э.Флинда эта ошибка тоже есть.&lt;/p&gt;
  &lt;p id=&quot;pPDM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;M7jA&quot;&gt;&lt;strong&gt;Подпишитесь на блог&lt;/strong&gt;, чтобы узнавать о новых статьях сразу.&lt;/p&gt;
  &lt;p id=&quot;jOat&quot;&gt;&lt;a href=&quot;https://teletype.in/@badradio&quot; target=&quot;_blank&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;9oSn&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>badradio:kp305</id><link rel="alternate" type="text/html" href="https://teletype.in/@badradio/kp305?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=badradio"></link><title>Нерабочий радиомикрофон Осенчука на КП305Ж и 2Т325В v1.0</title><published>2025-12-09T05:39:45.365Z</published><updated>2025-12-12T04:27:56.900Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/11/58/11583401-04a9-457a-b501-6ce962f24257.png"></media:thumbnail><category term="radiomikrofony" label="Радиомикрофоны"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/9f/d4/9fd48f96-aac2-41e2-81cb-040a04d4fc8e.png&quot;&gt;Впервые схема радиомикрофона на КТ3102Г, КП305, КВС111 и КТ325 опубликована в журнале Радиолюбитель №7/1998 под названием «Радиомикрофон на 108 МГц». Автор — А.Осенчук из п.Нижнеангарск, Бурятия.</summary><content type="html">
  &lt;p id=&quot;9jVX&quot;&gt;Впервые схема радиомикрофона на КТ3102Г, КП305, КВС111 и КТ325 опубликована в журнале Радиолюбитель №7/1998 под названием «&lt;strong&gt;Радиомикрофон на 108 МГц&lt;/strong&gt;». Автор — &lt;strong&gt;А.Осенчук из п.Нижнеангарск, Бурятия&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;B0L7&quot;&gt;&lt;a href=&quot;https://teletype.in/@badradio&quot; target=&quot;_blank&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;figure id=&quot;V6HX&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9f/d4/9fd48f96-aac2-41e2-81cb-040a04d4fc8e.png&quot; width=&quot;1198&quot; /&gt;
    &lt;figcaption&gt;Схема радиомикрофона А. Осенчука с RadioStorage.net, дополненная цоколевками КП305 и КТ3102&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;dOZl&quot;&gt;В 2012 году эта схема вместе с ошибками была &lt;a href=&quot;https://teletype.in/@badradio/plagiat&quot; target=&quot;_blank&quot;&gt;сворована&lt;/a&gt; неким «вектором» (№74922) и выложена на VRTP:&lt;/p&gt;
  &lt;p id=&quot;Dhiy&quot;&gt;vrtp .ru/index.php?act=categories&amp;amp;CODE=article&amp;amp;article=2873 (без регистраии ссылка не открывается).&lt;/p&gt;
  &lt;p id=&quot;mlpi&quot;&gt;Уже традиционно для VRTP, в статье «&lt;strong&gt;Радио микрофон FM диапозона. 3 транзитора&lt;/strong&gt;» упомянута целая толпа: вектор, Markus, матроскин, но только не автор.&lt;/p&gt;
  &lt;p id=&quot;YSpo&quot;&gt;Девиз &lt;a href=&quot;https://teletype.in/@badradio/plagiat&quot; target=&quot;_blank&quot;&gt;плагиатора&lt;/a&gt; (это он сам на странице своего профиля пишет):&lt;/p&gt;
  &lt;blockquote id=&quot;t7Bl&quot;&gt;Собрали и смело включайте, лишнее выгорит!&lt;/blockquote&gt;
  &lt;p id=&quot;ijeN&quot;&gt;Тем не менее, прежде чем включать эту дрянь, я бы посоветовал сначала добавить &lt;strong&gt;электролиты&lt;/strong&gt; по питанию.&lt;/p&gt;
  &lt;p id=&quot;ry05&quot;&gt;Затем можно заметить, что сопротивление &lt;strong&gt;R2&lt;/strong&gt; в ООС УНЧ (47 кОм) &lt;strong&gt;указано неверно&lt;/strong&gt;. Оно должно быть в 15-20 раз больше (680 кОм). Вместо шумного КТ3102Г следует применить малошумящий КТ3102Е, а микрофон зашунтировать конденсатором 100 пф для защиты от наводок с мобильных телефонов.&lt;/p&gt;
  &lt;p id=&quot;Eyvv&quot;&gt;Также можно радикально улучшить разборчивость речи, заменив убогий однотранзисторный УНЧ &lt;a href=&quot;https://teletype.in/@badradio/aru&quot; target=&quot;_blank&quot;&gt;схемой Kotu&lt;/a&gt; с автоматической регулировкой усиления (&lt;strong&gt;АРУ&lt;/strong&gt;).&lt;/p&gt;
  &lt;p id=&quot;joeg&quot;&gt;Примененная Осенчуком схема задающего генератора на МОП-транзисторе — одна из лучших по стабильности, шумам и КПД. Но при повторении конструкции она фактически неработоспособна, потому что &lt;strong&gt;подложка должна быть соединена с истоком&lt;/strong&gt;, а у КП305 она соединена с корпусом, который незнающие этой «хитрости» просто заземлят.&lt;/p&gt;
  &lt;p id=&quot;siyQ&quot;&gt;Цепочка R10&lt;strong&gt;C6&lt;/strong&gt; (конденсатор &lt;strong&gt;100 пф — &lt;/strong&gt;четвертая &lt;strong&gt;ошибка&lt;/strong&gt;, заменить на 1...10 нанофарад) должна стоять в эмиттере VT3, стабилизируя рабочую точку усилителя мощности. У автора же она просто съедает лишний заряд батареи.&lt;/p&gt;
  &lt;p id=&quot;uB2W&quot;&gt;Только после исправления этих ошибок получим «рабочий» радиомикрофон.&lt;/p&gt;
  &lt;p id=&quot;CBaW&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;SYh7&quot;&gt;При указанных автором номиналах &lt;strong&gt;частота&lt;/strong&gt; будет не 108 МГц, а до 120 МГц.&lt;/p&gt;
  &lt;p id=&quot;GCyo&quot;&gt;При увеличении напряжения питания до 4В &lt;strong&gt;частота уходит вверх&lt;/strong&gt; на целых 4 МГц, так как напряжение на варикапной матрице КВС111 не стабилизировано.&lt;/p&gt;
  &lt;p id=&quot;3Lld&quot;&gt;Слово «рабочий» я взял в кавычки, потому что из-за &lt;strong&gt;безграмотной антенной цепи&lt;/strong&gt; значительная часть выходной мощности не излучается, а нагревает VT3.&lt;/p&gt;
  &lt;p id=&quot;wtTM&quot;&gt;Чтобы это исправить, вместо параллельного контура L5C5 нужно поставить ВЧ дроссель и &lt;strong&gt;П-контур&lt;/strong&gt;, согласовав антенну с усилителем мощности, после чего излучаемая &lt;strong&gt;мощность и КПД возрастут в разы при том же потребляемом токе&lt;/strong&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Qugu&quot;&gt;Зеленые &lt;a href=&quot;https://teletype.in/@badradio/radiokot.ru#c0VB&quot; target=&quot;_blank&quot;&gt;китайские дроссели&lt;/a&gt; тут не годятся, подойдут только самодельные без сердечника (как у &lt;a href=&quot;https://teletype.in/@badradio/transverter&quot; target=&quot;_blank&quot;&gt;Жутяева&lt;/a&gt;).&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;tUlw&quot;&gt;&lt;strong&gt;Расчет П-контура&lt;/strong&gt; для этого радиомикрофона оставляю в качестве домашнего задания, так как уже есть аналогичный &lt;a href=&quot;https://teletype.in/@badradio/filin&quot; target=&quot;_blank&quot;&gt;пример для радиомикрофона «Филин»&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;uwA0&quot;&gt;Найдите и скачайте методичку Титова «&lt;strong&gt;Проектирование цепей коррекции, согласования и фильтрации усилителей мощности радиопередающих устройств&lt;/strong&gt;». Вам понадобится таблица 2.2 на странице 13.&lt;/p&gt;
  &lt;p id=&quot;a19S&quot;&gt;Расчету П-контура предшествует выбор &lt;strong&gt;оптимального сопротивления нагрузки&lt;/strong&gt; транзистора 2Т325В при заданном напряжении питания. Методика есть в любом учебнике по проектированию радиопередатчиков (например, у &lt;strong&gt;Шахгильдяна&lt;/strong&gt;).&lt;/p&gt;
  &lt;p id=&quot;6xGg&quot;&gt;Пусть ток потребления выходного каскада этой схемы 20 мА при напряжении питания 3В. Значит, на R10 упадет 0.02А*56Ом=0.12В, и напряжение коллектора не более 3-0.12=2.88В. Оставив еще 0.3В на напряжение насыщения (в справочнике Петухова не указано), получим 2.58В. Тогда оптимальное сопротивление нагрузки будет 2.58В/0.02А=&lt;strong&gt;129 Ом&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;gYc4&quot;&gt;&lt;strong&gt;Импеданс антенны «четверьволновой штырь» около 35 Ом&lt;/strong&gt; (можно измерить NanoVNA).&lt;/p&gt;
  &lt;p id=&quot;JfxB&quot;&gt;Вот теперь, используя эти данные (35 Ом и 129 Ом) и зная частоту (около 120 МГц), можно по методичке Титова расчитать конкретные номиналы П-контура.&lt;/p&gt;
  &lt;p id=&quot;G5mb&quot;&gt;Первый шаг: коэффициент трансформации 129/35=3.69, ближайшее значение kтр в таблице 2.2 — 4. Дальше сами, полный пример &lt;a href=&quot;https://teletype.in/@badradio/filin&quot; target=&quot;_blank&quot;&gt;тут&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;HcvG&quot;&gt;После выполнения расчетов &lt;strong&gt;поделитесь результатами в комментариях&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;KK2z&quot;&gt;Помните о &lt;a href=&quot;https://teletype.in/@badradio/protivoves&quot; target=&quot;_blank&quot;&gt;противовесе&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;LT4d&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;SM50&quot;&gt;&lt;a href=&quot;https://teletype.in/@badradio&quot; target=&quot;_blank&quot;&gt;Все статьи →&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;XsAi&quot; data-align=&quot;center&quot;&gt;© Copyright 2025 Badradio. All rights reserved.&lt;br /&gt;Все права защищены. Копирование материалов сайта запрещено.&lt;br /&gt;При цитировании ставить кликабельную ссылку на первоисточник.&lt;/p&gt;
  &lt;/section&gt;

</content></entry></feed>