Esempio n. 1
0
int main(void) {
    cpuClockInit(); /* CPU Clock is now 104 MHz */
    ssp_clock_init();
    systickInit();

    SETUPgout(EN_VDD);
    SETUPgout(MIXER_EN);
    SETUPgout(MIC_AMP_DIS);

    SETUPgout(LED1);
    SETUPgout(LED2);
    SETUPgout(LED3);
    SETUPgout(LED4);

    inputInit();
    lcdInit();
    lcdFill(0xff);
    lcdPrintln("Flash-App");
    lcdNl();
    lcdDisplay();

    cpld_flash();
    cpu_clock_set(50);
    full_msc();
    while(1) {
	    delayNop(2000000);
	    ON(LED4);
	    delayNop(2000000);
	    OFF(LED4);
    }
    return 0;
}
Esempio n. 2
0
//# MENU cpld
void cpld_flash(){
	SETUPgout(EN_1V8);
	ON(EN_1V8);
	delayNop(1000000); /* wait until cpld boot */
	cpu_clock_set(204);

	lcdPrintln("Program CPLD");
	bytes=0;
	lcdPrint(IntToStr(bytes,5,F_LONG)); lcdPrint(" bytes..."); lcdNl();

	#define WAIT_LOOP_DELAY (6000000)
	#define ALL_LEDS  (PIN_LED1|PIN_LED2|PIN_LED3)
	int i;
	int error;

	refill_cpld_buffer_fs();

	error = cpld_jtag_program(sizeof(cpld_xsvf_buffer),
				  cpld_xsvf_buffer,
				  refill_cpld_buffer_fs);
	if(error){
	    lcdPrintln("Programming failed!");
	    lcdPrintln(IntToStr(error,5,0));
	    lcdDisplay();
	    /* LED3 (Red) steady on error */
	    ON(LED4);
	    while (1);
	};

	lcdPrintln("Success.");
	lcdDisplay();
	OFF(EN_1V8);
};
Esempio n. 3
0
//# MENU cpld
void cpld_menu(){
	getInputWaitRelease();
	SETUPgout(EN_1V8);
	ON(EN_1V8);
	delayNop(1000000); /* wait until cpld boot */
	cpu_clock_set(204);

	lcdClear();
	lcdPrintln("CPLD");
	lcdNl();
	lcdNl();
	bytes=0;
	lcdPrint(IntToStr(bytes,5,F_LONG));
	lcdPrint(" bytes...");
	lcdNl();

	#define WAIT_LOOP_DELAY (6000000)
	#define ALL_LEDS  (PIN_LED1|PIN_LED2|PIN_LED3)
	int i;
	int error;
	FRESULT res;

	res=f_open(&file, "cpld.xsv", FA_OPEN_EXISTING|FA_READ);
	if(res!=FR_OK){
	    lcdPrintln("FOPEN ERROR");
	    lcdPrintln(f_get_rc_string(res));
	    lcdDisplay();
	    getInputWait();
	    return;
	};
	refill_cpld_buffer_fs();

	error = cpld_jtag_program(sizeof(cpld_xsvf_buffer),
				  cpld_xsvf_buffer,
				  refill_cpld_buffer_fs);
	if(error){
	    lcdPrintln("Programming failed!");
	    lcdPrintln(IntToStr(error,5,0));
	    lcdDisplay();
	    /* LED3 (Red) steady on error */
	    ON(LED3);
	    while (1);
	};


	lcdPrintln("Success.");
	lcdDisplay();

	for (res=0;res<10;res++){
	    /* blink LED1, LED2, and LED3 on success */
	    TOGGLE(LED1);
	    TOGGLE(LED2);
	    TOGGLE(LED3);
	    for (i = 0; i < WAIT_LOOP_DELAY; i++)  /* Wait a bit. */
		__asm__("nop");
	};
	/* XXX: Maybe power toggle needed to start CPLD? */
	OFF(EN_1V8);
};
Esempio n. 4
0
void doLCD(){

	uint8_t pwm=50;
	lcdClear(0xff);
	lcdPrintln("LCD-Test v1");
	lcdDisplay(); 
// #define LCD_BL_EN   P1_1,  SCU_CONF_FUNCTION1, GPIO0, GPIOPIN8 // LCD Backlight: PWM

	while(1){

		OFF(LCD_BL_EN);
		delayNop(10000+pwm*100);
		ON(LCD_BL_EN);
		delayNop(10000-pwm*100);

		switch(getInput()){
			case BTN_NONE:
				continue;
			case BTN_UP:
				break;
			case BTN_DOWN:
				break;
			case BTN_LEFT:
				pwm--;
				break;
			case BTN_RIGHT:
				pwm++;
				break;
			case BTN_ENTER:
				return;
				break;
		};
		lcdClear(0xff);
		lcdPrintln("LCD-Test v1");
		lcdPrintln("");
		lcdPrint("pwm=");lcdPrint(IntToStr(pwm,3,0));lcdNl();
		lcdDisplay(); 
	};
};
Esempio n. 5
0
void doFeld(){
	char tu=0,td=0,tl=0,tr=0;
	char tuN=0,tdN=0,tlN=0,trN=0;
	char page=0;
	char tu2=0,td2=0,td2N=0,tl2=0,tr2=0;
	uint16_t sf=3500;
	char tu3=0,td3=0,tl3=0,tr3=0;

	int ctr=0;
	/* Blink LED1 on the board. */

	while (1) 
	{


		lcdClear(0xff);
		lcdPrintln("Feld-Test v11");
		lcdPrintln("");
		lcdPrint("Page ");lcdPrintln(IntToStr(page,2,0));
		if (page==0){
			tu=GET(BY_MIX); tuN=GET(BY_MIX_N);
			lcdPrint(IntToStr(tu,1,F_HEX)); lcdPrint(IntToStr(tuN,1,F_HEX)); lcdPrintln(" Up BY_MIX/_N");
			td=GET(BY_AMP); tdN=GET(BY_AMP_N);
			lcdPrint(IntToStr(td,1,F_HEX)); lcdPrint(IntToStr(tdN,1,F_HEX)); lcdPrintln(" Dn BY_AMP/_N");
			tl=GET(TX_RX);tlN=GET(TX_RX_N);
			lcdPrint(IntToStr(tl,1,F_HEX)); lcdPrint(IntToStr(tlN,1,F_HEX)); lcdPrintln(" Lt TX_RX/_N");
			tr=GET(LOW_HIGH_FILT); trN=GET(LOW_HIGH_FILT_N);
			lcdPrint(IntToStr(tr,1,F_HEX)); lcdPrint(IntToStr(trN,1,F_HEX)); lcdPrintln(" Rt LOW_HIGH_FILT/_N");
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					tu=1-tu;
					if (tu){
						OFF(BY_MIX_N);
						ON(BY_MIX);
					}else{
						OFF(BY_MIX);
						ON(BY_MIX_N);
					};
					break;
				case BTN_DOWN:
					td=1-td;
					if (td){
						OFF(BY_AMP_N);
						ON(BY_AMP);
					}else{
						OFF(BY_AMP);
						ON(BY_AMP_N);
					};
					break;
				case BTN_LEFT:
					tl=1-tl;
					if (tl){
						OFF(TX_RX_N);
						ON(TX_RX);
					}else{
						OFF(TX_RX);
						ON(TX_RX_N);
					};
					break;
				case BTN_RIGHT:
					tr=1-tr;
					if (tr){
						OFF(LOW_HIGH_FILT_N);
						ON(LOW_HIGH_FILT);
					}else{
						OFF(LOW_HIGH_FILT);
						ON(LOW_HIGH_FILT_N);
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};
		}else if (page==1){
			lcdPrint("  "); lcdPrintln(" Up   ");
			td2=GET(RX_LNA);td2N=GET(TX_AMP);
			lcdPrint(IntToStr(td2,1,F_HEX)); lcdPrint(IntToStr(td2N,1,F_HEX)); lcdPrintln(" Dn RX/TX");
			lcdPrint(IntToStr(tl2,1,F_HEX)); lcdPrint(" ");                    lcdPrintln(" Lt MIXER_EN");
			lcdPrint(IntToStr(tr2,2,F_HEX)); lcdPrintln(" Rt SI-clkdis");
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					tu2=1-tu2;
					if (tu2){
						;
					}else{
						;
					};
					break;
				case BTN_DOWN:
					td2=td2+2*td2N;
					td2++;
					td2=td2%3;
					switch (td2){
						case(0):
							OFF(RX_LNA);
							OFF(TX_AMP);
							break;
						case(1):
							ON(RX_LNA);
							OFF(TX_AMP);
							break;
						case(2):
							OFF(RX_LNA);
							ON(TX_AMP);
							break;
					};
					break;
				case BTN_LEFT:
					tl2=1-tl2;
					if (tl2){
						ON(MIXER_EN);
					}else{
						OFF(MIXER_EN);
					};
					break;
				case BTN_RIGHT:
					tr2=1-tr2;
					if (tr2){
						si5351c_power_down_all_clocks();
					}else{
						si5351c_set_clock_source(PLL_SOURCE_XTAL);
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};

		}else if (page==2){
			lcdPrint("SF: ");lcdPrint(IntToStr(sf,4,F_ZEROS)); lcdPrintln(" MHz");
			tl3=GET(CE_VCO);
			lcdPrint(IntToStr(tl3,1,F_HEX)); lcdPrint(" "); lcdPrintln(" Lt CE_VCO");
			lcdPrint("  "); lcdPrintln(" Rt ");
			lcdPrintln("Enter for next page");
			lcdDisplay(); 
			switch(getInput()){
				case BTN_UP:
					sf+=100;
					mixer_set_frequency(sf);
					break;
				case BTN_DOWN:
					sf-=100;
					mixer_set_frequency(sf);
					break;
				case BTN_LEFT:
					tl3=1-tl3;
					if (tl3){
						ON(CE_VCO);
						mixer_setup();
						mixer_set_frequency(sf);
					}else{
						OFF(CE_VCO);
					};
					break;
				case BTN_RIGHT:
					tr3=1-tr3;
					if (tr3){
						;
					}else{
						;
					};
					break;
				case BTN_ENTER:
					page++;
					break;
			};

		};
		if (page>2){page=0;}

		ON(LED1);
		delayNop(200000);
		OFF(LED1);
		delayNop(200000);

		ctr++;
		lcdNl();
		lcdPrint(IntToStr(ctr,4,F_HEX));
	}
};
Esempio n. 6
0
void doSpeed(){
	SETUPgout(LCD_BL_EN);
	SETUPgout(EN_1V8);
	SETUPgout(LED4);
	int mhz=102;
	while(1){
		TOGGLE(LED1);
		lcdClear(0xff);
		lcdPrint("speed: "); lcdPrint(IntToStr(mhz,3,0));lcdNl();
		lcdDisplay(); 
		switch(getInput()){
			case BTN_UP:
//				mhz=204;
//				cpu_clock_set(mhz);
#define PD0_SLEEP0_HW_ENA MMIO32(0x40042000)
#define PD0_SLEEP0_MODE   MMIO32(0x4004201C)

		PD0_SLEEP0_HW_ENA = 1; 
		PD0_SLEEP0_MODE = 0x003000AA;
		SCB_SCR|=SCB_SCR_SLEEPDEEP;

		ON(LED1);
		CGU_BASE_M4_CLK = (CGU_BASE_M4_CLK_CLK_SEL(CGU_SRC_IRC) | CGU_BASE_M4_CLK_AUTOBLOCK(1));
		CGU_PLL1_CTRL= CGU_PLL1_CTRL_PD(1);
		CGU_PLL0USB_CTRL= CGU_PLL1_CTRL_PD(1);
		CGU_PLL0AUDIO_CTRL= CGU_PLL1_CTRL_PD(1);

		CGU_XTAL_OSC_CTRL &= ~(CGU_XTAL_OSC_CTRL_ENABLE_MASK);



#define __WFI() __asm__("wfi")
		while(1){
			TOGGLE(LED1);
			__WFI();
		};
				break;
			case BTN_DOWN:
				mhz=12;
				cpu_clock_set(mhz);
				break;
			case BTN_LEFT:
				while(1){
					cpu_clock_set(102);
					TOGGLE(LED1);
					delayNop(1000);
					cpu_clock_set(12);
					TOGGLE(LED1);
					delayNop(1000);
				};
				break;
			case BTN_RIGHT:
				TOGGLE(LCD_BL_EN);
						OFF(BY_MIX_N);
						OFF(BY_MIX);
						OFF(BY_AMP_N);
						OFF(BY_AMP);
						OFF(TX_RX_N);
						OFF(TX_RX);
						OFF(LOW_HIGH_FILT_N);
						OFF(LOW_HIGH_FILT);
							OFF(TX_AMP);
							OFF(RX_LNA);
						OFF(MIXER_EN);
						OFF(CE_VCO);
//				cpu_clock_set(mhz);
				break;
			case BTN_ENTER:

//			turnoff(&CCU1_CLK_APB3_BUS_CFG);
				turnoff(&CCU1_CLK_APB3_I2C1_CFG);
				turnoff(&CCU1_CLK_APB3_DAC_CFG);
				turnoff(&CCU1_CLK_APB3_ADC0_CFG);
				turnoff(&CCU1_CLK_APB3_ADC1_CFG);
				turnoff(&CCU1_CLK_APB3_CAN0_CFG);
//			turnoff(&CCU1_CLK_APB1_BUS_CFG);
				turnoff(&CCU1_CLK_APB1_MOTOCONPWM_CFG);
				turnoff(&CCU1_CLK_APB1_I2C0_CFG);
				turnoff(&CCU1_CLK_APB1_I2S_CFG);
				turnoff(&CCU1_CLK_APB1_CAN1_CFG);
				turnoff(&CCU1_CLK_SPIFI_CFG);
//				turnoff(&CCU1_CLK_M4_BUS_CFG);
				turnoff(&CCU1_CLK_M4_SPIFI_CFG);
//				turnoff(&CCU1_CLK_M4_GPIO_CFG);
				turnoff(&CCU1_CLK_M4_LCD_CFG);
				turnoff(&CCU1_CLK_M4_ETHERNET_CFG);
				turnoff(&CCU1_CLK_M4_USB0_CFG);
				turnoff(&CCU1_CLK_M4_EMC_CFG);
				turnoff(&CCU1_CLK_M4_SDIO_CFG);
				turnoff(&CCU1_CLK_M4_DMA_CFG);
//				turnoff(&CCU1_CLK_M4_M4CORE_CFG);
				turnoff(&CCU1_CLK_M4_SCT_CFG);
				turnoff(&CCU1_CLK_M4_USB1_CFG);
				turnoff(&CCU1_CLK_M4_EMCDIV_CFG);
				turnoff(&CCU1_CLK_M4_M0APP_CFG);
				turnoff(&CCU1_CLK_M4_VADC_CFG);
				turnoff(&CCU1_CLK_M4_WWDT_CFG);
				turnoff(&CCU1_CLK_M4_USART0_CFG);
				turnoff(&CCU1_CLK_M4_UART1_CFG);
				turnoff(&CCU1_CLK_M4_SSP0_CFG);
				turnoff(&CCU1_CLK_M4_TIMER0_CFG);
				turnoff(&CCU1_CLK_M4_TIMER1_CFG);
//				turnoff(&CCU1_CLK_M4_SCU_CFG);
//				turnoff(&CCU1_CLK_M4_CREG_CFG);
				turnoff(&CCU1_CLK_M4_RITIMER_CFG);
				turnoff(&CCU1_CLK_M4_USART2_CFG);
				turnoff(&CCU1_CLK_M4_USART3_CFG);
				turnoff(&CCU1_CLK_M4_TIMER2_CFG);
				turnoff(&CCU1_CLK_M4_TIMER3_CFG);
//			turnoff(&CCU1_CLK_M4_SSP1_CFG);
				turnoff(&CCU1_CLK_M4_QEI_CFG);
//				turnoff(&CCU1_CLK_PERIPH_BUS_CFG);
				turnoff(&CCU1_CLK_PERIPH_CORE_CFG);
				turnoff(&CCU1_CLK_PERIPH_SGPIO_CFG);
				turnoff(&CCU1_CLK_USB0_CFG);
				turnoff(&CCU1_CLK_USB1_CFG);
//			turnoff(&CCU1_CLK_SPI_CFG);
				turnoff(&CCU1_CLK_VADC_CFG);
				turnoff(&CCU2_CLK_APLL_CFG);
				turnoff(&CCU2_CLK_APB2_USART3_CFG);
				turnoff(&CCU2_CLK_APB2_USART2_CFG);
				turnoff(&CCU2_CLK_APB0_UART1_CFG);
				turnoff(&CCU2_CLK_APB0_USART0_CFG);
//			turnoff(&CCU2_CLK_APB2_SSP1_CFG);
				turnoff(&CCU2_CLK_APB0_SSP0_CFG);
				turnoff(&CCU2_CLK_SDIO_CFG);

// clkoff(& CGU_BASE_SAFE_CLK);
clkoff(& CGU_BASE_USB0_CLK);
 clkoff(& CGU_BASE_PERIPH_CLK);
clkoff(& CGU_BASE_USB1_CLK);
// clkoff(& CGU_BASE_M4_CLK);
clkoff(& CGU_BASE_SPIFI_CLK);
clkoff(& CGU_BASE_SPI_CLK);
clkoff(& CGU_BASE_PHY_RX_CLK);
clkoff(& CGU_BASE_PHY_TX_CLK);
 clkoff(& CGU_BASE_APB1_CLK);
 clkoff(& CGU_BASE_APB3_CLK);
clkoff(& CGU_BASE_LCD_CLK);
clkoff(& CGU_BASE_VADC_CLK);
clkoff(& CGU_BASE_SDIO_CLK);
clkoff(& CGU_BASE_SSP0_CLK);
 clkoff(& CGU_BASE_SSP1_CLK);
clkoff(& CGU_BASE_UART0_CLK);
clkoff(& CGU_BASE_UART1_CLK);
clkoff(& CGU_BASE_UART2_CLK);
clkoff(& CGU_BASE_UART3_CLK);
clkoff(& CGU_BASE_AUDIO_CLK);
 clkoff(& CGU_BASE_CGU_OUT0_CLK);
 clkoff(& CGU_BASE_CGU_OUT1_CLK);

//				return;
				break;
		};
	};
};