Использую Контроллр TMSf28335 и MC2515. Spi реализованы из McBSP на TMS так как все остальные spi заняты. Код инициализации следующий
// McBSP-A register settings McbspaRegs.SPCR2.all=0x0000; // Reset FS generator, sample rate generator & transmitter McbspaRegs.SPCR1.all=0x0000; // Reset Receiver, Right justify word, Digital loopback dis. McbspaRegs.PCR.all=0x0F08; //(CLKXM=CLKRM=FSXM=FSRM= 1, FSXP = 1) McbspaRegs.SPCR1.bit.DLB = 0; McbspaRegs.SPCR1.bit.CLKSTP = 2; // Together with CLKXP/CLKRP determines clocking scheme McbspaRegs.PCR.bit.CLKXP = 0; // CPOL = 0, CPHA = 0 rising edge no delay McbspaRegs.PCR.bit.CLKRP = 0; McbspaRegs.RCR2.bit.RDATDLY=01; // FSX setup time 1 in master mode. 0 for slave mode (Receive) McbspaRegs.XCR2.bit.XDATDLY=01; // FSX setup time 1 in master mode. 0 for slave mode (Transmit)
McbspaRegs.RCR1.bit.RWDLEN1=0; // 32-bit word McbspaRegs.XCR1.bit.XWDLEN1=0; // 32-bit word
McbspaRegs.SRGR2.all=0x2000; // CLKSM=1, FPER = 1 CLKG periods McbspaRegs.SRGR1.all= 0x000F; // Frame Width = 1 CLKG period, CLKGDV=16
McbspaRegs.SPCR2.bit.GRST=1; // Enable the sample rate generator delay_loop(); // Wait at least 2 SRG clock cycles McbspaRegs.SPCR2.bit.XRST=1; // Release TX from Reset McbspaRegs.SPCR1.bit.RRST=1; // Release RX from Reset McbspaRegs.SPCR2.bit.FRST=1; // Frame Sync Generator reset
SPI 0/0 длинна слова 8 бит
Нашел библиотеку для работы с MC2515 переделал ее для TMS Но контроллер со мной не общается. Инициализацию проводил как положено Если есть идеи высказывайте.
|