2025/05 8

CH341 칩을 이용해서 UART,I2C,SPI 통신하기 5편(보드 테스트)

안녕하세요. 오늘은 4편에서 만들었던 보드의 테스트를 해보겠습니다.보드를 보면 스위치가 2개 있습니다.SW1 스위치는 통신레벨(3.3V or 5V)을 전환하기위한 스위치입니다.SW2 스위치는 I2C,SPI 모드 or UART 모드를 전환하기위한 스위치입니다.*I2C 모드테스트- I2C모드 + 3.3V인경우VCC와 통신레벨 모두 3.3V이고, I2C 패킷도 정상적으로 나왔습니다.- I2C모드 + 5V인경우VCC와 통신레벨 모두 5V이고, I2C 패킷도 정상적으로 나왔습니다. *SPI모드 테스트- SPI모드 + 3.3V인경우VCC와 통신레벨 모두 3.3V이고, SPI패킷도 정상적으로 나왔습니다.- SPI모드 + 5V인경우VCC와 통신레벨 모두 5V이고, SPI패킷도 정상적으로 나왔습니다. *UART모드 테스..

각종 CHIP/CH341 2025.05.29

KICAD 사용하기 2편(심볼/풋프린트 추가하기)

안녕하세요. 오늘은 KICAD에서 기본적으로 제공해주는 심볼/풋프린트가 없을때 추가하는 방법을 알아보겠습니다.*심볼심볼을 직접 만들거나 인터넷에 있는 자료를 다운로드할 수 있습니다.먼저 직접 만드는 방법을 알아보겠습니다.1. 심볼 만들기심볼을 저장할 라이브러리를 만들어야합니다. 새 라이브러리.. 를 클릭하고 원하는 경로에 라이브러리를 만듭니다.저는 mySymbol0521kicad_sym 이라는 라이브러리를 만들었습니다.새 심볼을 클릭합니다.심볼이름을 정해서 생성합니다. 심볼을 생성할때는 아래의 아이콘을 이용해서 만들면 됩니다.두번째 아이콘이 핀을 만드는 아이콘입니다. 핀 이름과 핀 번호에 원하는 정보를 적으면 됩니다.핀번호를 적고 직사각형 아이콘을 클릭하여 직사각형을 만들어서 모양을 만들어주면 됩니다. ..

회로이론/KICAD 2025.05.21

CH341 칩을 이용해서 UART,I2C,SPI 통신하기 4편(회로도,아트웍)

안녕하세요. 1~3편에서는 C#을 이용해서 UART, I2C, SPI가 가능한 프로그램을 만들었습니다.이번에는 KICAD 툴을 이용해서 회로도작성과 아트웍을 해보겠습니다.기본적인 회로도는 아래의 사이트를 참고하였습니다.https://www.onetransistor.eu/2017/08/ch341a-mini-programmer-schematic.html*회로도POWER CHECK LED : USB가 연결해있는지 안해있는지 확인하는 부분입니다.LDO : VBUS(5V)로부터 3.3V를 만드는 부분 입니다. USB CONNECTOR : USB 커넥터 (USB B type 사용)CLOCK : 외부클럭 입니다. USER PIN(SPI, I2C, UART, POWER) : 통신을 위한 외부핀 입니다. USER SWI..

각종 CHIP/CH341 2025.05.18

KICAD 사용하기 1편(회로도,PCB 레이아웃 그리기)

안녕하세요. 오늘은 KICAD에 대해 알아보겠습니다.KICAD는 회로도 작성과 아트워크를 할 수 있는 무료 툴입니다. KICAD를 사용하면 간단하게 보드를 만들 수 있습니다.비슷한 툴로는 PADS가있는데 PADS 유료입니다.*툴 다운로드하기KICAD 다운로드는 아래의 사이트에서 합니다.https://www.kicad.org/download/ * 사용하기1. 프로젝트 생성새 프로젝트를 클릭하여 프로젝트를 생성합니다.프로젝트를 생성하면 .kicad_sch, .kicad_pcb 두 파일이 생성됩니다..kicad_sch는 회로도 파일이고 .kicad_pcb파일은 pcb 레이아웃 파일입니다.참고로 PADS에서 회로도는 Logic이라고 부르고 pcb 레이아웃은 명칭이 같습니다.2. 회로도 그리기우선 회로도를 그리기..

