2012/07/14

dsPIC33FJ32GP202

,
久々に弄ることにした(暇だった)。とりあえずPICKit2の踏んづけて折ったUSBコネクタを付け直すところからだった…

UART、つまりシリアルがまともに動いてくれなくて困ってるわけです。
datasheet:http://ww1.microchip.com/downloads/jp/DeviceDoc/jp531358.pdf
UARTのマニュアル(日本語):http://ww1.microchip.com/downloads/jp/DeviceDoc/70188D_JP.pdf
ここに書いてあるように、UxMODE、UxSTAレジスタで設定して、UxBRGにボーレートを設定して関数呼ぶわけです、が、まあ動くはずもなく…
実際にはC30を用いて、なんかよくわからないコンフィグのパラメータ並べるわけです、回折はここが詳しめ:http://www.crystal-creation.com/robot/technical-information/microcomputer/pic/programming/built-in-module/uart/

(dsPIC33FJ32FP202) - FT232(秋月モジュール) -USB- PCみたいな構成だけど、オシロで見る分にはFT232のRXポートまではちゃんと来てるみたい…?
PC側の問題(ドライバ、ポート、後はTeraTermとか)なのか、FT232の問題(ピンが違うor電圧設定が違う)なのかようわからん…

UM232RのRXDピンの波形





#include < p33FJ32GP202.h >
#include < uart.h >

_FOSCSEL(FNOSC_PRI & IESO_OFF);
_FOSC(POSCMD_HS & OSCIOFNC_OFF & IOL1WAY_OFF);
_FWDT(FWDTEN_OFF & WINDIS_OFF);
_FPOR(FPWRT_PWR1 & ALTI2C_OFF);
_FICD(JTAGEN_ON & ICS_PGD1);

//UARTの設定
//IDLE_ONE? 
unsigned int U1MODE_value = UART_EN & UART_IDLE_CON & UART_IrDA_DISABLE &
       UART_MODE_SIMPLEX & UART_UEN_00 & UART_EN_WAKE &
       UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_UXRX_IDLE_ONE &
       UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & UART_1STOPBIT;
unsigned int U1STA_value = UART_INT_TX_BUF_EMPTY & UART_SYNC_BREAK_DISABLED &
       UART_TX_ENABLE & UART_INT_RX_CHAR & 
       UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;
const unsigned int CLOCK_FREQUENCY = 7370000;
const unsigned int BAUDRATE = 9600;

int main()
{
 CLKDIV = 0; //set 1:1
 //AD1PCFGL = 0xFFFF; //portA -> all digital
 TRISA = 0x0000; //all out
 PORTA = 0x0001; //RA0 -> high
 TRISB = 0x0010; //RB4(RP4)はinput
 //UART1ピンの割り当て
 RPINR18bits.U1RXR = 2;//RXはRP2, RB2 6pin
 RPOR2bits.RP4R = 3; //TXはRP4(RB4)
 //UART1初期設定
 //ボーレートの計算
 const double BaudRateF = ((double)CLOCK_FREQUENCY / (16*BAUDRATE)) - 1;
 const unsigned int baud = (unsigned int)(BaudRateF + 0.5);
 //9600bps、パリティ無し8bit、フロー制御なし
 OpenUART1(U1MODE_value, U1STA_value, baud);
 
 volatile int j = 0;
 while(1)
 {
  //文字を送る
  WriteUART1('k');
  j++;
 }
 return 0;
}

0 コメント to “dsPIC33FJ32GP202”

コメントを投稿