전체 글

전체 글

    PCB 설계 도구의 부품 라이브러리, 사용 전 확인은 필수

    PCB 설계 도구의 부품 라이브러리, 사용 전 확인은 필수

    CP2102N 라이브러리가 필요했던 이유 KiCad를 설치하면 기본으로 포함된 라이브러리에 CP2102N이 포함되어 있다. 하지만 현재 시장에 공급되고 있는 것과는 제품번호가 다르다. KiCad에 준비된 것은 'CP2102N-A01'로 이어지는 것이고 지금 판매 중인 것은 'CP2102N-A02'로 이어지는 모델이다. 데이터 시트를 참고해보면 이것은 펌웨어 리비전 차이인 것을 알 수 있다. 펌웨어만 다른 것이라면 KiCad에 기본 설치된 라이브러리를 사용해도 될 것이다. 하지만 모델명이 다른 것이 마음에 걸리기도 하고 풋 프린트와 3D 모델이 라이브러리에 포함되어 있지 않아서 새로 구해보기로 마음먹었다. 다행히 전자 부품 쇼핑 사이트인 마우저에서 KiCad에서 사용할 수 있는 라이브러리를 제공해주고 있다..

    [책] C언어 창시자가 알려주는 <C 언어 프로그래밍>

    [책] C언어 창시자가 알려주는 <C 언어 프로그래밍>

    올해 초 즈음 알게 된 C 언어 프로그래밍 책이다. 무려 C언어를 만든 데니스 리치가 참여하여 쓴 해설서이다. 나무위키에서 C 언어 항목을 읽다가 찾아낸 책인데 여기저기 알아보니 꽤 유명한 책이었다. 책을 읽어보기로 마음먹을 당시에는 마침 육아휴직 중이고 공부하고 싶은 열망이 강해서 금방 읽을 수 있을 줄 알았다. 이런저런 일을 하다 복직도 하고 그러다 보니 책을 다 읽는데 시간이 걸리고 말았다. 이 책은 C 언어를 알려주는 책이지만, 결코 초보자를 위한 책은 아니다. 어느 언어로든 한 번은 프로그래밍해본 사람이 읽기에 적합하다. 호기롭게 첫 프로그래밍 책으로 이 책을 선택한다면 도중에 그만두게 될 가능성이 크다. 왜 그런가 하면 책에 실린 수많은 예제가 다른 입문서의 예제보다 어렵다. 예제 프로그램이 ..

    부폼 비교 기능을 맹신하지마라

    부폼 비교 기능을 맹신하지마라

    앞서 부품을 고를 때 전자 부품 쇼핑몰의 비교기능을 활용하자는 글을 썼다. 이미 알고 있는 모델과 유사한 사양의 부품을 비교할 수 있어 더 나은 선택을 할 수 있다는 취지의 글이었다. 아마 대부분의 경우는 의도대로 그 기능을 활용할 수 있을 것이다. 하지만 모든 일이 그렇듯 항상 올바르게 일이 풀리지는 않는다. 지난번 글에서 알아본 USB to UART Bridge인 CP2102N과 유사 제품을 조사하면서 알게 된 비교 기능의 허점을 짚어본다. 돌다리도 두둘겨 보고 건너라 일단 비교표를 다시 보자. 세 제품 사양이 거의 비슷하지만 가장 눈에 띄는 차이점은 데이터 전송률(Data Rate)이다. CP2102N의 Data Rate는 3Mb/s, FT234XD와 MCP2200은 12Mb/s로 표시되어 있다. ..

    부품 비교가 필요할 때 전자부품 쇼핑몰을 이용하자

    부품 비교가 필요할 때 전자부품 쇼핑몰을 이용하자

    문제의 시작 최근 USB-UART 변환 보드를 연습 삼아 만들어보려고 하고 있다. 그래서 가장 먼저 시작한 일이 변환 IC를 찾는 것이다. 내가 알고 있는 칩은 Silicon Labs 사(이하 Silabs)의 CP2102뿐이었다. 그것으로도 충분히 기능하는 보드를 만들 수 있겠지만, 사이드 프로젝트이니만큼 내가 하고 싶은 데로 해보고 싶었다. 그래서 같은 기능을 하는 다른 칩을 알아보고 비교해보기로 했다. Silabs 부터 ST Microelectronics사(이하 ST), Texas Instruments사(이하 TI) 홈페이지를 들락거리며 USB to UART 변환 칩을 찾아보았다. Silabs에는 CP2102 말고도 다양한 라인업이 마련되어있지만, ST와 TI에서는 알맞은 부품을 속 시원하게 찾을 수..

    [책] 시작하는 개발자들을 위해, <임베디드 엔지니어 교과서>

    [책] 시작하는 개발자들을 위해, <임베디드 엔지니어 교과서>

    들어가며 이 책은 임베디드 시스템 정의부터 개발 환경 구축, 개발 방법, 개발 프로세스 등 임베디드 개발과 관련된 전반적인 내용을 훑어주는 책이다. 임베디드 시스템 개발을 공부하고자 하는 사람이 있다면 꼭 한 번 읽기를 권하고 싶은 생각이 들었다. 임베디드 시스템 개발을 어느 정도 할 줄 아는 사람이라도 기획부터 양산까지 개발 프로세스를 한 번도 밟아보지 못한 사람에게도 추천한다. 아래는 책을 모두 읽고 나서 생각나던 것들을 간단히 정리한 것이다. 이 책을 읽어볼까 고민하는 사람이 있다면 이 글이 참고되었으면 좋겠다. 노트 누구에게 딱 맞는 책일까 임베디드 시스템을 이제 막 공부하기 시작한 사람이라면 책의 초중 반 부 내용에 관심이 많이 갈 것이다. 임베디드 시스템의 개념부터 시작해서 대략적인 개발 방법..

    [TIL] 210423 - Deep LearniNg (~C1W4L05)

    [TIL] 210423 - Deep LearniNg (~C1W4L05)

    이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W4L05까지의 내용을 정리한 것이다. 심층 신경망의 계산 과정을 대략적으로 흝어보았다. 내용 요약 심층 신경망 네트워크 구성하기 $l$번째 층을 기준으로 볼 때 입력은 $a^{[l-1]}$이고 출력은 $a^{[l]}$이 된다. 이 때 계산 과정에서 얻게되는 $w^{[l]}$, $b^{[l]}$ 그리고 $z^{[l]}$은 역전파 계산에 사용되므로 캐싱하도록 한다. 역방향으로 계산될 경우에 입력은 $da^{[l]}$이고 출력은 $da^{[l-1]}$이다. 이 계산과정에서 캐싱해두었던 $w^{[l]}$, $b^{[l]}$ 그리고 $z^{[l]}$를 사용하면 효율적으로 처리할 수 있다. 역방향 전파의 계산 과정에서 얻어지는 $dw^{[l..

    GNU 어셈블러와 링커 스크립트 매뉴얼

    GNU 어셈블러와 링커 스크립트 공식 매뉴얼 링크이다. 거의 날것에 가까운 HTML로 작성된 문서이지만 이것만큼 확실하게 설명된 것이 없었다. 어셈블러와 링커 스크립트와 관련해서 모르는 게 생기면 가장 먼저 찾아봐야 할 문서들이다. 한글 문서는 번역된 지 오래되어 영문의 최신 문서와 조금 다른 점이 있을 수도 있다. 어셈블러 공식 문서 한글 번역판 링커 스크립트 공식 문서 한글 번역판 1 한글 번역판 2

    [TIL] 210422 - Deep LearniNg (~C1W4L04)

    이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W4L04까지의 내용을 정리한 것이다. 심층 신경망이 좋은 결과를 낼 수 있는 이유에 대해 설명하였다. 내용 요약 심층 신경망이 더 많은 특징을 잡아낼 수 있는 이유 심층 신경망이 왜 잘 작동할 수 있는지에 대한 직관을 심어주는 내용이었다. 크게 두 가지 직관을 설명하였다. 첫 번째 직관은 신경망이 깊을수록 아주 단순한 특징부터 시작해 복합적인 특징을 학습할 수 있다는 것이다. 얼굴 인식을 예로 들면 처음에는 여러 방향의 경계 특징(edge)을 인식하다가 층이 깊어질수록 눈, 코, 입, 귀와 같은 특징을, 마지막에는 얼굴 전체 학습하여 특정할 수 있다. 음성 인식에서는 단순한 노이즈 수준의 특징부터 시작해 음소 단위, 단어, 문장 ..