2007-05-29 07:21 AM
STR750 Clock Frequency and Flash Burst Mode
2007-05-02 03:48 AM
2007-05-04 04:07 AM
Hello everybody,
can anybody confirm that the STR750 is able to run at 24 or 32 MHz *WITHOUT* Flash Burst Mode enabled? Thanks! jens2007-05-06 03:39 AM
Hello Hl,
By default (at reset) the STR75x series are configured with the Burst bit disabled unlike the STR71x ones. So If you have a system clock > 32MHz you have to enable this bit before selecting a HCLK clock > 32MHz of course. I hope this can help you ;) Br rave2007-05-06 08:15 PM
Hi Rave,
good point, I hadn't noticed that reset-behaviour is different from STR710. But I still have the problem, that the processor will not work even with HCLCK *below* 32 MHz, (12, 16, 24 MHz) *unless* the burst bit enabled. Is this expected behaviour? Should we blame the board (Keil Eval-board)? Is our startup.s faulty? We have so far been unable to trace the problem down to anything else but ''the STR750 just doesn't work without the burst bit enabled'', but we'd be happy to be proved wrong... Thanks! jens2007-05-06 11:14 PM
Hi hl,
I just tried with my board (Keil MCBSTR750). It has a 4Mhz external oszillator. I configure the PLL on C-Level, using the API from ST (not in the assembler code). So far I used FlashBurst mode, because I am running at 60Mhz. For you I tried to disable flash-burst mode, and divided HCLK by two to get 30Mhz (at least I expect this HCLK is used for accessing the flash). I did no detailed testing (I have no time, sorry). But seems, that didn't work very well -- the instruction pointer is somewhere, but not pointing to my program code. By dividing by 4, the code seems to be executed -- at least the instruction pointer points to my program code after stopping debugger. Maybe exactly 30Mhz causes already problems and not 32 Mhz ? Here is my C-Code startup. /* in debug mode, the ST library needs to be initialized */ /* by calling ''debug()'' function */ #ifdef DEBUG debug(); #endif /* MRCC system reset */ MRCC_DeInit(); /****************************************************************************/ /* setup of PLL, pheripheral clock frequency and flash burst mode */ /****************************************************************************/ /* Wait for OSC4M start-up */ t_error = MRCC_WaitForOSC4MStartUp(); if(t_error == SUCCESS) { /* Set HCLK to 60MHz */ // MRCC_HCLKConfig(MRCC_CKSYS_Div1); MRCC_HCLKConfig(MRCC_CKSYS_Div2); ////// TEST (crash) // MRCC_HCLKConfig(MRCC_CKSYS_Div4); ////// TEST (seems to work) /* Set CKTIM to 60MHz */ MRCC_CKTIMConfig(MRCC_HCLK_Div2); /* Set PCLK to 30MHz */ MRCC_PCLKConfig(MRCC_CKTIM_Div1); /* Enable Flash Burst mode */ // CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable); //////test /* Set CK_SYS to 60 MHz */ MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); } Maybe you can comment out the PLL startup in assembler and perform some tests with the C-PLL startup routine. Hope this helps. Regards Andreas2007-05-07 04:06 AM
I'm using the Hitex STR750 board. This board has an 8-Mhz crystal.
He is my clock start-up code static void Init_SystemClk(void) { u16 wDelayCnt; /* Set the system clock to 32 MHz, using external 8 MHz quartz crystal ** Select Quartz oscillator as PRCCU clock input. */ CMU_StructInit(&CMU_InitStructure); CMU_InitStructure.CMU_CKSEL0 = CMU_CKSEL0_CKOSC; CMU_Init(&CMU_InitStructure); /* Set MCLK clock to 32 MHz */ PRCCU_InitStructure.PRCCU_DIV2 = ENABLE; PRCCU_InitStructure.PRCCU_MCLKSRC_SRC = PRCCU_MCLKSRC_PLL; PRCCU_InitStructure.PRCCU_PLLDIV = 2; PRCCU_InitStructure.PRCCU_PLLMUL = PRCCU_PLLMUL_16; PRCCU_Init(&PRCCU_InitStructure); /* Spin until PPL stablizes */ for (wDelayCnt = 0; wDelayCnt < 0x1000; wDelayCnt++) ; }2007-05-07 07:53 AM
Hello hl, Andi_99,
It seems that you have Keil boards with some earlier STR75x versions or something similar, I suggest you to get contact with ST Online support in Europe as you are from Germany to help you on this issues so that they can help you. You can also Order some free STR75x samples from ST website and if you are able to rework your keil evaluation board in order to see if the pb could be reproduced systemically or not. :-? BR rave2007-05-08 04:30 AM
Hello Rave, Andi, javi,
thanks for your hints! Andi, thanks a lot for confirming that you program also does not run. We were considering the possibility of having gone insane, since everybody else seemed to be able to work sucessfully with the chip :) At 15 MHz our program also runs for some time (from several 100 ms to several seconds) before crasheing, at 30Mhz it crashes almost immediately. javi, We have not yet tested the C-routines for setting the PLL, but will do so soon. Rave, we have two boards and have changed the CPU on one of them. The chips we use at the moment have the marking: STR750FV2T6 Z 22 024 VG MLT 22 630 and STR750FV2T6 Z 22 0Q9 VG MLT 22 649 can this be the problem? We have ordered samples a few weeks ago for exchanging the chip, hoping this would solve the problem. Did we get old chips, or should these datecodes work?2007-05-22 06:23 AM
Hello everybody,
just a brief update: We still haven't solved the issue, but meanwhile an ST representative (Micro Support) has replied to our support request (dated April 25....) confirming that he can (at least in part) reproduce our problem and will get back to us soon. I'll report back if anything groundbreaking should turn up (if it is anything other than us doing something wrong in a stupid way :) thanks for the help! jens