From: Satz Klauer <[email protected]>
To: [email protected] 
Sent: Sunday, November 3, 2013 4:46 AM
Subject: [beagleboard] Select CLK_M_OSC as source for DMTimer (instead of 32 
kHz clock)





Hi,


I'm trying to set up a fast timer interrupt using CLK_M_OSC as clock source for 
DMTimer2. For initialising this I'm calling DMTimer2ModuleClkConfig() from 
Starterware code which itself seems to select CLK_M_OSC as source for the timer 
clock using following code:

/* Select the clock source for the Timer2 instance. */
HWREG(SOC_CM_DPLL_REGS + CM_DPLL_CLKSEL_TIMER2_CLK) &=
~(CM_DPLL_CLKSEL_TIMER2_CLK_CLKSEL);

HWREG(SOC_CM_DPLL_REGS + CM_DPLL_CLKSEL_TIMER2_CLK) |=
CM_DPLL_CLKSEL_TIMER2_CLK_CLKSEL_CLK_M_OSC;

while((HWREG(SOC_CM_DPLL_REGS + CM_DPLL_CLKSEL_TIMER2_CLK) &
CM_DPLL_CLKSEL_TIMER2_CLK_CLKSEL) !=
CM_DPLL_CLKSEL_TIMER2_CLK_CLKSEL_CLK_M_OSC);


As fas as I understand there CLK_M_OSC is choosen.

Nevertheless the frequency/calling speed of my ISR tells me I'm still at 32 kHz 
clock, so CLK_M_OSC does not seem to be used. My whole initialisation code 
looks like this (and mainly comes from the Starterware examples):

DMTimerModeConfigure(SOC_DMTIMER_2_REGS, DMTIMER_AUTORLD_NOCMP_ENABLE);
DMTimerCounterSet(SOC_DMTIMER_2_REGS, 0xFFFFFFF9u);
DMTimerReloadSet(SOC_DMTIMER_2_REGS, 0xFFFFFFF9u);


DMTimer2ModuleClkConfig(); --> here CLK_M_OSC should be chosen...

IntAINTCInit();

IntRegister(SYS_INT_TINT2, isr_xy2_100);
IntPrioritySet(SYS_INT_TINT2, 0, AINTC_HOSTINT_ROUTE_IRQ);
IntSystemEnable(SYS_INT_TINT2);
IntMasterIRQEnable();


So...what could be wrong? Why isn't the fast clock source used?

Thanks!
-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.



clock divisor settings do you know how the oscillators work that feed the 
timer? its in TRM
 
If that was you who posted asking what the address of RAM was this is all in 
the TRM the technical reference manual
 
Dont know your background but if you do embedded software on complex SOC you 
will need to reed the Sitara tech reference manual (TRM)and look at the bit 
defs of each register for everything affected like clock dividers ete etc it 
sound like you took the refence code and are now asking why it doesnt work. Did 
it ever occurr that one bit in one register is nor correct or you found a 
limitation to the function you called. Are you thinking we have time to check 
all this for you?
 
Keep in  mind the more data you have to prove the code REALLY DOES NOT work. 
the more likely the E2E forum will verify it does not work they support 
starterware. One mistake I made on here was not understanding open source 
people dont like proprietary things like Code Composer did you notice this 
group focus is linux debugging by printfs and inspection or more application 
that run under a stable enviroment ie linux
 
    You can find help here for more linux related  issues but expecting someone 
to debug this starterware code on here..... try posting in the E2E forum as 
well and expect to have evidence the register values are correct if you show 
you have not read the data sheet and dont know whats involved NO ONE will help
 
Good luck

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to