- В Keil v5 наткнулся на грабли: Какого-то хрена компилятор вызывает
не ту функцию, что требуется (похоже втуливает что то с
выравниванием 4). В результате hard fault... Как лечить? Гyдвин(616 знак., 23.07.2020 15:52, ARM, полностью)
- Короче... Особо буйные могут успокоиться, хлебнуть галоперидольчику
и скинуть смирительную рубаху. Бага нет! "Нестандартный язык" от
ARM все предусмотрел еще в 4 версии. Просто для v5 похоже сменились
"умолчания" для ключа компилятора "--pointer_alignment=xxx". Ну или
можно описать структуру вот так: Гyдвин(3109 знак., 25.07.2020 20:08)
- У вас на плате никаких передатчиков нету? С GSM модемом на борту и
процем STM32L151 тоже на hard fault нарвались, и плата в 4 слоя
была хорошо экранирована внутренними слоями, пока антенну на 90
градусов не развернул, hard fault не проходил. Программисты в шоке. - Visitor(25.07.2020 16:32)
- Короче, все печально. Поспрашивал коллегу, который занимается
частью проекта, в котором остались упакованные структуры. В IAR
точно также. Это не ошибка. Это сознательная диверсия. Некуда
ехать, приехали. - VLLV(24.07.2020 12:44)
- Функция memcpy не должна требовать выравнивания. Не морочь мозги,
покажи исходник на C. - fk0(23.07.2020 17:20)
- Хм... Дело обстоит еще интереснее - если прошагать отладчиком в
окне дизассемблера, эта __aeabi_memcpy4() отрабатывает без
hardfault. LPC1768 есличо... - Гyдвин(23.07.2020 16:03)
- IH.conag и buffer имеют тип char? - BlackMorda(23.07.2020 16:06)
- ВОТ!!! Гyдвин(1055 знак., 23.07.2020 19:10)
- Лично я не догоняю смысл одновременного использования #pragma
pack(1) и __align(4) применительно к struct {} Zoro(615 знак., 25.07.2020 16:19)
- ВОТ: SciFi(352 знак., 24.07.2020 10:28, ссылка)
- Aioeeeaaoiioaaie ieeooaaiieeo iaaiie! fk0(2534 знак., 23.07.2020 21:52, ссылка)
- в man memcpy написано что она принимает аргументы типа void* 3m(875 знак., 24.07.2020 08:41)
- А теперь представь, что "проверка адреса" выехала в compile time
(чтоб как раз не тратить на неё время, о чём ты пишешь) и всё
становится логично. Адреса в момент компиляции может и неизвестны,
но их атрибуты (выравнивание) берутся из типов и известны. - fk0(24.07.2020 11:32)
- C " ВСЕГДА" не согласен (от того и пострадамши :) Выравниваю для
контроллеров, в которых это требуется - для того же MSP430. Для
ARM7TDMI тоже бы учел. Но тут, млять, Cortex M3, аффтары которого с
момента появления били себя пяткой в грудь, что поддерживается
побайтный доступ, и x86 c Паскалем на другом конце. И до каких то
пор это было без извратов - есть стандарт для memcpy() и приведения
указателей. В том же Keil v5, если использовать библиотеку
"microLIB", все пучком - Гyдвин(27 знак., 24.07.2020 09:01)
- Это особенность ARM-архитектуры. При чтении/записи 32х-разрядного
числа игнорируются младшие два бита адреса. Архитектура x86 без
проблем может читать/писать по любому адресу. - Ale3000(24.07.2020 08:35)
- Все-таки остается одна неясность: il-2(361 знак., 24.07.2020 08:00 - 08:05)
- Речи правильные толкаешь :) Но компилятор, которому явно привели
тип указателя, но он "вызывает оптимизированную функцию которая
быстро копирует 32-битными словами" не имеет права на жизнь ;) - Гyдвин(23.07.2020 22:13)
- Почему "явное приведение типа указателя" считается каким-то
значимым аргументом? Всё равно перед вызовом memcpy эти указатели
неявно приведутся к void*. С тем же успехом можно в спортлото
написать. - SciFi(24.07.2020 09:57)
- gcc "чудный и замечательный" компилятор Zoro(183 знак., 24.07.2020 00:39)
- Проблема в том, что у тебя в программе _нет_ такого типа (U32, но
только "упакованный"). Если его руками создать, как в примере по
ссылке (внутри IY) -- то оно даже будет как надо работать.
Упакованные структуры это очень неполноценное и нестандартная
надстройка над C/C++. Не продуманная. Костыль. Её неспроста нет в
стандарте. Она "недоделанная" и не совсместима с моделью памяти и
системой типов C/C++. Стандартными (для C++, не для C) средствами
можно изголиться и сделать fk0(552 знак., 23.07.2020 22:28)
- Нет уж... Тысячи строк кода, драйверы, куски стороннего кода (та же
FatFs) и пр. как то не способствуют выворачиванию всего наизнанку.
А по этому топику: Cortex M3 (LPC17) имеет аппаратную побайтную
адресацию, посему фтопку компилер, взомнивший себя шибко
грамотным... Более ранняя версия работала "как в мудрых книгах
написано" - привели указатель к void* или char*, вызывается
предсказуемая библиотечная функция побайтного копирования (и все
остальные из string.h). И Гyдвин(118 знак., 23.07.2020 23:39)
- Говнокода. И не такие уж и тысячи. Практически всё что завелось не
на x86 такого говнокода не содержит. Потому, что и MIPS, и ARM --
это аппаратное исключение при невыравненном обращении и дальше либо
фиксация ошибки, либо программная эмуляция команды с невыравненным
чтением-записью (очень не быстро...) И даже на современном x86
словить исключение при невыравненном обращении -- запросто
(векторные инструкции). Ещё раз, повторю, упакованные структуры --
НЕ СТАНДАРТНАЯ ХЕРНЯ. fk0(3121 знак., 24.07.2020 01:19, ссылка)
- Все же тут похоже на глюк компилятора. PACKED это такой же
модификатор структуры как volatile или const которые должны
распространяться на все члены структуры. Соответственно, когда
делается &a.b на выходе должен получаться указатель с
соответствующим модификатором. А тут модификатор PACKED потерялся,
остальное последствия. Но я не большой знаток. - AlexBi(24.07.2020 09:53)
- А какой тип будут иметь по-твоему тогда члены структуры? Если в
структуры положить структуры и их тоже сделать packed -- получится.
А если в структуре уже лежит обычный int? Явно ж записано, что
такое-то поле -- int и с ним могут что-то делать и нельзя неявно
подменить тип -- работать перестанет (программист может начать
где-то сравнивать типы, например). Сама идея упакованных структур
-- не продуманная, в ней есть логические противоречия. - fk0(24.07.2020 11:46)
- В данном случае члены структуры должны становиться packed. А как,
по-твоему, работает (должно работать) volatile структура? Будут ее
члены каждый раз перечитываться? Указатель на члена структуры будет
volatile? AlexBi(405 знак., 24.07.2020 13:50)
- С чего ты решил, что они кому-то что-то должны? Где это написано?
Тип поля, если это не вновь определяемая на месте структура, уже
определён ранее и измениться никак не может (иначе это другой,
новый тип должен быть). А выравнивание и размер -- это атрибуты,
свойства, типа. Поэтому если ты в упакованную структуру положишь
ранее определённый тип, то он сохранит свои свойства. Структура
останется с "дырками" для выравнивания, обычный int сохранится с
alignas(4). Что мы и fk0(263 знак., 24.07.2020 14:34, ссылка)
- В студии не хватает кода. Там запросто может быть два определения
структуры -- с packed и без. - SciFi(24.07.2020 09:59)
- Вот суть: Гyдвин(1541 знак., 24.07.2020 10:24)
- тут знаю одно - атрибуты packed и volatile при пропускании через
формальные параметры функции завсегда теряются, но по ходу успевают
цепляться яйцами:) Vit(147 знак., 23.07.2020 22:12)
- Да и ты сделал #pragma pack, но нихера не вернул обратно (через
pragma push/pop -- смотри у меня пример по ссылке). В итоге у тебя
вся программа "упакованная" и глючная. Хуже того, в зависимости от
порядка включения хедеров одни и те же структуры в разных модулях
могли оказаться упакованные или нет. Кровь, кешки, фарш! - fk0(23.07.2020 21:55)
- Нужно весь тип структуры смотреть - пакед, не пакед, что впереди,
размерность. - VLLV(23.07.2020 16:29)
- В какую сторону должен вращаться этот вентилятор, чтобы эффективно
засасывать воздух изнутри и выбрасывать наружу? Yurasvs(1 знак., 25.07.2020 13:18, Off, картинка, полностью)
- Встраиваемые модули Ethernet->serial Moxa MiiNePortE2, как
управлять GPIO? Пробовал через веб-интерфейс - меняю состояние,
никак не реагирует. По самой работе вопросов нет, а с GPIO не
получается - AVF(25.07.2020 11:00, Cyber)
- Трансформатор тока как датчик наличия тока. Cкpипaч(382 знак., 18.07.2020 15:00, Cyber, ссылка, полностью)
- есть утилита для jlink, которая сохраняет принятые данные SWO в
файл? - Constantin24(21.07.2020 20:26, ARM, полностью)
- Громадье планов Роскосмоса уже пугает. То что это все останется на
бумаге сомнений не вызывает, за ресурсы можно не волноваться,
интересно другое - бюджет то сдюжит такие аппетиты. Ангара-5,
Енисей, Орел, Союз-2, Союз-5, Федерация, лунный транспортник,
лунная база. И все это за 10 лет. Теперь еще и это... - Codavr(21.07.2020 08:54, Off, ссылка, полностью)
- Не подскажет ли кто по USB ? Устройство получило адрес 2. Но иногда
на шине видны пакеты OUT на адрес 3..!!! (точка 2) Всегда
одинаковые, 31 байт: U,S,B,C,0xb0,0x3b,0x99,0x87. Все остальные 0,
кроме 15-го (==6). Что это ? - Юpий_CB(24.07.2020 18:01, MCU, полностью)
- По поводу грабель компиляторов: il-2(453 знак., 24.07.2020 14:56, ARM, полностью)
- И тут же в пансионатах куча свободных мест...потому что советские
номера по таким ценам нах никому не сдались... и сидят как соьаки
на сене местные...ждут золотую рыбку лоха, которых все меньше... - sav6622(21.07.2020 11:46 - 22.07.2020 11:35, Off, полностью)fk0
- Чей ГАЗ? BlackMorda(247 знак., 24.07.2020 10:41, Off, ссылка, полностью)
- [!!! NVidia может купить ARM] - Evgeny_CD(23.07.2020 14:55 - 24.07.2020 00:46, dao, ссылка, полностью)
- это все, что вам нужно знать об опыте, как о философской категории LordN(35 знак., 23.07.2020 06:21, Off, ссылка, полностью)
- Господа, есть проблема в понимании вложенности упакованных
структур. В функцию передается указатель на структуру, в результате
внутри и снаружи функции структура видится по разному, отличия в
хвосте вложенной структуры - в одном случае он "съеден", в другом
он пустым местом. Что говорит теория по этому поводу? VLLV(216 знак., 06.04.2020 15:17, dao, полностью)
- А структуры объявлены через typedef или непосредственно? - IBAH(07.04.2020 21:03)
- Я бы отказался от упакованных структур вообще. Проблема упакованных
структур, что абсолютно все должны знать, что вот именно эта
структура -- упакованная. А атрибут применяется не к типу данных, а
с переменной. В итоге тот же указатель -- он указывает как бы на
обычную (не упакованную) структуру уже. Либо замучаться везде
писать packed, либо отовсюду убрать, что сильно проще. Ибо вообще
непонятно зачем, создает массу проблем и ничего не решает.
Сериализацию нужно нормально fk0(29 знак., 06.04.2020 17:06)
- Я отказался в новых проектах, а в старых не могу из-за
совместимости с ранее выпущенными устройствами. - VLLV(06.04.2020 21:41)
- Разве? Сколько раз использовал Andreas(118 знак., 06.04.2020 17:17)
- В хедере описываете тип: LightElf(137 знак., 07.04.2020 17:52 - 08.04.2020 00:26)
- +1 - Aleksey_75(07.04.2020 17:57)
- Есть очевидная проблема, как например взять адрес члена упакованной
структуры и передать его по-указателю в функцию, например? А никак.
Потому, что член имеет определённый тип со своим свойстом alignas
(в C++, в C тоже, но неявно) и он ничего не знает, про то что
уложен в упакованную структуру. А для работы с членом положенным в
упакованную структуру нужно генерировать совершенно другой код
(из-за "ручного" выравнивания например). fk0(196 знак., 07.04.2020 21:55)
- Да, теперь понял в чем проблема, спасибо. Но до таких высот я пока
не поднимался и члены структур передавал в ф-ции только по
значению, и то редко. ИМХО заполнять заголовок пакета(а зачем еще
упаковка?) надо в одном месте. - Andreas(07.04.2020 22:35)
- вы о членах структуры которые сами являются структурами ? хм!
Принято! Хотя я последнее время поголовно упаковываю - Aleksey_75(07.04.2020 22:08)
- Нет, я даже об обычном int, например. Он же тоже выровнен должен
быть. И если на AVR оно прокатит, то на ARM'е может не проканать. - fk0(07.04.2020 22:18)
- Если долго и упорно стрелять себе в ногу - то рано или поздно
попадешь. Вменяемые люди таки обычно располагают поля структур
сообразно их размеру. - LightElf(07.04.2020 23:05)
- Тогда и упаковка не нужна. - fk0(07.04.2020 23:56)
- Какие альтернативы, например, для такой структуры? LightElf(475 знак., 08.04.2020 00:33)
- Сериализация руками. Вообще адский говнокод, очевидно же, хотя бы
из-за ендианности. Хотя ты конечно выкрутился и int32 у тебя
оказался случайно выровненный. Но если развивать мысль дальше, то и
без прагм оно точно так же разложит. Спрашивается, зачем
"упакованная" структура? - fk0(08.04.2020 01:33, ссылка)
- Но зачем делать руками работу компилятора и/или железа?
Эндианность, очевидно, в IP пакете фиксирована. А в коде, очевидно,
используются стандартные HTONL()/htonl() сотоварищи. Без прагм, в
зависимости от компилятора и целевой платформы, может разложиться
весьма по-разному. С прагмами - единственным определенным образом.
И почему это "случайно выровненный int32"? Вполне себе не случайно,
а вовсе даже прописано в спецификации на драйвер канального уровня.
Для LightElf(95 знак., 08.04.2020 02:37)
- Зачем делать работу... в твоем случае ни за чем. Но в общем случае
-- это не решение, а говнокод. - fk0(08.04.2020 11:46)
- Никак по-разному разложиться не может. Разложится всегда именно так
же как и с прагмами. Потому, что иначе не были бы возможны массивы
(alignas == sizeof) если речь идет о типах uint8, uint16, uint32 и
о "ручном" раскладывании с выравниванием, как сделано у тебя. А
если речь о других типах (структуры), или раскладка не выровненная
(int32 не на 32-битной границе), то возникает упомянутая мною
проблема: невозможность использования указателей. Выводы -- прагмы
бесполезны и не fk0(104 знак., 08.04.2020 11:42)
- А ты упертый :) Но блох ты ловишь не там. Разложиться по-другому
может, особенно на архитектурах без 16-битных операций (типа ARMv4)
- компилятор выровняет uint16_t на 32 бита. А вот как раз получить
раскладку с int32 не на 32-битной границе - это надо сильно
постараться. Ну и использование указателей на поля структуры,
вместо указателя на структуру целиком - это путь к успеху. - LightElf(08.04.2020 12:17)
- Отлично. Но ты ж сам доказал, что говнокод. На ARMv4. У тебя там
что лежит за 16-битным значением окажется не выровненным и на него
нельзя будет взять указатель. А сериализация ручками -- она всегда
работает, надежно железобетонно. И использование указателей на поля
структуры -- нормальный способ, иначе как писать абстрактные
функции, а не функции работающие именно с такой структурой. Хотя
конечно скалярные значения нормальные люди возвращают вовсе
по-значению, но случаи они fk0(14 знак., 08.04.2020 13:50)
- Я ж говорю - упертый ты :) В приведенной выше упакованной структуре
(стандартном заголовке IP пакета) все поля натурально выровнены.
Т.е. uint16_t лежит по смещению, кратному двум, а uint32_t лежит по
смещению, кратному четырем. Так задумано изначально не самыми
глупыми людьми. Соответственно, если сама структура лежит по адресу
кратному четырем, то и все ее поля лежат как положено. И указатели
нормально можно брать и использовать. Упаковка нужна, чтобы особо
умные LightElf(208 знак., 08.04.2020 16:21)
- Ну есть же возможность объявить указатель __packed, тогда
компилятор знает, что выравнивания нет. - VLLV(08.04.2020 14:55)
- Покажи пальцем где есть, я не в курсе. Всю жизнь упакованными были
только структуры, а не указатель на int. Кроме того, невозможно же
всем функциям присвоить такой атрибут. Есть, например, обычная
функция, которая возвращает значение по-указателю (например,
time(3)) и она ни сном, ни духом, что её аргумент могут положить в
упакованную структуру. - fk0(08.04.2020 15:09)
- Help IAR VLLV(1 знак., 08.04.2020 17:45, картинка)
- У меня ИАР ругается: argument of type "int __packed *" is
incompatible with parameter of type "int *" йцyкeн(379 знак., 08.04.2020 15:55)
- А разве компилятор не пожалуется, если взять такой указатель без
явного приведения типов и т.п. трюков? - AlexBi(08.04.2020 15:15)
- Невыровненный доступ компилятор может еще и догадается обыграть, а
вот урезанное поле - уже не обязательно. Помню у меня запись в
упакованную структуру грохала пару соседних полей. Решил отменой
упаковки везде где можно. lloyd(47 знак., 08.04.2020 15:36)
- "Урезанное поле" - это когда пакед и не пакед структура различаются
по размеру? И потом a=b, где а и b структуры с разной паковкой? Мне
кажется пакед и не пакед компилятором считаются разными типами со
всеми вытекающими ошибками на этапе компиляции. - AlexBi(08.04.2020 15:55)
- int:4 - я про такие. - lloyd(08.04.2020 16:00)
- Указатели на битовые поля невозможны. И сами битовы поля такой же
источник граблей как упакованные структуры. Их давно пора выкинуть
из стандарта, а упакованных структур и никогда не было в стандарте,
к слову (по причине массы сопутствующих проблем и невозможности
писать портируемый код). - fk0(08.04.2020 16:20)
- Битовые поля, как и обычные поля в структуре - это эффективный
способ систематизации данных. Да, есть недостатки, но цель
выполняет. Если дурак наступает на грабли, так что, от
использования граблей отказаться? - VLLV(08.04.2020 18:06)
- Поэтому в каждом компиляторе есть свой собственный, уникальный
способ сделать упакованные структуры. Я ж говорю, стандартизаторы -
те еще затейники. Ввести в стандарт мало кому нужный complex.h, но
не ввести стопку элементарных макросов с описанием целевой машины
(типа эндианности, направления роста стека, нативного размера
машинного слова и т.д.). В результате каждый второй Цэ-проект на
гитхабе занимается попытками выяснить сие по косвенным признакам. - LightElf(08.04.2020 16:34)
- Смотря как смотреть. Упакованные структуры -- не нужны. Знать тебе
эндианность, направление роста стека и прочее -- зачем? Если ты
пишешь портируемый код, то ты не должен полагаться на такие знания.
Это нужно только системным программистам в исключительных случаях.
А пытаются применять когда попало, когда не нужно -- и огребают
проблем. Код на другой платформе уже или не скомпилируется, или не
зарабоатет. А complex.h же очевидно нужен в цифровой обработке
сигналов, fk0(9 знак., 08.04.2020 16:55)
- Блин, но системное программирование - это и есть основная область
применения Цэ в дивном новом мире питонов и джаваскриптов. И как
раз для портируемости и надо знать эндианность и все такое прочее.
Прятать голову в песок можно сколько угодно, но вот тебе IP-пакет и
у него строго предопределенная эндианность. Ввели бы один раз в
стандарт что-то вроде GCC-шного __BYTE_ORDER__ - и прекрасно. То же
самое с упакованными структурами/типами. Если бы они не были нужны
- никто бы LightElf(359 знак., 08.04.2020 18:29)
- Вот потому и в стандарт и не вводится. Написанная программа должна
одинаково работать на всех платформах. Почему не стандартизовать --
я ответил, из-за проблемы с указателями на члены структуры.
Касательно ЦОС, я видел, где complex.h использовался. Питон здеь ни
при чём, можно конечно всё то же самое сделать руками, посчитав
синусы и косинусы отдельно, и более того в реализации на целых
числах так и будет, но в обобщённом коде -- вполне себе решение. И
да, системные fk0(209 знак., 08.04.2020 22:17, ссылка)
- вот сейчас прям смотрю , передаю в функцию член структуры массив
uint8_t все четко, никаких траблов не испытываю - Aleksey_75(07.04.2020 22:26)
- У меня не gcc, а IAR, а там грабли еще те ... The #pragma pack
directive affects declarations of structures following the pragma
directive to the next #pragma pack or the end of the compilation unit. - VLLV(06.04.2020 21:45)
- Вроде бы про упаковку теория молчит. То есть это это нестандартное
расширение, и наличие глюков в слабо протестированных сценариях не
должно удивлять. Может, лучше код показать? - SciFi(06.04.2020 15:19)
- Помню, давно Aleksey_75 жаловался на наличие напряжения 110В на
корпусе компьютера. При отсутствии заземления, конечно. Что в
России не редкость. Появились в продаже развязывающие
трансформаторы (я советовал ) =L.A.=(1048 знак., 22.07.2020 17:56, dao, ссылка, ссылка, полностью)
- Мощность указана в кВа, не в Ваттах. Мощность в Ваттах = кВа * 0.8. - RxTx(23.07.2020 16:53)
- Ндя, цена микроволновки у которой такой же мощности трансформатор и
еще прорва всякого прочего недешевого добра. - Codavr(23.07.2020 12:04)
- Проходная емкость (экран не подключен) – 800 пикофарад??? - fk0(22.07.2020 23:04)
- Уже более 10 лет напряжение 230В, с допуском до 253В сверху. А они
всё на 220В трансформаторы делают! - Nikolay_Po(22.07.2020 18:40)
- Для дома можно X и Y - конденсаторы из БП удалить. - Visitor(22.07.2020 18:19)
- Ну я пока что не для дома. :) А для масс-спектрометра в Институте
биохимической физики им. Н. М. Эмануэля РАН. =L.A.=(566 знак., 22.07.2020 19:29)
- А зачем вообще ставят конденсаторы между земляным проводом и обоими
сетевыми линиями? Причем не только в ноутбуках, но и в блоках
питания для десктопов. - Kceния(22.07.2020 19:10)
- Данная схема с двумя конденсаторами или Y-конденсатором имеет смысл
только в домах с обязательным истинным заземлением. В таком доме не
два, а три истинных проводника - заземление, ноль и фаза. Два
конденсатора таким образом соединены не с абстрактным "земляным
проводом" или там просто общей массой, а с реальным, настоящим
заземлением. Логично ВЧ токи импульсных помех направить
(закоротить) на заземление. Кстати дальше в направлении сети может
ставиться дроссель и др. RxTx(55 знак., 23.07.2020 17:10)
- Нифига не логично. Токи текут в замкнутой цепи. И если компьютер
стоящий на столе и никуда не подключенный ещё, кроме электрической
розетки -- то с чего токам течь куда-то в заземление? Смысл
Y-конденсатора в том, что ток из вторичной обмотки течёт обратно к
источнику, первичной обмотке. Ну а вторичная обмотка связана с
корпусом, шасси, землёй. Конечно компьютер сам по себе обладает
ничтожной уединённой ёмкостью, есть можно представить виртуальный
конденсатор, где одна fk0(103 знак., 23.07.2020 18:17)
- Дальше там еще можно говорить про синфазные помехи, и эти
конденсаторы (или может быть элементы фильтра) именно от синфазной
(т..е одновременной по фазе и нулю) помехи. Помеха может быть еще
дифференциальной, в этом случае фильтр ставится и работает между
как раз двумя проводами нуля и фазы. - RxTx(23.07.2020 18:12)
- Аппнота от topswitch приложена, там ближе к концу см. схемы с
пояснениями. Если вкратце, то когда закрывается транзистор
(исключением является Zero Voltage/Current Switch technology
популяризуемая Evgeny_CD), то токи-то продолжают течь и начинают
течь через любые возможные места, в первую очередь ёмкости
(монтажа, межобмоточную трансформатора и т.п.) Потом через
некоторое время быстрый диод сообразит, что ему нужно открыться и
цепь замыкается. Ситуация особенно критична для fk0(236 знак., 22.07.2020 23:21, ссылка)
- Есть ГОСТы по уровню электромагнитных излучений, при заземленном
корпусе помогает, в пластике тоже, там заземленный экран имеется,
иногда совмещенный с теплоотводом, а вот для меня остается загадкой
Y - конденсатор, что между первичным минусом и вторичным включен,
якобы должен компенсировать паразитную емкость трансформатора в
флибеке, но даже в резонансном полумосте его наличие повышает
устойчивость ОС. И в дешевых адаптерах током то через него бьет.
Емкость 1000.. 4700 пФ, Visitor(12 знак., 22.07.2020 19:32)
- Изображают фильтрацию продольной (синфазной) помехи. - BlackPrapor(22.07.2020 19:22)
- Там и 4 КВт, чтобы развязку на дом сделать, стоят разумных денег. - Evgeny_CD(22.07.2020 18:12, ссылка)
- ??? а можно первоисточник когда я жалился ?? а то мну похоже
склероз обуял )) - Aleksey_75(22.07.2020 18:11)
- [Заземление дома] Толковый цикл статей на Хабре Evgeny_CD(32 знак., 09.07.2020 23:27 - 10.07.2020 01:06, Tech, ссылка, ссылка, полностью)
- [Бесконтактный измеритель сопротивления заземления]. Впечатляет! Evgeny_CD(51 знак., 11.07.2020 02:34, ссылка, ссылка)
- В глубокой древности забивали оцинкованные трубы, сваривали меж
собой стальной полосой, ею же опоясывали здание для всяких
хозяйственных нужд, вели на крышу там громоотвод из такой же трубы
или арматурины. И ведь работало. - Codavr(10.07.2020 13:36)
- Это скорее реклама модульного заземления. Штука удобная и не особо
дешевая. Для нового своего дома я бы его и использовал. Но не
раскрыта тема отгорания в разных местах и правильного подключения. - Andreas(10.07.2020 09:49)
- Такие вещи нужно не на Хабре читать, а пойти на курсы по
электробезопасности и получить третью (лучше четвертую) группу
допуска. Правильный инструктор положит в голову, даже не заметишь,
такую дикую прорву полезных ПРАКТИЧЕСКИХ знаний, что могу
рекомендовать сие просто как акт саморазвития. Безпривязно к
профессиональной сфере деятельности. - Cкpипaч(10.07.2020 07:05)