Exemplo n.º 1
0
/*
 *	Main function: initializes all system values and components, then starts
 *	operation of the two threads.
 *
 *	@author HP Truong, Jacob Barnett
 *
 *	@param void
 *	@return void
 */
int main (void) {
	CC2500_LowLevel_Init();
	CC2500_Reset();

	osKernelInitialize ();                    // initialize CMSIS-RTOS
	
	// initialize peripherals here
	/* LCD initiatization */
	LCD_Init();
  
	/* LCD Layer initiatization */
	LCD_LayerInit();

	/* Enable the LTDC controler */
	LTDC_Cmd(ENABLE);

	/* Set LCD foreground layer as the current layer */
	LCD_SetLayer(LCD_FOREGROUND_LAYER);

	LCD_SetFont(&Font16x24);
	LCD_Clear(LCD_COLOR_WHITE);

	receive_and_plot_thread = osThreadCreate(osThread(receive_and_plot), NULL);
	print_lcd_debug_thread = osThreadCreate(osThread(print_lcd_debug), NULL);

	osKernelStart ();                         // start thread execution 
}
/**
  * @brief  Set CC2500 Initialization.
  * @param  LIS302DL_Config_Struct: pointer to a LIS302DL_Config_TypeDef structure 
  *         that contains the configuration setting for the LIS302DL.
  * @retval None
  */
void CC2500_Default_Init(void)
{
	uint8_t buffer[0x2f];
	buffer[CC2500_REG_IOCFG2_ADDR] = SMARTRF_SETTING_IOCFG2;
	buffer[CC2500_REG_IOCFG1_ADDR] = SMARTRF_SETTING_IOCFG1;
	buffer[CC2500_REG_IOCFG0_ADDR] = SMARTRF_SETTING_IOCFG0;
	buffer[CC2500_REG_FIFOTHR_ADDR] = SMARTRF_SETTING_FIFOTHR;
	buffer[CC2500_REG_SYNC1_ADDR] = SMARTRF_SETTING_SYNC1;
	buffer[CC2500_REG_SYNC0_ADDR] = SMARTRF_SETTING_SYNC0;
	buffer[CC2500_REG_PKTLEN_ADDR] = SMARTRF_SETTING_PKTLEN;
	buffer[CC2500_REG_PKTCTRL1_ADDR] = SMARTRF_SETTING_PKTCTRL1;
	buffer[CC2500_REG_PKTCTRL0_ADDR] = SMARTRF_SETTING_PKTCTRL0;
	buffer[CC2500_REG_ADDR_ADDR] = SMARTRF_SETTING_ADDR;
	buffer[CC2500_REG_CHANNR_ADDR] = SMARTRF_SETTING_CHANNR;
	buffer[CC2500_REG_FSCTRL1_ADDR] = SMARTRF_SETTING_FSCTRL1;
	buffer[CC2500_REG_FSCTRL0_ADDR] = SMARTRF_SETTING_FSCTRL0;
	buffer[CC2500_REG_FREQ2_ADDR] = SMARTRF_SETTING_FREQ2;
	buffer[CC2500_REG_FREQ1_ADDR] = SMARTRF_SETTING_FREQ1;
	buffer[CC2500_REG_FREQ0_ADDR] = SMARTRF_SETTING_FREQ0;
	buffer[CC2500_REG_MDMCFG4_ADDR] = SMARTRF_SETTING_MDMCFG4;
	buffer[CC2500_REG_MDMCFG3_ADDR] = SMARTRF_SETTING_MDMCFG3;
	buffer[CC2500_REG_MDMCFG2_ADDR] = SMARTRF_SETTING_MDMCFG2;
	buffer[CC2500_REG_MDMCFG1_ADDR] = SMARTRF_SETTING_MDMCFG1;
	buffer[CC2500_REG_MDMCFG0_ADDR] = SMARTRF_SETTING_MDMCFG0;
	buffer[CC2500_REG_DEVIATN_ADDR] = SMARTRF_SETTING_DEVIATN;
	buffer[CC2500_REG_MCSM2_ADDR] = SMARTRF_SETTING_MCSM2;
	buffer[CC2500_REG_MCSM1_ADDR] = SMARTRF_SETTING_MCSM1;
	buffer[CC2500_REG_MCSM0_ADDR] = SMARTRF_SETTING_MCSM0;
	buffer[CC2500_REG_FOCCFG_ADDR] = SMARTRF_SETTING_FOCCFG;
	buffer[CC2500_REG_BSCFG_ADDR] = SMARTRF_SETTING_BSCFG;
	buffer[CC2500_REG_AGCTRL2_ADDR] = SMARTRF_SETTING_AGCCTRL2;
	buffer[CC2500_REG_AGCTRL1_ADDR] = SMARTRF_SETTING_AGCCTRL1;
	buffer[CC2500_REG_AGCTRL0_ADDR] = SMARTRF_SETTING_AGCCTRL0;
	buffer[CC2500_REG_WOREVT1_ADDR] = SMARTRF_SETTING_WOREVT1;
	buffer[CC2500_REG_WOREVT0_ADDR] = SMARTRF_SETTING_WOREVT0;
	buffer[CC2500_REG_WORCTRL_ADDR] = SMARTRF_SETTING_WORCTRL;
	buffer[CC2500_REG_FREND1_ADDR] = SMARTRF_SETTING_FREND1;
	buffer[CC2500_REG_FREND0_ADDR] = SMARTRF_SETTING_FREND0;
	buffer[CC2500_REG_FSCAL3_ADDR] = SMARTRF_SETTING_FSCAL3;
	buffer[CC2500_REG_FSCAL2_ADDR] = SMARTRF_SETTING_FSCAL2;
	buffer[CC2500_REG_FSCAL1_ADDR] = SMARTRF_SETTING_FSCAL1;
	buffer[CC2500_REG_FSCAL0_ADDR] = SMARTRF_SETTING_FSCAL0;
	buffer[CC2500_REG_RCCTRL1_ADDR] = SMARTRF_SETTING_RCCTRL1;
	buffer[CC2500_REG_RCCTRL0_ADDR] = SMARTRF_SETTING_RCCTRL0;
	buffer[CC2500_REG_FSTEST_ADDR] = SMARTRF_SETTING_FSTEST;
	buffer[CC2500_REG_PTEST_ADDR] = SMARTRF_SETTING_PTEST;
	buffer[CC2500_REG_AGCTEST_ADDR] = SMARTRF_SETTING_AGCTEST;
	buffer[CC2500_REG_TEST2_ADDR] = SMARTRF_SETTING_TEST2;
	buffer[CC2500_REG_TEST1_ADDR] = SMARTRF_SETTING_TEST1;
  buffer[CC2500_REG_TEST0_ADDR] = SMARTRF_SETTING_TEST0;

	
  /* Configure the low level interface ---------------------------------------*/
  CC2500_LowLevel_Init();
  
  /* Configure*/
  CC2500_SRES_CMD();
	
	CC2500_WriteRegister(buffer, CC2500_REG_IOCFG2_ADDR, 0x2f);
	
}
Exemplo n.º 3
0
/**
  * @brief  Set CC2500 Initialization.
  * @param  None
  * @retval None
  */
