분류 전체보기 294

STM32 NUCLEO BOARD printf 사용하기

안녕하세요.오늘은 stm32에서 printf 함수를 사용해보겠습니다.사용할 보드는 NUCLEO-F103RB입니다.ST LINK가 Virtual com port를 지원하고 회로도를보면 STM32F103RB의 UART2에 연결되어있습니다.그래서 별도의 usb to uart없이도 pc와 uart통신이 가능합니다.그래서 그런지 NUCLEO-F103RB 프로젝트를 만들면 기본적으로 UART2가 활성화되어있습니다.프로젝트를 생성하고나서 HAL_UART_Transmit함수를 이용해서 TX가 가능합니다. 해당 방법을 사용하는 데는 문제는 없지만 불편하므로 printf가 이용하기 편리하므로 printf를 이용해 보겠습니다.printf를 이용해보겠습니다. 경고가 발생합니다. printf는 에 선언되어있는데 를 includ..

STM32로 ADC기능을 사용하여 그래프 표시하기

안녕하세요. 오늘은 STM32로 ADC기능을 사용하여 그래프를 표시해보겠습니다.간단히 나타내면 아래의 그림과 같습니다. STM32로 저항의 전압을 읽어서 PC 프로그램으로 uart 통신을 통해 값을 보내주고 PC 프로그램에서는 받은 데이터를 일정한 시간 간격으로 그래프를 표시해 주는 것입니다.*하드웨어구성 가변저항2개를 이용하여 전압값을 읽게 했습니다.Vin은 3.3V이고 R1는 10k이고  R2는 0~10k이므로 Vout은 0~1.65V 나옵니다.*STM32 FW구현해야하는건 ADC값 읽는거와 UART통신으로 PC에게 데이터를 보내주는것입니다. 뉴클레오보드를 사용하므로 usb to uart는 이미 uart2에 할당되어있습니다.printf 기능을 사용할것이므로 아래의 헤더파일과 함수만 추가해주면 됩니다...

STM32/활용 2024.12.30

USB 로직 아날라이저,프로토콜 분석기 알아보기

안녕하세요. 오늘은 USB 로직 아날라이저(logic analyzer),프로토콜분석기(protocol analyzer)에 대해 알아보겠습니다.제가 보유중인 로직은 아래의 사진과 같습니다. 사용해보며 제가 느낀 장/단점이라 주관적입니다.(실제 사용해보며 느낀점을 적은거라 제가 사용안해본 다양한 기능들이 있을수도 있습니다.)*로직 아날라이저(1) Saleae logic pro8TOOL: Logic 2장점 : 다양한 프로토콜, 실시간 파형보기 가능, digital/analog보기 가능, 쉬운 UI단점 : 장시간사용시 발열있음, 비쌈- 해당장비는 제가 가장 많이 사용하는 장비이고 제 블로그에서 파형을 찍은걸 보면 대부분 이 장비로 찍었습니다. 장점은 UI가 매우 사용하기 편하게 되어있습니다. UI가 직관적이고 ..

일반제품 2024.12.25

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

안녕하세요. CH341 칩을 이용해서 I2C통신을 해보겠습니다.2편에서는 UART통신을 했었는데, 같은 프로그램에 Winform의 tabControl 도구를 이용해서 UI를 구성해보겠습니다.UART통신은 serialPort도구를 이용했었는데 이번에 i2c에서는 CH341DLL을 이용해보겠습니다.CH341DLL은 아래의 사이트에서 다운로드 가능합니다.https://www.wch-ic.com/downloads/CH341PAR_ZIP.htmlCH341DLL_EN.H을 보면 사용가능한 함수와 설명이 나옵니다.CH341DLL.DLL을 C#에서 사용할수있게 Wrap한 DLL을 사용하겠습니다https://github.com/iillii/ch341-Sharp* 하드웨어 구성CH341에서 I2C통신을 해야하므로 1,2번..

각종 CHIP 2024.12.22

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

안녕하세요. CH341 칩을 이용해서 UART통신을 해보겠습니다.CH341뿐만아니라 다른 usb to uart 칩이면 사용하는방법은 다르지않습니다.* 하드웨어 구성CH341에서 uart통신을 해야하므로 2,3번을 연결해줍니다 CH341과 다른 usb to uart칩을 이용해서 연결을 합니다. (RX, TX, GND)* 프로그램 구성사용하는 언어는 C# Winform입니다. C#에서 UART통신은 System.Io.Ports 네임스페이스를 이용하면 됩니다. 대략적인 구성은 위와같습니다. 시리얼 통신 프로그램(테라텀)과 여기서 만드는 프로그램과 통신을 할건데 통신통로는 uart입니다.* Serial port open하기Serial port를 선언하고 baudrate, stop bit, com port번호, ..

각종 CHIP 2024.12.08

CH341 칩을 이용해서 UART,I2C,SPI 통신하기 1편(기본 소개)

