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.