본문 바로가기

Software/MICOM

(7)
Hi-Impedance(하이 임피던스) 우선 알아야 할것은 논리회로에서 1과 0과 Open의 차이를 정확하게 구분해야 한다. 1은 5V이고, 0은 0V라는 것은 대부분 사람들이 잘 이해한다. 그렇다면 Open은 어떤 상태일까? Open 즉 전압이 없으므로 0이 아닐까?라고 생각할 수 있지만 Open과 0은 분명히 다르다. 이 Open이 Hi-Impedance 상태라한다. 화재를 잠시 바꾸어, 어떤 스위치가 있다고 가정을 하자. 이 스위치는 누르면 On이 되고, 떼면 Off가 된다.(여기서 Off란 Open 상태와 동일하다) 이것을 CPU에 연결했다고 가정해보자. 한쪽은 CPU 입력단자에, 다른 한쪽은 GND로 연결하면 스위치를 GND가 되어 0이 되는 것은 확실하지만 떼면 어떻게 될까? 정답은 Open 상태가 된다. 이 때는 0이라할 수도 없..
I2S(Intergrated Interchip Sound) 통신 I2S 통신 PCB 보드 내에서 칩 간 통신을 하는 방법에는 여러 가지가 있다. (I2S, I2C, SPI, CAN, UART) I2S(Intergrated Interchip Sound)라는 이름을 가진 이 통신규격은 Audio 전용 규격이다. 통상적으로 MCU에서 사운드 칩을 제어하는데, 칩 제어는 I2C로 하고 소리는 I2S로 하는 경우가 대부분이다. I2S에서 기본은 SCK, WS, SD만 있으면 된다. 아래 이미지를 참고하기 바란다. 위의 그림과 같이 기본적으로 3개의 line이 연결된다. Serial clock(SCK), Word Select(WD), Serial Data(SD) 이다. 각 Line을 설명하기 전에 TRANSMITTER, RECEIVER라는 용어가 나온다. 쉽게 말하자면 TRAN..
레지스터란? 참고 : http://recipes.egloos.com/4972694 레지스터란 무엇인가?사전에서 레지스터의 정의를 찾으면 굉장히 복잡하게 이를 설명하는데, 그렇게 복잡하게 생각할 필요가 없다. 마이컴프로그래밍이나 컴파일러를 구현하는 우리에게 레지스터란 그저 CPU만이 쓸 수 있는 변수일 뿐이다.과연 그럴까? 밑에 이야기를 들어보자. - Resistor와 Register는 전혀 다른 단어이기 때문에 헷갈리면 안된다. 저항과 기억소자, 정말 다르다. 기록하다!사실은 CPU가 적은양의 데이터나 처리하는 동안의 중간 결과를 일시적으로 저장히기 위해 사용하는 고속의 기억회로 라는 점인데, 어느정도는 확장, 수정할 필요가 있겠다.나는 이렇게 고치고 싶다. Register는 Flip Flop의 집합이며, 이 Fli..
Renesas 개발일지(2) MICOM에서 function call에 의한 UART 통신 메커니즘 flag(fix_ready)를 사용한다. 이 값의 변경 유무에 따라 trans가능한 데이터 혹은 전송가능 여부에 대한 판단 signal로 사용한다.해당 flag가 세워졌을 시, 해당 flag를 주기적으로 관찰하는 routine(HOST_MAIN())에서 전송을 하기위한 START_TX() function을 호출.UART_TX_MODULE()을 통해 STMK = 1(TX Int disable)을 0로 설정. 그 후uart_tx_interrupt 주기적으로 발생. uart_tx_interrupt() function으로 이동하여 UART_TRN()(실제 UART 전송을 담당) function 실행.전송 하고자하는 Data가 담긴 TXbuf[..
Renesas 개발일지(1) CubuSuite+ 툴을 이용한 Build 환경.MICOM Code 구현시 C언어를 사용.실제 Code level에서 붉은색을 표기된 변수 및 함수 발견.이 메소드와 변수는 실제 MICOM에 정의된 Register 값이며, 변수(Reg?)의 경우 실제 Data Table에 정의가 되어 있음.실제 어떤 Address을 할당할지에 대한 값을 직접 설정해준다.메소드의 경우 CubuSuite+ 툴을 설치함과 동시에, MICOM 내부적으로 제공되는 함수로 생각됨. 실제 코드레벨에서 해당 함수의 정의부를 찾을 수 없으며, 확인 불가. 실제 Build 후 Board에 Download 직 후 메모리 Address를 확인해 보면, 실제 해당 메소드가 가지고 있는 address를 확인 할 수 있다.
GPIO(General Purpose Input Output) 란? 마이크로 프로세서가 주변장치와 통신하기 위해 범용으로 사용되는 입출력 포트이다. 설계자가 마음대로 변형하면서 제어할 수 있도록 제공해주는 I/O(입출력) 포트이다. I/O 포트를 제어하기 위해 각 포트당 3개의 I/O 레지스터(DDRx, PORTx, PINx)를 가진다. 입력, 출력 가능한 I/O 이지만, 여기서 약간의 어려움이 존재한다. 하나의 하드웨어 핀이 입력도 되고 출력도 될 수는 없다는 점이다. 하드웨어 적으로 출력핀은 프로그램에서 출력 값을 변경하지 않는 이상 항상 동일한 값, 즉 1 또는 0의 값을 가진다. 이런 핀을 우리는 latch 라는 말로 표현한다. 사실 메모리 또는 레지스터 이런 것들도 모두 래치형이다. 값은 변경하지 않는 이상은 이전의 값을 동일하게 갖기 때문이다. 좀 더 어려운 ..
개발자가 적어본 마이컴/마이크로프로세서 이야기 해당 글은 : http://reconfig-systems.com/microcontroller.htm 에서 정리되었습니다.들어가는 말 마이컴(Microcontroller)을 처음 접하는 분들에게 도움이 되었으면 하고 마이컴에 대해 토픽별로 적어보았다. 이미 마이컴에 대해 잘 알고 있는 분들께는 도움이 되지 않을 것이다. 그리고 이야기를 추가해 나아가다 보니 마이크로프로세서 영역까지 확장하게 되었다. (괄호한의 "uC"는 Microcontroller, "uP"는 Microprocessor "Adv"는 Advanced topic의 줄임말이다.) Q.01 [uC] 마이컴과 마이크로 프로세서는 어떤 차이점이 있는가? 마이컴은 마이크로컨트롤러(Microcontroller)를 줄여서 부르는 말이다. 마이컴은 소형의 ..