본문 바로가기

DSPIC

(31)
[dsPIC33] SPI 테스트 [dsPIC33] SPI 테스트 dsPIC33 SPI 블록도 SPI모드 설정 SPI2CON1bits.SMP = 0; //한 주기 클럭 중간에서 데이터 출력 위상 설정 SPI2CON1bits.CKE = 0; //MODE 0,0 , 클럭이 LOW 상태에서 SPI2CON1bits.CKP = 0; //MODE 0,0 , 데이터 비트 중간에 High SPI클럭 설정 dsPIC33 SPI 초기화 코드 // SPI 초기화 함수 void SPI1_Init(void) { SPI2CON1bits.DISSCK = 0; //내부 시리얼 클럭 사용 설정 SPI2CON1bits.DISSDO = 0; //SPI모듈 SDO2 핀 사용 설정 SPI2CON1bits.MODE16 = 0; //송수신 전송 데이터 크기 : 8비트 설정 SP..
dsPIC33 - dsPIC Remap포트 설정(UART 테스트) dsPIC33FJ802MC 를 이용하여 여러가지 테스트를 하던중에 UART설정에 오류가 있는걸 확인했다. dsPIC33은 PPS기능을 제공해 Pin map을 PRx 핀에 원하는 형태로 설정(remap)할 수 있다. 입력과 출력에따라 설정 방법은 다른데 UART의 경우 RPINR18에 입력 RP를 설정하면 된다. //U1RX를 RP20에 입력으로 연결 RPINR18bits.U1RXR = 20; //RP19를 U1TX에 연결 RPOR9bits.RP19R = 3; PPS제어를 위해서는 UNLOCK_PPS() 해서 설정하고, 설정후에는 LOCK_PPS() 를 해 주어야 한다. 그리고 만약 포트가 ADC와 겹쳐있다면 ADC기능을 disable해 주어야 한다. #define U0_RXINIT() (AD1PCFGL ..
DC MotorDriver Module 보드 제작 - dsPIC33FJ128MC802 (VNH2SP30 Motor Driver) DC MotorDriver Module 보드 제작 - dsPIC33FJ128MC802 (VNH2SP30 Motor Driver) 가격 저렴하고 소형의 dsPIC33FJ128MC802 를 이용하여 200W급 DC모터 드라이버 모듈을 제작했다. 인터페이스로 CAN, UART가 가능하고 QEI가 있어 엔코더를 연결할 수 있다.
[dsPIC MotorDriver] PID제어 PC프로그램 작성 [dsPIC MotorDriver] PID제어 PC프로그램 작성 PC에서 PID값을 설정 및 위치를 제어하고 엔코더 값을 읽어올 수 있는 프로그램 작성 dsPIC33 PID 제어 테스트 동영상
[dsPIC MotorDriver] PWM테스트 [dsPIC MotorDriver] PWM테스트 dspic의 PWM출력 핀은 GPIO와 공통으로 사용할 수 있도록 되어 있으므로 PWM기능으로 설정할 필요가 있다. PWMCON1레지스터의 PMODx, PENxH, PENxL 비트를 설정하면 된다. PWM1CON1 PMODx : PWM 출력모드 설정 1 = 개별모드 0 = Complementray PENxH : PWMxH I/O 동작설정 1 = PWM핀으로 사용 0 = I/O용으로 사용 PENxL : PWMxL I/O설정 1 = PWM핀으로 사용 0 = I/O용으로 사용 OVCON OVCON 레지스터는 각각의 PWM출력핀을 임의로 제어할 수 있는 오브라이드 기능을 설정하기 위한 레지스터이다. 1일때 PWM active상태. dsPIC33-SM EVM의 PW..
[dsPIC MotorDriver] QEI 테스트 [dsPIC MotorDriver] QEI 테스트 dsPIC33은 PPS기능을 제공해 Pin map을 PRx 핀에 원하는 형태로 설정할 수 있다. 입력과 출력에따라 설정 방법은 다른데 UART의 경우 RPINR18에 입력 RP를 설정하면 된다. //U1RX를 RP20에 입력으로 연결 RPINR18bits.U1RXR = 20; //RP19를 U1TX에 연결 RPOR9bits.RP19R = 3; PPS제어를 위해서는 UNLOCK_PPS() 해서 설정하고, 설정후에는 LOCK_PPS() 를 해 주어야 한다. 이 설정은 런타임시 한번만 가능한것 같다.
[dsPIC33 MotorDriver] 타이머 인터럽트 테스트 [dsPIC33 MotorDriver] 타이머 인터럽트 테스트 모터 제어기가 수행될 타이머 인터럽트는 가장 기본 사항이 될것같다. 일반적으로 사용되는 제어 주기인 1ms로 설정해 테스트 dsPIC의 타이머 인터럽트는 상당히 간단하다. 먼저 인터럽트 초기화 하고 클럭 소스의 설정을 위해 TCS비트를 설정하는데 0이면 내부 Tcy를 선택한다. Tcy는 Fosc/2 이므로 80Mhz/2 인 40Mhz가 된다. 그리고 이 클럭소스를 TCKPS비트 설정으로 1/8/64/256 으로 분주 할 수 있다. 타이머 인터럽트 PR1 레지스터 값과 일치할때 발생한다. dsPIC Timer 블록도 1ms 주기로 인터럽트 생성하기 하기 위한 PR1값 설정은 625이다. 계산법은 아래와 같다. 40Mhz / 64 = 625000..
[dsPIC33 Motor Driver] DC모터 드라이버 보드 제작 [dsPIC33 Motor Driver] DC모터 드라이버 보드 제작 dsPIC33FxMC 를 이용하여 제작한 모터 드라이버용으로 테스트 실험 내용을 기록할 계획임 dsPIC33F202모듈 1 테스트할 모터

반응형