.gitignore 적용 내용 정리
적용 타이밍 소스트리를 활용하면, .gitignore은 git에 올라가지 않고 로컬에만 있어도 적용이 된다.
2023.04.16
no image
XCP on Ethernet : 패킷(Packet) 구조 / CTO, DTO
네트워크 및 통신을 통해, 데이터를 주고 받기 위해서는 패킷의 구조가 정해져 있어야 합니다. XCP 역시, 다른 프로토콜들과 마찬가지로 패킷이 아래와 같이 분류되어 있습니다. 상위 분류 내용 하위 분류 CTO(Command Transfer Object) 명령어 교환 CMD(Command Packet) RES(Command Response Packet) ERR(Error) EV(Event Packet) SERV(Service Request Packet) DTO(Data Transfer Object) 데이터 교환 DAQ(Data AcQuisition) STIM(Stimulation) 하위 분류 내용 상위 분류 CMD(Command Packet) 명령어 전송 CTO(Command Transfer Object)..
2022.07.06
no image
XCP on Ethernet : 기능(PGM, CAL, DAQ, STIM)
이번에는 XCP로 수행하고자 하는 기능들이 무엇인지 알아보겠습니다. XCP 자료들을 살펴보면, 자세한 설명들이 있지만, 결국 아래와 같이 4가지 역할을 위해 XCP를 활용합니다. - PGM : 리프로그래밍 - CAL : Calibration - DAQ : 측정 - STIM : DAQ과 유사한 절차로 동작하는 Calibration PGM(Flash Programming) #블록도상에서의 PGM은 ASAM 문서에서는 Flash Programming이라 명명되어 있습니다. XCP가 아니더라도, 프로그램을 다운 받기 위해서는 메모리 주소, 프로그램 크기 등의 정보가 필요합니다. XCP에서는 이를 SECTOR로 구분하고, SECTOR는 SECTOR_NUMBER에서 참조됩니다. Flash 프로그래밍에 활용되는 주요..
2022.07.06
no image
XCP on Ethernet : Network Architecture
XCP on Ethernet을 설명하고 있는 문서들을 보면, 위와 같은 구조를 볼 수 있습니다. 처음부터 전체를 이해하려 하면, 어려울 수 있으니 XCP on Ethernet의 네트워크 아키텍처부터 정리하겠습니다. 네트워크 관점에서 보면, XCP는 크게 아래와 같이 두 가지로 분류됩니다. - XCP Master : Connection을 요청하는 역할을 수행하고 XCP 통신을 시작하는 기기로서, 일반적으로 컴퓨터 및 랩탑에서 동작합니다. - XCP Slave : Connection 요청에 따라, 응답을 하고 일반적으로 PCB에서 동작합니다. # XCP Master와 Slave는 Connection 외에도 다른 작업들도 수행합니다. 서버와 클라이언트는 네트워크 관점에서 볼 때, XCP와 반대로 동작하는 느낌..
2022.06.29
no image
Push-pull, Opencollector, Opendrain 동작
MCU 제어를 하다보면 Push-pull, Opencollector, Opendrain에 대한 용어를 만나볼 수 있습니다. Push-pull과 Opencollector는 회로 구성이 다릅니다. 그리고 Opencollector와 Opendrain은 구성되는 소자가 BJT냐 MOSEFT이냐의 차이가 있는 것이고 이 글에서는 편의상 BJT로 설명하겠습니다. Push-pull과 Opencollector 회로 구성 Push-pull과 Opencollector는 회로 구성 자체가 다릅니다. Push-pull의 경우 두 개의 트랜지스터를 이용하여 구성되어 있고 Opencollector는 한 개의 트랜지스터를 이용하여 구성되어 있습니다. 좀 더 복잡한 동작을 위해서는 더 많은 소자가 포함될 수도 있지만, 순수하게 Pu..
2022.06.26
Transistor 개념 및 BJT, FET 비교
하드웨어 부품중에 트랜지스터(Transistor) 라고 불리는 것이 있습니다. 흔히, TR이라고 부르기도 합니다. 트랜지스터는 일종의 전자식 스위치라고 이해할 수 있습니다. 예를 들어, 물리적 스위치는 물리적으로 버튼을 누르면 양단의 회로가 연결되는데 트랜지스터는 전압/전류를 인가하면 양단의 회로가 연결됩니다. 트랜지스터는 설계 방식에 따라 분류되고 BJT(Bipolar Junction Transistor)와 FET(Field Effect Transistor)가 많이 활용되기도 합니다. 저를 포함한 많은 소프트웨어/펌웨어 엔지니어 입장에서는 BJT와 FET 차이가 크게 느껴지지 않습니다. 세부적으로 접근하면 중요한 차이점들이 있지만, 개인적인 판단으로 하드웨어 엔지니어처럼 모든 속성을 파악할 필요는 없습..
2022.06.26
EMS, EMI, EMC, ESD 개념
특정 분야에서 제품개발을 한 뒤, 일반적으로 판매를 위해서 인증을 통과해야 합니다. 하드웨어에서는 EMC, EMI, EMS, ESD 등의 인증 용어이 있습니다. 각각에 대한 짧은 설명은 다음과 같습니다. EMC(Electromagnetic Compatibility) EMC는 노이즈라고도 불리웁니다. 하드웨어 제품들은 일반적으로 제품에서 방사되는 노이즈가 적거나, 반대로 외부에서 오는 노이즈에 강건하게 설계되어야 합니다. 즉, 아래와 같은 특징을 만족하기 위함입니다. 제품 -> 외부 : 노이즈 발생 최소 제품
2022.06.26
no image
JTAG(Joint Test Action Group)과 SWD(Serial Wire Debug)
JTAG(Joint Test Action Group) JTAG은 임베디드시스템 개발 시, 대표적으로 활용되는 디버거의 통신 방식입니다. IEEE 1149.1에 표준으로 정해져 있습니다. MCU에 프로그램을 다운로드 하거나 레지스터를 읽거나 컴퓨터 환경에서 개발하는 것처럼 break를 걸어, 특정 변수의 값을 읽을 수도 있습니다. JTAG 인터페이스 JTAG 인터페이스는 아래와 같은 종류의 PIN들로 구성되어 있니다. PIN 내용 TDI(데이터 입력) 테스트하기 위한 데이터 신호 TMS에 의해 TAP State가 전이되고, TDI가 Command와 Data로 결정됨 TDO(데이터 출력) 테스트 결과를 외부에서 모니터링하기 위한 신호 TAP State에 따라, TDO가 Address와 Data로 결정됨 TC..
2022.06.21
no image
TRACE32(T32) Start-up 주소 확인하는 방법
TRACE32를 이용하여 개발하는 환경에서, MCU의 Start-up 주소를 확인하는 방법입니다. 방법은 간단한데, 상단 메뉴바에서 CPU -> In Target Reset을 실행시키는 것입니다. In Target Reset을 실행시키면, MCU가 Start-up 주소로 이동하게 됩니다. 간단하게 List:auto 창을 활용해서 확인할 수 있습니다. 아래의 화면처럼 Start-up 주소에서 프로그램이 멈춰있고, 다른색으로 음영처리됩니다. 저의 Start-up 주소는 '0xA0000000' 이네요. 현재, 연결된 MCU는 Aurix사의 MCU이고 이 MCU는 UCB(User Configuration Blocks) 영역에서도 확인이 가능한 것으로 보여집니다. UCBs 영역을 보려면 상단의 메뉴에서 TCxx ..
2022.06.21