LED 제어할 때 왜 VCC 대신 GND로 컨트롤 하는 이유

디바이스 뜯어서 분석하다 보면 VCC(전원)는 항상 연결해 두고 GND(그라운드) 라인을 스위칭하여 LED를 켜고 끄는 방식을 자주 보게 되는데 왜그런지 검색해봄

이렇게 GND로 컨트롤하는걸 로우 사이드 제어(Low-side Control) 또는 싱크(Sink) 방식이라고 부르는데, 이유가 아래와 같음
아래는 AI가 정리한 내용
  1. N-채널 소자(MOSFET/NPN)가 훨씬 저렴하고 효율적이기 때문
    전자 회로에서 스위치 역할을 하는 대표적인 부품이 바로 MOSFET입니다. 구조상 그라운드 라인을 통제하는 N-채널 MOSFET이 전원 라인을 통제하는 P-채널 MOSFET보다 가격이 훨씬 저렴하고 전류를 흘려보내는 성능도 뛰어납니다. 제어 회로를 단순하고 아주 쉽게 구성할 수 있다는 장점이 있습니다.
  2. 높은 전압(12V, 24V)의 LED도 쉽게 제어할 수 있기 때문
    MCU 칩은 보통 3.3V나 5V로 작동하지만, 우리가 사용하는 LED 스트립이나 바(Bar)는 12V나 24V인 경우가 많습니다. GND 제어 방식을 사용하면, 칩의 낮은 전압(5V) 신호만으로도 별도의 전압 변환 장치(레벨 시프터) 없이 높은 전압의 LED를 안전하고 간편하게 제어할 수 있습니다.
  3. MCU 칩 자체의 전류 흡수(Sink) 능력이 더 좋기 때문
    컴퓨터의 두뇌 역할을 하는 MCU 칩들은 전류를 밖으로 밀어내는 힘(Source)보다, 외부에서 들어오는 전류를 받아내어 그라운드로 흘려보내는 힘(Sink)이 물리적으로 더 강하게 설계되어 있습니다. 따라서 GND로 시그널을 주어야 LED가 깜빡이지 않고 더 안정적으로 켜집니다.
    그렇다고 합니다(검증안됨).

    CH341A 전원 문제

    아…. 이걸 왜 이제 알았지…

    롬덤프에 많이 쓰는 CH341A 보드 IO에 USB 전원 5V가 사용되는 문제가 있다고 한다.
    칩마다 다른데 보통은 3.3v인데… 가끔 덤프하다 롬이 죽거나 발열문제가 있긴했는데 이런 이유가 있었구나.

    해결방법은 CH341A의 28번핀을 들다 해서 옆에 있는 AMS1117 3.3v vout이랑 이어주는 방법이 있다.

    납이 싸구려인지 납땜스킬이 부족한건지 AMS1117 다리에 납땜이 힘들어서 나는 그냥 C2 캡에다가 붙여줬다.

    다른 모드 보면 9번핀도 연결하던데 내가봤을땐 필요없어 보인다.
    이런 내용도 있으니 굳이?
    !!! DO NOT CONNECT 3.3V TO PIN 9 OF CH341 otherwise the CH341 will burn in
    5.0v selection. !!!

    https://www.scribd.com/document/1058766189/Ch341a-Black-3-3v-5-0v-Basic-en

    SM-S916N S23 PLUS OneUI 9.0 Debloating

    Based on S916NKSU8GZIF

    dm2q:/ $ pm list packages | wc -l
    475

    pm list packages -d | wc -l
    163

    package:com.sec.android.RilServiceModeApp
    package:com.google.audio.hearing.visualization.accessibility.scribe
    package:com.samsung.android.hwresourceshare
    package:com.samsung.android.svcagent
    package:com.samsung.android.visionintelligence
    package:com.sec.android.gallery3d
    package:com.samsung.android.widget.pictureframe
    package:com.samsung.android.app.camera.sticker.facearavatar.preload
    package:com.sec.android.iaft
    package:com.samsung.android.calendar
    package:com.samsung.android.app.reminder
    package:com.samsung.android.inputshare
    package:com.samsung.android.app.vex.scanner
    package:com.google.android.partnersetup
    package:com.samsung.android.knox.zt.framework
    package:com.google.android.projection.gearhead
    package:com.samsung.android.app.aodservice
    package:com.android.dreams.phototable
    package:com.samsung.android.mcf.autohotspot
    package:com.samsung.android.mcfds
    package:com.samsung.android.drivingplus
    package:com.samsung.android.smartface.overlay
    package:com.sec.android.diagmonagent
    package:com.google.android.apps.carrier.carrierwifi
    package:com.samsung.SMT.lang_ko_kr_r00
    package:com.google.android.apps.bard
    package:com.sec.android.easyonehand
    package:com.samsung.android.setting.multisound
    package:com.android.dreams.basic
    package:com.google.android.feedback
    package:com.android.chrome
    package:com.android.bluetoothmidiservice
    package:com.facebook.appmanager
    package:com.samsung.android.app.taskedge
    package:com.facebook.services
    package:com.google.android.apps.maps
    package:com.samsung.android.camerasdkservice
    package:com.google.android.printservice.recommendation
    package:com.sec.facatfunction
    package:com.sec.android.app.myfiles
    package:com.samsung.android.dck.timesync
    package:com.sec.android.app.vepreload
    package:com.sec.android.widgetapp.easymodecontactswidget
    package:com.sec.android.app.ve.vebgm
    package:com.sec.android.QRreader
    package:com.samsung.android.app.dressroom
    package:com.sec.android.app.fm
    package:com.lguplus.lgugpsnwps
    package:com.samsung.android.app.sharelive
    package:com.google.android.marvin.talkback
    package:com.samsung.safetyinformation
    package:com.google.android.adservices.api
    package:com.samsung.android.accessibility.talkback
    package:com.samsung.android.smartswitchassistant
    package:com.google.android.ondevicepersonalization.services
    package:com.sec.android.app.magnifier
    package:com.samsung.android.knox.analytics.uploader
    package:com.google.android.healthconnect.controller
    package:com.samsung.android.allshare.service.mediashare
    package:com.android.bookmarkprovider
    package:com.samsung.android.dqagent
    package:com.microsoft.appmanager
    package:com.samsung.android.samsungpass
    package:com.android.apps.tag
    package:com.samsung.android.motionphoto.app
    package:com.samsung.android.wallpaper.live
    package:com.google.android.apps.restore
    package:com.samsung.android.sdk.handwriting
    package:com.samsung.android.bixby.agent
    package:com.samsung.android.warrantycare
    package:com.samsung.android.smartcallprovider
    package:com.samsung.android.app.sketchbook
    package:com.sec.bcservice
    package:com.google.android.glasses.core
    package:com.samsung.android.dynamiclock
    package:com.samsung.android.bixby.wakeup
    package:com.samsung.android.stickercenter
    package:com.google.android.gms.location.history
    package:com.skt.hps20client
    package:com.google.android.apps.aiwallpapers
    package:com.sec.android.app.quicktool
    package:com.samsung.android.carkey
    package:com.google.android.gm
    package:com.android.traceur
    package:com.samsung.android.mdx
    package:com.samsung.android.app.routines
    package:com.google.android.apps.tachyon
    package:com.hiya.star
    package:com.samsung.android.dialer
    package:com.samsung.android.digitallegacy
    package:com.samsung.android.samsungpassautofill
    package:com.kt.serviceagent
    package:com.google.android.apps.accessibility.voiceaccess
    package:com.google.android.tts
    package:com.google.android.googlequicksearchbox
    package:com.samsung.android.smartface
    package:com.samsung.petservice
    package:com.google.android.health.connect.backuprestore
    package:com.samsung.android.mhs.ai
    package:com.android.htmlviewer
    package:com.samsung.android.bixbyvision.framework
    package:com.sec.android.daemonapp
    package:com.samsung.android.aremoji
    package:com.samsung.android.mcfserver
    package:com.samsung.android.forest
    package:com.samsung.android.scloud
    package:com.samsung.android.vexfwk.service
    package:com.google.android.apps.turbo
    package:com.samsung.android.messaging
    package:com.google.ar.core
    package:com.samsung.android.mapsagent
    package:com.samsung.android.mobileservice
    package:com.samsung.android.game.gametools
    package:com.samsung.android.app.parentalcare
    package:com.google.android.gms.supervision
    package:com.android.providers.userdictionary
    package:com.samsung.android.beaconmanager
    package:com.samsung.android.smartmirroring
    package:com.google.mainline.adservices
    package:com.samsung.android.sdk.ocr
    package:com.samsung.storyservice
    package:com.samsung.android.video
    package:com.skt.hpsagree
    package:com.samsung.android.audiomirroring
    package:com.samsung.android.app.interpreter
    package:com.android.hotwordenrollment.okgoogle
    package:com.samsung.gpuwatchapp
    package:com.samsung.android.app.watchmanagerstub
    package:com.samsung.android.photoremasterservice
    package:com.samsung.SMT.lang_en_us_l03
    package:com.sec.android.app.soundalive
    package:com.google.android.federatedcompute
    package:com.sktelecom.smartcard.SmartcardService
    package:com.samsung.android.game.gos
    package:com.samsung.android.app.smartcapture
    package:com.samsung.android.app.soundpicker
    package:com.samsung.android.liveeffectservice
    package:com.samsung.android.service.peoplestripe
    package:com.samsung.android.app.omcagent
    package:com.sec.android.easyMover
    package:com.android.egg
    package:com.samsung.SMT
    package:com.facebook.system
    package:com.android.providers.partnerbookmarks
    package:com.samsung.android.aircommandmanager
    package:com.samsung.android.kidsinstaller
    package:com.samsung.android.mdecservice
    package:com.google.mainline.telemetry
    package:com.google.ambient.streaming
    package:com.android.dynsystem
    package:com.samsung.android.game.gamehome
    package:com.samsung.android.singletake.service
    package:com.samsung.android.app.clipboardedge
    package:com.samsung.android.mdx.kit
    package:com.samsung.android.app.dofviewer
    package:com.samsung.android.da.daagent
    package:com.samsung.android.rubin.app
    package:com.sec.android.easyMover.Agent
    package:com.samsung.accessory.budsunitemgr
    package:com.google.android.youtube
    package:com.samsung.android.bluelightfilter
    package:com.samsung.android.smartsuggestions
    package:com.samsung.android.hwresourceshare.storage

    for p in $(pm list packages -d | cut -d: -f2); do echo $p; pm clear –user 0 $p; done

    Filesystem Size Used Avail Use% Mounted on
    /dev/block/dm-70 461G 3.1G 458G 1% /data/user/0

    $ cmd appops set com.google.android.gms RUN_IN_BACKGROUND ignore

    $ settings put global window_animation_scale 0.25
    $ settings put global transition_animation_scale 0.25
    $ settings put global animator_duration_scale 0.25

    $ settings put global navigation_bar_gesture_hint 0