[Microchip]/dsPIC2016. 8. 17. 03:24

dsPIC33 EVM - I2C 테스트

dsPIC33 EVM - I2C 테스트




dspic33_i2c.pdf


dsPIC33 EVM  보드의 I2C는 RG2(SCL), RG3(SDA)에 연결되어 있다.





dsPIC33 I2C 초기화 코드

void i2c_init(unsigned int Speed)

{

OpenI2C1( I2C_ON, I2C_BRG );

}




dsPIC33 I2C Read/Write 소스 코드

unsigned char i2c_read_byte(unsigned char Addr, unsigned char reg)
{
unsigned char data = 0;
unsigned char SlaveAddress = Addr;
char i2cData[10];
int DataSz;
int Index = 0;
i2cData[0] = (SlaveAddress << 1) | 0;
i2cData[1] = reg;
DataSz = 2;
StartI2C1();
IdleI2C1();
while( DataSz )
{
MasterWriteI2C1( i2cData[Index++] );
IdleI2C1();
DataSz--;
if( I2C1STATbits.ACKSTAT )
break;
}
RestartI2C1();
i2c_wait(10);
IdleI2C1();
MasterWriteI2C1( (SlaveAddress << 1) | 1 );
IdleI2C1();
data = MasterReadI2C1();
StopI2C1();
IdleI2C1();
return data;
}
void i2c_write_byte(unsigned char Addr, unsigned char reg, unsigned char data)
{
unsigned char SlaveAddress = Addr;
char i2cData[10];
int DataSz;
int Index = 0;
char status;
i2cData[0] = (SlaveAddress << 1) | 0;
i2cData[1] = reg;
i2cData[2] = data;
DataSz = 3;
StartI2C1();
IdleI2C1();
while( DataSz )
{
MasterWriteI2C1( i2cData[Index++] );
IdleI2C1();
DataSz--;
if( I2C1STATbits.ACKSTAT )
break;
}
StopI2C1();
IdleI2C1();
}






















dsPIC33 EVM을 이용한 I2C 온습도 센서 테스트 예제



Posted by nexp

댓글을 달아 주세요

[Microchip]/dsPIC33E2014. 3. 29. 00:24

dsPIC33E - 보드 제작(dsPIC33EP32MC202)

dsPIC33E - 보드 제작(dsPIC33EP32MC202)



Microchip사의 dsPIC33EP32MC202를 위한 테스트 보드를 s-Type EVM 형태로 제작했다. dsPIC33E 시리즈는 70Mhz로 동작하는 DSC로 소형이면서 DSP연산을 할 수 있어 퍼포먼스가 필요할 때 간단히 적용하면 좋을것 같다.

기존 dsPIC33과 호환도 되므로 기능 검증이 되면 저렴한 모델로 전환도 쉽다. (가격적인 면은 그렇게 좋지 않은것 같다. 아무래도 소량 구매이고 아직 국내에 많이 사용되지 않아 그런지 모르지만 Cortex-M3와 비교하면 비싸보인다.)





dsPIC33E EVM 회로도 






dsPIC33E 확장 테스트 보드






Posted by nexp

댓글을 달아 주세요

[Microchip]/dsPIC33-SM2013. 3. 10. 06:24

[dsPIC33F-SM EVM] UART 테스트 - dsPIC33F128MC 사용

[dsPIC33F-SM EVM] UART 테스트 - dsPIC33F128MC 사용

 

dsPIC33의 QFN 타입은 포트 리맵 기능이 있어 UART 핀맵을 변경할 수 있다.

dsPIC33FJ128MC804 를 사용한 보드에서 테스트 할 때 기록해 둘 필요가 있어 정리해 본다.

 

dsPIC33-SM EVM에서 UART는 RC3/RP19(TXD), RC4/RP20(RXD)에 할당되어 있다.

 

실제 코드에서 PPS설정은 아래와 같이 해 주면 된다.

 

#define PPS_CINFIG()     _U1RXR = 20;\
                                         _RP19R  = 3;\

 

 

 

 

 

Posted by nexp

댓글을 달아 주세요