안녕하세요. CH341 칩을 이용해서 UART, I2C, SPI 통신을 해보겠습니다.우선 CH341은 wch에서 만든 usb 컨버터 칩입니다. 해당칩을 이용하면 다양한 통신을 할수있는데 그 중에 UART, I2C, SPI통신을 해보겠습니다.CH341 데이터시트링크위에서 말한 내용을 하기 위한 순서입니다.1. CH341칩 & 사용할보드 알아보기 & 프로그램 컨셉 & 보드컨셉2. CH341칩을 이용해서 UART, I2C, SPI통신하는 프로그램을 만들기 (C#)3. CH341칩을 이용해서 회로구성을하고 보드를 만들기(kicad)4. 만든 보드와 프로그램이 잘 동작하는지 테스트해보기* 사용할보드 알아보기 CH341칩을 이용해서 만들어져있는 보드를 이용해서 먼저 프로그램을 만들 예정입니다.보드의 회로도를보면 통..

각종 CHIP 2024.11.23

STM32 외부인터럽트 알아보기

안녕하세요. 오늘은 STM32 외부인터럽트에대해 알아보겠습니다.먼저 데이터시트에 있는 외부인터럽트 블록도를 보겠습니다. (STM32F103RB)AMBA APBbus : 주변장치와 통신하기위해 사용하는 버스입니다. 외부인터럽트는 APB2 버스를 사용합니다.Peripheral Interface : APB 버스를 통해 들어오는 데이터를 처리하여 레지스터에 전달하거나 레지스터에서 데이터를 읽습니다.PCLK2 : 클럭입니다. APB2버스를 사용하므로 PLCK2 클럭을 사용합니다.빗금 숫자 19의 의미 : 레지스터의 크기가 19라는 의미입니다. 해당 MCU는 19개의 외부인터럽트가 있습니다.Input Line : 외부 인터럽트가 발생할수있는 라인입니다.  아래의 그림을보면 EXTI0은 PA0 or PB0 or PC..

STM32/이론 2024.11.09

pcb 주문하는 방법(kicad, jlcpcb)

안녕하세요. 오늘은 kicad로 pcb회로를 만들고 jlcpcb사이트로 주문하는방법을 알아보겠습니다.jlcpcb외에 다른곳에서도 주문할수있는곳이 있겠지만 다른곳은 이용을안해봐서 어떤지 모르겠습니다. jlcpcb는 1개도 주문이 가능해서 좋습니다. 이 글에서는 kicad로 pcb를 주문할때 필요한 파일을 추출하는 방법과, jlcpcb로 주문하는방법순서로 적겠습니다.먼저 kicad로 pcb를 주문할때 필요한파일을 추출해보겠습니다. 회로 기준은 2층(front,back)기준이고 단순히 부품을 배치하고 회로가 그려져있는 수준입니다.1. 파일->플롯 클릭2. 출력 디렉토리에 출력 파일이 나올 경로를 설정하고 나머지는 아래의 그림처럼 세팅을 해줍니다. 그 이외에 필요한 옵션이 있다면 선택해 주면 될 것 같습니다. ..

회로이론/기타 2024.11.03

C# winform에서 exe파일로 디버깅 쉽게하기

안녕하세요. 오늘은 C# winform exe파일로 디버깅을 쉽게하는방법을 알아보겠습니다.일반적으로 디버깅을위해서 Console.WriteLine함수를 많이 사용합니다. 기본적으로 이 함수를 사용하면 visual studio의 output탭에 메세지가 표시됩니다.이렇게되면 visual studio를 사용하지않고 exe파일을 실행했을때는 Console.WriteLine의 내용을 보지못합니다.visual studio에서 Console.WriteLine 했을 때 출력해 주는 형식을 변경해 줄 수 있습니다.변경해주는 방법은 두가지입니다.첫번째방법은 프로젝트내의 속성으로가서 변경하면 됩니다.Windows 애플리케이션은 기본 옵션입니다. 콘솔 애플리케이션으로 변경해주면 exe파일을 실행했을때 별도의 명렴프롬프트창이..

74HC573 알아보기

안녕하세요. 오늘은 74HC573에 대해 알아보겠습니다.74HC573은 8비트 래치 기능을 가지고, 출력이 3-state(High, Low, Hi-Z)로 동작할 수 있습니다사용하는곳은 포트확장, FW업데이트할때 GPIO가 이전상태유지하게하기 등등에 사용합니다.10,20번핀 : 전원입니다 .2~9번핀 : 입력핀입니다.12~19번핀 : 출력핀입니다.1번핀 : Output-enable 핀입니다.11번핀 : Lacth-enable 핀입니다. 1번핀(OE)가 HIGH상태면, 출력은 HI-Z 상태가 됩니다. 그래서 사용할때는 OE를 LOW로 설정해서 사용해야됩니다.테이블을보면 OE핀이 HIGH면 HI-Z이고 OE가 LOW일때 상황들이 다릅니다.OE가 LOW고 LE가 HIGH일때 입력이 HIGH면 출력이 HIGH입니..

각종 CHIP 2024.10.20