void CC2500_Init(void) {
   
   CC2500_LowLevel_Init();
   
	 // Wireless configuration as defined on project specification page 9
   uint8_t reg;
   
	 // reset the device first
	 CC2500_Strobe(CC2500_STROBE_SRES, DUMMY_BYTE);
	 osDelay(50);
	
	 // put the device in idle mode
	 CC2500_Strobe(CC2500_STROBE_SIDLE, DUMMY_BYTE);
	
	 osDelay(50);
	
   reg = (uint8_t)CC2500_SETTING_FSCTRL1;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCTRL1, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSCTRL0;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCTRL0, 1);
   
   reg = (uint8_t)CC2500_SETTING_FREQ2;
   CC2500_Write(&reg, CC2500_CFG_REG_FREQ2, 1);
   
   reg = (uint8_t)CC2500_SETTING_FREQ1;
   CC2500_Write(&reg, CC2500_CFG_REG_FREQ1, 1);
   
   reg = (uint8_t)CC2500_SETTING_FREQ0;
   CC2500_Write(&reg, CC2500_CFG_REG_FREQ0, 1);   
   
   reg = (uint8_t)CC2500_SETTING_MDMCFG4;
   CC2500_Write(&reg, CC2500_CFG_REG_MDMCFG4, 1);
   
   reg = (uint8_t)CC2500_SETTING_MDMCFG3;
   CC2500_Write(&reg, CC2500_CFG_REG_MDMCFG3, 1);
   
   reg = (uint8_t)CC2500_SETTING_MDMCFG2;
   CC2500_Write(&reg, CC2500_CFG_REG_MDMCFG2, 1);
   
   reg = (uint8_t)CC2500_SETTING_MDMCFG1;
   CC2500_Write(&reg, CC2500_CFG_REG_MDMCFG1, 1);
   
   reg = (uint8_t)CC2500_SETTING_MDMCFG0;
   CC2500_Write(&reg, CC2500_CFG_REG_MDMCFG0, 1);
   
   reg = (uint8_t)CC2500_SETTING_CHANNR;
   CC2500_Write(&reg, CC2500_CFG_REG_CHANNR, 1);
   
   reg = (uint8_t)CC2500_SETTING_DEVIATN;
   CC2500_Write(&reg, CC2500_CFG_REG_DEVIATN, 1);
   
   reg = (uint8_t)CC2500_SETTING_FREND1;
   CC2500_Write(&reg, CC2500_CFG_REG_FRIEND1, 1);
   
   reg = (uint8_t)CC2500_SETTING_FREND0;
   CC2500_Write(&reg, CC2500_CFG_REG_FRIEND0, 1);
   
   reg = (uint8_t)CC2500_SETTING_MCSM0;
   CC2500_Write(&reg, CC2500_CFG_REG_MCSM0, 1);
   
	 reg = (uint8_t)0x33;
   CC2500_Write(&reg, CC2500_CFG_REG_MCSM1, 1);
	 
   reg = (uint8_t)CC2500_SETTING_FOCCFG;
   CC2500_Write(&reg, CC2500_CFG_REG_FOCCFG, 1);
   
   reg = (uint8_t)CC2500_SETTING_BSCFG;
   CC2500_Write(&reg, CC2500_CFG_REG_BSCFG, 1);
	 
   reg = (uint8_t)CC2500_SETTING_AGCCTRL2;
   CC2500_Write(&reg, CC2500_CFG_REG_AGCCTRL2, 1);
   
   reg = (uint8_t)CC2500_SETTING_AGCCTRL1;
   CC2500_Write(&reg, CC2500_CFG_REG_AGCCTRL1, 1);
   
   reg = (uint8_t)CC2500_SETTING_AGCCTRL0;
   CC2500_Write(&reg, CC2500_CFG_REG_AGCCTRL0, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSCAL3;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCAL3, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSCAL2;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCAL2, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSCAL1;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCAL1, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSCAL0;
   CC2500_Write(&reg, CC2500_CFG_REG_FSCAL0, 1);
   
   reg = (uint8_t)CC2500_SETTING_FSTEST;
   CC2500_Write(&reg, CC2500_CFG_REG_FSTEST, 1);
   
   reg = (uint8_t)CC2500_SETTING_TEST2;
   CC2500_Write(&reg, CC2500_CFG_REG_TEST2, 1);
   
   reg = (uint8_t)CC2500_SETTING_TEST1;
   CC2500_Write(&reg, CC2500_CFG_REG_TEST1, 1);
   
   reg = (uint8_t)CC2500_SETTING_TEST0;
   CC2500_Write(&reg, CC2500_CFG_REG_TEST0, 1);
   
   reg = (uint8_t)CC2500_SETTING_FIFOTHR;
   CC2500_Write(&reg, CC2500_CFG_REG_FIFOTHR, 1);
   
   reg = (uint8_t)CC2500_SETTING_IOCFG2;
   CC2500_Write(&reg, CC2500_CFG_REG_IOCFG2, 1);
   
   reg = (uint8_t)CC2500_SETTING_IOCFG0;
   CC2500_Write(&reg, CC2500_CFG_REG_IOCFG0, 1);
   
   reg = (uint8_t)CC2500_SETTING_PKTCTRL1;
   CC2500_Write(&reg, CC2500_CFG_REG_PKTCTRL1, 1);
   
   reg = (uint8_t)CC2500_SETTING_PKTCTRL0;
   CC2500_Write(&reg, CC2500_CFG_REG_PKTCTRL0, 1);
   
   reg = (uint8_t)CC2500_SETTING_ADDR;
   CC2500_Write(&reg, CC2500_CFG_REG_ADDR, 1);
   
   reg = (uint8_t)CC2500_SETTING_PKTLEN;
   CC2500_Write(&reg, CC2500_CFG_REG_PKTLEN, 1);
   
	 // flush the rx and tx buffer
	 CC2500_Strobe(CC2500_STROBE_SFTX, DUMMY_BYTE);
	 CC2500_Strobe(CC2500_STROBE_SFRX, DUMMY_BYTE);
}
Exemplo n.º 4
0
/**
 * @brief Configures wireless chip.
 * 
 * @notes	Configures configures the wireless chip settings by writing to the
 *				config registers.
 */
