본문 바로가기

MEGAWIN40

MG82F6D SPI Flash-2 ⑹ SPI 통신 초기화 – SPI 마스터 설정 /*********************************************************************************** *Function: void InitSPI(void) *Description: Initialize SPI Master *Input: *Output: *************************************************************************************/ void InitSPI(void) { SPI_Enable(); // Enable SPI SPI_SelectMASTERByMSTRbit(); // Set to MASTER SPI_SetClock(SPI_CLK_S.. 2022. 12. 22.
MG82F6D SPI Flash-1 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. SPI 통신으로 MX25L3206 IC를 Read/Write 테스트함. - Flash ID 읽기 - Flash Erase - Flash Write - Flash Read 2. 회로도 3. Code ⑴ main routine void main() { u32 i; bit bOK; DWordTypeDef dwTemp; InitSystem(); // 시스템 초기화 INT_EnAll(); // EA = 1, SendStr("\nHello!"); // 시리얼로 Hello 전송, program start LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXm.. 2022. 12. 22.
MG82F6D Series PCA COPM Buf 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. PWM match 모드에서의 비교 출력은 고속 출력 모드와 비슷하다. 그러나 고정된 16비트 비교기 대신에 PCA0 PWM 비교기 들을 사용한다. 어플리케이션에 좀 더 유연하게 사용될 수 있다. 예를 들어 PCA0 비교기에 대해 8비트 PWM이 사용되면 출력 토글 주파수는 고속 출력 모드보다 더 높을 수 있다. 어플리케이션에서 PWM 시그널의 어떤 위상 제어가 필요하다면, PCA0모듈들을 버퍼된 비교 모드로 설정할 필요가 있다. PCA0 모듈들의 한 짝(n=0&1, 2&3, 4&5)은 PWM 시그널의 한 사이클의 두 엣지의 시간 딜레이로 프로그램 될 수 있다. 이것은 파형의 시작과.. 2022. 12. 21.
MG82F6D Series PCA Capture Buf 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. 캡쳐 모드 사용시 CAPNn, CAPPn 중 하나 또는 두 개가 모두 셋 되어 있어야 한다. 외부 핀인 CEX 에서 파형의 변화를 확인한다. PCA0 하드웨어에서 유의미한 변화가 감지되면 캡처 레지스터(CCAPnL, CCAPnH)로 PCA0 카운터 레지스터(CH, CL)의 값이 저장된다. CCFn과 ECCFn 비트가 모두 셋 되어 있으면 인터럽트가 발생한다. 폭이 좁은 신호에는 버퍼를이용한 캡쳐모드가 필요하다. 활성화가 되면 홀수 모듈의 캡쳐 데이터 레지스터(CCAPnH, CCAPnL, n=1, 3, 5)는 짝수 모듈의 캡쳐 데이터 레지스터들(채널 0, 2, 4)의 버퍼 레지스터로.. 2022. 12. 20.
MG82F6D Series INT KBI Wake UP 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. KBI0, KBI1은 P10, P11에 연결되어 있다. KBI 인터럽트가 발생하면 LED_R을 ON 시키고, 인터럽트 플래그를 클리어 시킨다. 그 뒤 LED_R을 OFF 시킨다. 메인 루틴에서는 MCK를 OSCin으로 설정하고, 파워다운 모드로 들어간다. KBI를 통해 wake up 되면 클럭 부분에 대해 다시 설정을 하고, LED_G_1을 두 번 깜빡인다. 2. 회로도 3. Code ⑴ main routine void main() { u8 KBICnt=0; u8 BakCKCON2; InitSystem(); // 시스템 초기화 LED_G_0=0;LED_G_1=0;LED_R=0; /.. 2022. 12. 19.
MG82F6D Series IAP Sample 1. 프로그램 개요 P22는 Green 0 LED, P24는 Red LED, P26은 Green 1 LED가 연결되어 있다. IAP 특정 영역의 256 바이트를 라이팅하고, 읽어서 UART로 전송하는 프로그램 2. 회로도 3. Code ⑴ main routine void main() { BYTE IAPData; BYTE i; BYTE rand; bit bOK=TRUE; TrapFlag[0]='W';TrapFlag[1]=0xFF;TrapFlag[2]=0xFF; // 트랩 코드 저장 InitSystem(); // TrapFlag[1] = ‘i’ 저장함 LED_G_0=0;LED_G_1=0;LED_R=0; // LED ALL ON DelayXms(1000); // 1초 딜레이 printf("\nStart IAP.. 2022. 12. 16.