HCS specifications
- 보드 명: HCS12
- Freescale 사의 16bit MCU 탑재
- ROM, RAM, EEPROM, Flash ROM 내장
- 16bit 타이머
- Serial, CAN 통신 가능
- ADC(Analog to Digital Converter) 가능
- PWM(Pulse Width Modulation), 펄스 폭 변조 가능
- 저전력 지원
>CMOS(Complementary Metal Oxide Semiconductor)
>전력 소모의 가변화
>SLEEP모드 (사용 중 대기)
IDE
CodeWarrior® Dev Tools for HCS12(X) MCUs | NXP Semiconductors
Datasheet★
https://www.nxp.com/docs/en/data-sheet/HCS12COREUG.pdf
Interrupt vs Polling
Interrupt
- CPU와 I/O장치의 처리속도 차이
- 수행 중이던 일을 멈추고 I/O장치의 요구사항을 수행
- ex) 공부하다 전화 일 보고 다시 하고있던 공부로 돌아오는 것
Polling
- I/O 장치의 상태를 계속 지켜보고 있는 방식
- 인터럽트에 비해 비효율적
- ex) 공부하며서 계속 전화 왔나 확인
RTI(Real Time Interrupt)란?
- 주기적인 하드웨어 interrupt
- 일정한 주기마다 동작 실행
- 내부 클럭이 특정 값에 도달할 때마다 발생
- 1초 간격을 생성하여 디지털 시계 구성
- 정해진 시간마다 보드의 전원을 check
ADC의 원리
Resolution (변환 단계에 대한 비트 수)
Sampling rate (1초당 샘플링 되는 개수)
단위: SPS(Sample Per Second)
Sampling data에서 Sampling rate를 반으로 줄이면 시간 축 주기가 길어지고
Resolution을 반으로 줄이면 전압 주기가 길어짐
Serial Communication
- 한 번에 1bit 데이터 전송
- 주로 마이크로프로세서와 외부 장치 간 통신에 사용
동기(Synchronous) vs 비동기 통신(Asynchronous)
동기 통신
- 송신 장치의 클럭에 따른 동기화
- 동기화된 클럭에 따라 데이터를 송수신
- 비동기 통신에 비해 빠른 전송속도
- 송수신하지 않을 때에도 동기화를 위한 제어신호를 전송
비동기 통신
- 각 송수신 메시지에 start bit 및 stop bit 존재
- 동기 통신에 비해 느린 전송속도
- Idle 상태(대기 상태)에서는 프로세서의 처리가 필요 없음
- RS232 : 가장 많이 사용되는 시리얼 통신 방식
PWM
- 아날로그 신호를 디지털화하는 방법
- 사각파형 출력
- 평균 전압 조절
- 적용 사례
> DC 모터의 속도 컨트롤 - 쿨링 팬
> LED 밝기 제어 - Duty (Pulse width) - 신호가 High인 구간
CAN
- 가장 많이 사용되는 In-Vehicle network
- 자동차 분야 외에도 제어 네트워크 분야에 널리 사용
- BUS topology
CAN network
- 중앙집중식이 아닌 분산식
- CAN frame은 주소가 없음 -> 대신 Identifier(content, priority) 정보 존재
- Bit Stuffing and NRZ code
- AMP and CSMA/CR (Carrier Sense Multiple Access / Collision Resolution)
CSMA/CR
> Carrier Sense: CAN 구리선에 정보가 흐르는지 안흐르는지 체크
> Multiple Access: 어떤 ECU가 정보를 보낼 때 다른 ECU의 허락을 안맡아도 되는 것
> Collsion Resolution: 구리선이 정보교환으로 사용되고 난 후 여러 요청이 들어올 때 충돌을 해결(우선순위 배정)
dominant(우성) : Logical 0
recessive(열성) : Logical 1
CAN 노이즈 감쇄 방법
- Twisted Pair 사용
- 말단 저항 사용
- logical 값을 읽을 때 VH - VL값을 이용한다.
-> VH, VL 각각 노이즐르 갖고 있을텐데 전압차를 이용하면 노이즈가 거의 상쇄
ex) VH + Noise, VL + Voise
VH-VL하면 Noise 상쇄
Bus status distinctionn
Bus logic status
"1" = recessive status
"0" = dominant status
프레임 비트가 모두 1이면 bus logic도 1이지만 한 프레임이라도 0을 나타내고 있다면 bus logic은 0
CAN Bit time
- CAN의 한 비트가 어떻게 구성되어있는지
실습 오류
- HCS12보드가 오래된 제품이라 보드에 결함이 존재.
-> 보드 교체로 해결 - GPIO제어할 때 내가 보드를 놓은 방향과 Datasheet방향이 반대여서 LED바 인가값을 반대로 줌
- printf 함수를 사용하면 Link Error 발생
->printf 함수 말고 sprintf사용 - SCI통신할 때나 CAN통신할 때 해당 선 이외에 디버거 선도 연결해야함.
- 소리는 나지만 STEP모터 돌아가지 않는 현상 발생
->수동으로 굴려주면 이후 회전이 잘됨.
(update 24.03.21) 해당 원인은 PWM duty rate 값을 작게 주어 마찰음만 발생한 것
반응형
'Embedded' 카테고리의 다른 글
[e2 studio] Expressions - 실시간으로 변수 값 확인하는 방법 (3) | 2024.03.14 |
---|---|
[RA6M3] TIL (0) | 2024.03.12 |
[RA6M3 ] TIL (03.11) (2) | 2024.03.11 |