int main( void ) { uint8_t d = 0x34,rxbuf = 0X23; mInit(); // I2C_config(); SPI_config(); debug_setup(); ADC_A_config(); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //M4 DIRECTION GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; //M3 DIRECTION GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOB, &GPIO_InitStructure); TIMA_config(100, 20,10); // timer1 channel 1 PA8 TIMB_config(100, 20,10); // timer2 channel 3 PA9 TIMC_config(100, 20,10); // timer15 channel 1 PB14 TIMD_config(100, 20,10); // timer2 channel 2 PA1 // first 2 numbers // // in this function are not doing anything while(1) { GPIO_ResetBits(GPIOA, GPIO_Pin_0); GPIO_ResetBits(GPIOB, GPIO_Pin_15); // debug_write_ch(0XAB); mBlueTOGGLE; mGreenTOGGLE; mRedTOGGLE; mWaitms(300); GPIO_SetBits(GPIOA, GPIO_Pin_0); GPIO_SetBits(GPIOB, GPIO_Pin_15); /* Test EOC flag */ while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); /* Get ADC1 converted data */ ADC1ConvertedValue =ADC_GetConversionValue(ADC1); debug_write_u16(ADC1ConvertedValue,10); debug_write_line(" "); // mWaitms(300); // I2C_write_1byte(SLAVE_ADDR2,254,22); // rxbuf = I2C_read_1byte(SLAVE_ADDR,254); // debug_write_ch(rxbuf); // rxbuf = I2C_read_1byte(SLAVE_ADDR1,254); // debug_write_ch(rxbuf); // rxbuf = I2C_read_1byte(SLAVE_ADDR2,254); // debug_write_ch(rxbuf); // TIM_SetCompare2 ( TIM2,1); // mWaitms(300); // TIM_SetCompare2 ( TIM2,0); // mWaitms(1000); // SPI_SendData8(SPI1, d); // while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); // while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET); // rxbuf = SPI_ReceiveData8(SPI1); } }
Int16 spi_eeprom_init(CSL_SpiHandle spiHandle) { volatile Int16 looper; Int16 result; SPI_Config hwConfig; CSL_SYSCTRL_REGS->PSRCR = (Uint16)0x04; CSL_SYSCTRL_REGS->PRCR = (Uint16)0x00FF; CSL_SPI_REGS->SPICDR = (Uint16)0x00; CSL_SPI_REGS->SPICCR = (Uint16)0x00; CSL_SPI_REGS->SPIDCR1 = (Uint16)0x00; CSL_SPI_REGS->SPIDCR2 = (Uint16)0x00; CSL_SPI_REGS->SPICMD1 = (Uint16)0x00; CSL_SPI_REGS->SPICMD2 = (Uint16)0x00; CSL_SPI_REGS->SPISTAT1 = (Uint16)0x00; CSL_SPI_REGS->SPISTAT2 = (Uint16)0x00; CSL_SPI_REGS->SPIDR1 = (Uint16)0x00; CSL_SPI_REGS->SPIDR2 = (Uint16)0x00; for(looper = 0; looper < 100; looper++) {;} /* Enable SPI with PPMODE as MODE5 */ // CSL_SYSCTRL_REGS->EBSR = (Uint16)0x5000; #if (defined (C5535_EZDSP)) result = SYS_setEBSR(CSL_EBSR_FIELD_PPMODE, CSL_EBSR_PPMODE_1); #else result = SYS_setEBSR(CSL_EBSR_FIELD_PPMODE, CSL_EBSR_PPMODE_3); #endif if (CSL_SOK != result) { printf("SYS_setEBSR failed\n"); return (result); } CSL_SPI_REGS->SPICCR = (Uint16)(1<<15); /** Set the hardware configuration */ hwConfig.spiClkDiv = SPI_CLK_DIV; hwConfig.wLen = SPI_WORD_LENGTH_8; hwConfig.frLen = SPI_FRAME_LENGTH; hwConfig.wcEnable = SPI_WORD_IRQ_ENABLE; hwConfig.fcEnable = SPI_FRAME_IRQ_DISABLE; hwConfig.csNum = SPI_CS_NUM_0; hwConfig.dataDelay = SPI_DATA_DLY_0; hwConfig.csPol = SPI_CSP_ACTIVE_LOW; hwConfig.clkPol = SPI_CLKP_LOW_AT_IDLE; hwConfig.clkPh = SPI_CLK_PH_FALL_EDGE; result = SPI_config(spiHandle, &hwConfig); if(CSL_SOK != result) { printf ("SPI Instance Configuration Failed\n"); return (result); } else { printf ("SPI Instance Configured successfully\n"); } CSL_SPI_REGS->SPICCR = (Uint16)(1<<15); /* Wait for SPI ready */ while((CSL_SPI_REGS->SPISTAT1 & 0x0001) != 0) {}; /* Clear Block Protection */ commandBuf[0] = 0x01; // SPI_CMD_WRSR commandBuf[1] = 0xC3; CSL_SPI_REGS->SPICMD1 = (Uint16)0x0000 | 2 - 1; for (looper = 0; looper < 2; looper++) { CSL_SPI_REGS->SPIDR2 = (Uint16)commandBuf[looper] << 8; CSL_SPI_REGS->SPIDR1 = (Uint16)0x0000; CSL_SPI_REGS->SPICMD2 = (Uint16)0x0039; // 8-bit words, read while((CSL_SPI_REGS->SPISTAT1 & 0x0002) == 0) {}; commandBuf[looper] = CSL_SPI_REGS->SPIDR2 & 0xff; } while((CSL_SPI_REGS->SPISTAT1 & 0x0001) != 0) {}; return (result); }