회로이론/KICAD 2025.05.17

STM32 링커스크립트에대해 알아보기

안녕하세요. 오늘은 STM32 링커스크립트에대해 알아보겠습니다.*링커스크립트링커 스크립트(Linker script)는 다른 표현으로는 링커 디스크립션(Linker Description)이라고 합니다. 링커란 여러 개의 오브젝트파일을 모아서 실행파일로 만드는 프로그램을 의미합니다. 예를들어 main.c 파일과 led.c 파일이 있다고하면 컴파일하면 main.o와 led.o가 나옵니다. 각 코드에서 사용한 변수와 함수들의 위치를 정해주는게 링커입니다.STM32 프로젝트를 만들면 .ld 파일이 함께 생성되는데 해당파일이 링커스크립트입니다.실제 링커스크립트에있는 내용을 살펴보겠습니다..사용할 MCU는 STM32F103C8입니다.아래의 사진은 데이터시트에 있는 Memory Map입니다.Flash memory의 주..

STM32/이론 2025.05.16

MCU에서 Micro SD카드 사용하기 2편 (MicroSD SPI 프로토콜)

안녕하세요. 오늘은 Micro SD카드 SPI 프로토콜에 대해 알아보겠습니다.SPI, SD Mode 방식이 있고 해당 글에서는 SPI모드를 사용할 예정입니다. 아래의 사이트에서 프로토콜에 대한 내용을 확인 할 수 있습니다. (Physical Layer Simplified Specification)https://www.sdcard.org/downloads/pls/*SPI MODE 설정1. CPOL : 클럭이 Idel 상태일때 Low (0)2. CPHA : 첫 번째 엣지에서 데이터 샘플링 (0)3. Significant Bit : MSB4. Enable Line : Low5. 클럭속도1) 초기화 클럭 주파수 : 100kHz~400kHz(권장)2) 초기화 완료 후 데이터 전송 단계 : 25MHz(최대)*패킷해..

각종 CHIP 2025.05.12

MCU에서 Micro SD카드 사용하기 1편 (MicroSD Card Adapter 알아보기)

안녕하세요. 오늘은 MCU에서 Micro SD카드를 사용할때 사용하는 모듈을 알아보겠습니다.우선 Micro SD 카드는 MCU 통신하는 프로토콜이 두가지입니다. MCU에서 어떤 통신을할지 선택할수있습니다. SPI, SD Mode 방식이 있고 해당 글에서는 SPI모드를 사용할 예정입니다.Micro SD카드는 같은데 각 프로토콜에서 사용하는 핀이 다릅니다. SPI를 사용하므로 CS, MOSI, VDD, SCLK, GND, MISO를 사용하게 됩니다.사진출처 : https://www.zeroalpha.com.au/services/data-recovery-blog/sd/sd-and-micro-sd-pinout-description-including-spi-protocolMicro SD카드는 동작전원이 3.3V입..

각종 CHIP 2025.05.07

CH341 칩을 이용해서 UART,I2C,SPI 통신하기 4편(SPI)

안녕하세요. CH341 칩을 이용해서 SPI통신을 해보겠습니다. 3편에서 했던 I2C랑 마찬가지로 CH341DLL을 사용합니다.* 하드웨어 구성CH341에서 SPI통신을 해야하므로 1,2번핀을 연결합니다. 1,2번핀을 연결했을때랑 2,3번핀을 연결했을때 다르게 잡히는걸 확인할수있습니다. * 프로그램 구성SPI 파형을 보기위해 아날라이저를 연결합니다. * CH341 통신 연결하기OpenDevice()함수를 이용해서 연결시도를 합니다. 연결이 되었으면 true가 리턴되고 실패했으면 false가 리턴됩니다. timer도구를 이용해서 1초에한번씩 OpenDevice()를 호출하고 성공/실패에 따라 UI로 표시해줍니다. * SPI 비트전송순서비트전송순서를 정할수있습니다SetStream()함수를 이용하면 LSB/M..

각종 CHIP/CH341 2025.05.05