본문 바로가기

전체 글

(203)
ST-Link Debug 설정 1. STSW-LINK007를 다운로드 한다.https://www.st.com/en/development-tools/stsw-link007.html STSW-LINK007 - STMicroelectronicsSTSW-LINK007 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 boards firmware upgrade, STSW-LINK007, STMicroelectronicswww.st.com여기서는 3.16.8을 설치했고, ST-LINK/V2/01-0를 사용하였다. 2. 프로그램을 실행시켜 Device Connect를 누른다.위와 같은 메시지가 뜨면 ST-LINK를 다시 연결하면 된다. 3. 버전을 확인하고 Upgrade한다.Current Firmware 버전과 ..
[개념] RS232 & RS485 통신 RS232RS485특징1. 1대 1통신만 가능2. 전송거리가 짧고, 노이즈에 약하다. -> Single-ended 방식3. 전송속도가 비교적 느리다.1. 1대 N통신 가능2. 전송거리가 길고, 노이즈에 강하다. -> 차동신호 방식3. 전송속도가 빠르다.결선 방식3개의 선(TX, RX, GND)을 사용하여 단방향 또는 전이중통신이 가능하다.2선 방식(A,B 또는 TRX+, TRX-)을 사용 시 반이중통신이 가능하다.4선 방식 사용 시 전이중통신도 가능하다.전기적 특성전압 레벨( ±3V ~ ±15V)이 TTL(3.3V/5V)보다 높아서 레벨 변환이 필요하다.차동신호 방식을 사용하여 노이즈에 강하고 장거리 통신에 적합니다.통신 방법비동기 UART 방식TX에서 데이터 전송 시 RX로 수신이 가능하다(..
[적용] RaspberryPi로 USB 통신하기 1. Raspberry에 usb.c 파일을 만든다.#include#include#include#include#includeint main() { int fd = -1; int iSize = 0; int idx = 0; int i, j; char buf[100]; struct termios options; // 가상 시리얼 포트를 열고 데이터를 송수신하겠다. fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NONBLOCK); if(fd == -1) { printf("fail open\n"); return 1; } memset(&options, 0, sizeof(options)); // 시리얼 통신을 위한 설정들 options.c_cflag = B9600;..
[개념] USB 통신 1. Host가 Device의 가상 장치 정보(Class, Subclass)를 가져온다.ClassSubclass USB CDCCDC ACM시리얼 통신 장치CDC ECM이더넷 통신 장치USB MSC없음저장 장치※ CDC(Communication Device Class), MSC(Mass Storage Class)※ ACM(Abstract Control Model), ECM(Ethernet networking Control Model) 2. Host는 가져온 장치 정보를 기반으로 드라이버를 활성화한다.해당 드라이버가 로딩되면, OS는 이를 추상화된 장치 파일로 나타낸다.즉, 가상 포트가 생성되어 장치를 사용할 준비가 된다. 3. 사용자 프로그램은 이 가상 포트를 통해 데이터를 송수신한다.예를 들어, 가상 포..
공유 폴더 설정하고 사용하기 1. 공유 폴더 설정VirtualBox 관리자에서 설정버튼을 누르고 공유 폴더 탭을 선택한다. 그리고 머신 폴더를 더블 클릭하여 공유 편집에 들어가 아래 그림처럼 입력한다. 2. CD 이미지 삽입아래 그림처럼 장치 -> 게스트 확장 CD 이미지 삽입을 선택한다. 그러면 아래 그림처럼 media -> 사용자 이름 directory -> VBox_GAs_6.1.28 directory가 생성된다. 3. Bzip2 설치sudo apt updatesudo apt install -y bzip2 4. Guest Additions 설치sudo ./VBoxLinuxAdditions.run 5. 사용자 그룹 추가 6. 재부팅sudo reboot 7. 공유 폴더 생성 확인아래 그림처럼 media에 sf_0A라는 공유 폴더가..
Tftpboot directory 설정 1. TFTP 서버 설치sudo apt install tftp-hpa tftpd-hpa 2. Tftpboot directory 생성sudo mkdir tftpboot 3. Directory 권한 설정TFTP 서버가 Tftpboot directory에 접근할 수 있도록 권한을 설정한다.sudo chown -R tftp:tftp /work/release/tftpbootsudo chmod -R 777 /work/release/tftpboot 4. Tftp 설정 파일 수정TFTP 서버의 설정 파일 /etc/default/tftpd-hpa를 수정하여 tftpboot directory를 사용할 수 있도록 한다.sudo vi /etc/default/tftpd-hpa 파일 내용 중 TFTP-DIRECTORY를 아래와 ..
Oracle VM VirtualBox에 Ubuntu 24.04 LTS 설치하기 1. 아래의 Ubuntu 공식 웹사이트에서 Ubuntu 24.04 LTS의 ISO 파일을 다운로드 합니다.https://ubuntu.com/download/desktop https://ubuntu.com/download/desktop ubuntu.com 2. Oracle VM VirtualBox에서 새로 만들기 버튼을 클릭하여 이후 과정을 진행합니다. 1) 이름 및 운영 체제 2) 메모리 크기 3) 하드 디스크 4) 하드 디스크 파일 종류 5) 물리적 하드 드라이브에 저장 6) 파일 위치 및 크기 3. Oracle VM VirtualBox에서 설정 버튼을 클릭하여 이후 과정을 진행합니다. 1) 저장소에서 컨트롤러 IDE 밑에 비어있음을 클릭합니다. 2) 광학 드라이브의 아이콘을 눌러 가상 광학 디스크 선..
UART 직렬 통신의 기본 개념과 데이터 전송 구조 직렬 통신에서 송신기는 데이터를 1비트씩 순차적으로 전송합니다. 수신기는 이 비트들을 1비트씩 받아들이고, 이를 프레임 단위로 해석합니다. 이는 UART 통신이 비동기 방식으로, 송신기와 수신기가 공통의 클럭 신호 없이 통신하기 때문에, 수신기에서 Start bit와 Stop bit를 통해 데이터의 시작과 끝을 확인하고 동기화해야 하기 때문입니다.  UART 통신에서의 프레임은 아래와 같은 구조를 가집니다.1. Start bit(1bit)데이터 전송의 시작을 알리는 신호로, UART 통신 프로토콜에 따라 항상 ‘0’으로 고정되어 있습니다. UART 통신에서 대기 상태일 때 기본 신호는 ‘1’로 유지되는데, 이 상태에서 Start bit로 ‘0’이 전송되면 수신기는 데이터 전송이 시작되었음을 인식하게 됩니..