void CC2500_Init(void){
	uint8_t ctrl[16];
	//Configure the low level interface ----------------------------
	CC2500_LowLevel_Init();
	
	//TUESDAY
	ctrl[0] = SMARTRF_SETTING_IOCFG2;
	CC2500_Write(ctrl, IOCFG2, 1);
	CC2500_Write(ctrl, IOCFG2, 1);
	while(!CC2500_CheckRegisters(ctrl, IOCFG2, 1));
	
	ctrl[0] = SMARTRF_SETTING_IOCFG0D;
	ctrl[1] = SMARTRF_SETTING_FIFOTHR;
	CC2500_Write(ctrl, IOCFG0, 2);
	while(!CC2500_CheckRegisters(ctrl, IOCFG0, 2))CC2500_Write(ctrl, IOCFG0, 2);
	
	ctrl[0]  = SMARTRF_SETTING_PKTLEN;
	ctrl[1]  = SMARTRF_SETTING_PKTCTRL1;
	ctrl[2]  = SMARTRF_SETTING_PKTCTRL0;
	ctrl[3]  = SMARTRF_SETTING_ADDR;
	ctrl[4]  = SMARTRF_SETTING_CHANNR;
	ctrl[5]  = SMARTRF_SETTING_FSCTRL1;
	ctrl[6]  = SMARTRF_SETTING_FSCTRL0;
	ctrl[7]  = SMARTRF_SETTING_FREQ2;
	ctrl[8]  = SMARTRF_SETTING_FREQ1;
	ctrl[9]  = SMARTRF_SETTING_FREQ0;
	ctrl[10] = SMARTRF_SETTING_MDMCFG4;
	ctrl[11] = SMARTRF_SETTING_MDMCFG3;
	ctrl[12] = SMARTRF_SETTING_MDMCFG2;
	ctrl[13] = SMARTRF_SETTING_MDMCFG1;
	ctrl[14] = SMARTRF_SETTING_MDMCFG0;
	ctrl[15] = SMARTRF_SETTING_DEVIATN;
	CC2500_Write(ctrl, PKTLEN, 16);
	while(!CC2500_CheckRegisters(ctrl, PKTLEN, 16))CC2500_Write(ctrl, PKTLEN, 16);;
	
	ctrl[0] = SMARTRF_SETTING_MCSM1;
	ctrl[1] = SMARTRF_SETTING_MCSM0;
	ctrl[2] = SMARTRF_SETTING_FOCCFG;
	ctrl[3] = SMARTRF_SETTING_BSCFG;
	ctrl[4] = SMARTRF_SETTING_AGCCTRL2;
	ctrl[5] = SMARTRF_SETTING_AGCCTRL1;
	ctrl[6] = SMARTRF_SETTING_AGCCTRL0;
	CC2500_Write(ctrl, MCSM1, 7);
	while(!CC2500_CheckRegisters(ctrl, MCSM1, 7))CC2500_Write(ctrl, MCSM1, 7);;
	
	ctrl[0] = SMARTRF_SETTING_FREND1;
	ctrl[1] = SMARTRF_SETTING_FREND0;
	ctrl[2] = SMARTRF_SETTING_FSCAL3;
	ctrl[3] = SMARTRF_SETTING_FSCAL2;
	ctrl[4] = SMARTRF_SETTING_FSCAL1;
	ctrl[5] = SMARTRF_SETTING_FSCAL0;
	ctrl[6] = SMARTRF_SETTING_FSTEST;
	CC2500_Write(ctrl, FREND1, 7);
	while(!CC2500_CheckRegisters(ctrl, FREND1, 7))CC2500_Write(ctrl, FREND1, 7);;
	
	ctrl[0] = SMARTRF_SETTING_TEST2;
	ctrl[1] = SMARTRF_SETTING_TEST1;
	ctrl[2] = SMARTRF_SETTING_TEST0;
	CC2500_Write(ctrl, TEST2, 3);
	while(!CC2500_CheckRegisters(ctrl, TEST2, 3))CC2500_Write(ctrl, TEST2, 3);;
	
	ctrl[0] = SMARTRF_SETTING_SYNC1;
	ctrl[1] = SMARTRF_SETTING_SYNC0;
	CC2500_Write(ctrl, SYNC1, 2);

}
Exemplo n.º 5
0
/**
  * @brief  Set CC2500 Initialization.
  * @param  None
  * @retval None
  */
void CC2500_Init()
{
  /* Configure the low level interface ---------------------------------------*/
  CC2500_LowLevel_Init();
}