검색결과 리스트
글
파워서플라이로 모듈 사용시 주의사항
매번 파워서플라이를 만지면서도 아차 하는 실수로 모듈 하나가 타버리는 실수를 해버렸습니다. 파워서플라이를 옮기던 중 눈금이 돌아가 있던 듯 한데 수치를 보지 않고 그냥 모듈에 연결해 버린것이 화근이었던 듯 합니다.
이렇게 모듈이 타버려 두 번 다시 사용할 수 없는 상황이 되어버린다면 정말 마음아프지 않을 수 없습니다. 특히 고가격의 모듈이라면 스트레스가 상당할 겁니다.
임베디드 분야를 공부하시는 분들이라면 매우 기본적인 상식이기도 하지만 순간의 실수로 비싼 모듈을 망가뜨릴 위험이 있습니다. 원숭이도 나무에서 떨어질 때가 있듯이 말이지요. 파워서플라이를 사용할 때 마다 다음과 같은 수칙을 확인하고 사용하도록 합시다.
1. 파워서플라이를 켜기 전 가급적이면 모듈과 분리시킨 후 키도록 합니다.
2. 모듈에 파워서플라이를 연결하기 전, 파워서플라이가 해당 모듈의 정격전압에 맞는지 확인합니다.
3. 모듈에서 이상이 발생시 즉시 파워서플라이로부터 모듈을 떼어내 버립니다.
4. 파워서플라이를 사용 후 반드시 전원을 끄도록 합니다.
'임베디드' 카테고리의 다른 글
| 동영상으로 보는 엔코더의 작동 원리 (0) | 2019.12.16 |
|---|---|
| [로터리 엔코더] 엔코더의 작동 원리 및 사용 방법 (42) | 2016.07.31 |
| 진동모터 연결선이 빠졌을 때 대처법 (0) | 2014.08.08 |
설정
트랙백
댓글
글
[Tiva] I2CMasterSlaveAddrSet()
I2CMasterSlaveAddrSet(uint32_t ui32Base, uint8_t ui8SlaveAddr, bool bReceive)
이 함수는 MCU가 I2C 통신을 개시하기 전에 통신할 Slave의 주소값을 설정한 후 통신을 개시할 때 쓰는 함수이다.
uint32_t ui32Base
첫 번째 인자는 I2C 통신을 하게 될 Master 의 Base Address이다.
uint8_t ui8SlaveAddr
두 번째 인자는 I2C 통신시 전달할 Slave의 Address이다. 이 때 Slave의 Address값은 7bit값이어야 한다.
시중에 있는 I2C 통신의 DataSheet에서 설정되어 있는 주소는 일반적으로 8비트로 구성되어있는데
이는 해당 8비트 주소의 오른쪽 끝부분이 R/S를 설정하는 부분이기 때문이다.
DataSheet에 설정된 Address를 사용할 경우 실제 Slave의 Address를 오른쪽으로 비트이동을 하면 된다. 간단하게 ui8SlaveAddr / 2를 하면 쉽게 적용할 수 있다.
bool bReceive
세 번째 인자는 I2C 통신시 Slave에게 하고자 하는 R/S를 설정합니다.
true - R(Slave로부터 데이터를 읽어옵니다.)
false - S(Slave에 값을 저장합니다.)
다음은 해당 함수를 적용한 소스코드와 결과이다.
ROM_I2CMasterSlaveAddrSet(I2C0_BASE, 0xE0 / 2, false);
ROM_I2CMasterDataPut(I2C0_BASE, 0x7E);
ROM_I2CMasterControl(I2C0_BASE, I2C_MASTER_CMD_SINGLE_SEND);
while (ROM_I2CMasterBusy(I2C0_BASE)) {
}
① : SLAVE의 ADDRESS 주소
② : R/S
③ : SLAVE의 ACK
④ : R의 경우 = Master가 Slave로부터 전달되는 값을 읽음
S의 경우 = Master가 Slave에게 값을 전달함
⑤ : Master의 ACK
'임베디드 > TI' 카테고리의 다른 글
| [Tiva] tm4c 시리즈 MCU로 TextLCD(CLCD) 동작 (0) | 2014.08.21 |
|---|---|
| [Tiva]startup_ccs.c 파일에 외부 인터럽트 추가하기 (0) | 2014.08.09 |
| [Tiva] TM4C의 I2C 통신 파형 보는 방법 (4) | 2014.07.28 |
| [Tiva] TM4C 시리즈에서 외부인터럽트 구현 (12) | 2014.07.26 |
| [Tiva] TM4C 시리즈에서 타이머 구현 (0) | 2014.07.26 |
설정
트랙백
댓글
글
[Tiva] TM4C의 I2C 통신 파형 보는 방법
I2C 통신을 처음 입문하는 분들은 종종 파형의 원리를 깨닫지 못해 많이 해메는 경우가 많습니다. 코드 상으로는 감이 오지 않는 I2C 통신을 오실로스코프를 통해 파형을 확인해보면 그 원리를 쉽게 알 수 있습니다.
위 사진은 오실로스코프에 찍은 I2C 통신중인 파형이고 노란색은 SDA, 파란색은 SCL입니다. 아래는 I2C 회로를 설계하는데 참고할 수 있는 데이터시트의 파형입니다.
위 사진의 파형을 쉽게 구분할 수 있게 7단계로 나누었고 그에 대한 각각의 부분은 다음과 같이 설명할 수 있습니다.
① : START
SCL이 HIGH 상태일 때 SDA가 HIGH에서 LOW로 변하는 것으로 I2C 통신을 개시합니다.
② : Slave address
Master가 통신하기 원하는 Salve address 주소를 전송합니다. 1번째부터 7번째 SCL의 edge 클록에서의 7비트가 Slave Address 주소입니다.
③ : R/S
Master가 Salve 에서 할 동작을 설정합니다. HIGH일 때는 Slave로부터 데이터를 전달받고 LOW일 때는 Slave에 데이터를 전송합니다.
④ : ACK
Slave가 Master에게 데이터를 제대로 전송하였음을 확인하는 신호입니다. Slave가 데이터를 완벽히 수신하였을 때 SDA의 값을 LOW로 끌어내려 SCL에 edge 클록이 들어올 때 까지 고정시키다가 값이 제대로 전달되면 SDA를 놓아줍니다다.
⑤ : DATA
R/S에서 설정 대로 데이터를 보내거나 받는다. 데이터 값은 8비트입니다.
⑥ : ACK
Master가 Slave에게 보내는 ACK 신호입니다.
⑦ : STOP
SCL이 HIGH 상태일 때 SDA가 LOW에서 HIGH로 변하는 것으로 I2C 통신을 종료합니다.
'임베디드 > TI' 카테고리의 다른 글
| [Tiva]startup_ccs.c 파일에 외부 인터럽트 추가하기 (0) | 2014.08.09 |
|---|---|
| [Tiva] I2CMasterSlaveAddrSet() (0) | 2014.08.01 |
| [Tiva] TM4C 시리즈에서 외부인터럽트 구현 (12) | 2014.07.26 |
| [Tiva] TM4C 시리즈에서 타이머 구현 (0) | 2014.07.26 |
| [Tiva] Tera Term으로 런치패드와 UART 통신하기 (0) | 2014.07.23 |
