CLKOUT pin usage

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

CLKOUT pin usage

1,408件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by ozgozkan on Wed Mar 17 23:37:27 MST 2010
Hi everyone,

I have a lpcxpresso for LPC1114. I'm trying to get the clkout pin given me main clock signal. It looks pretty easy in user manual. There is almost nothing to adjust. But I couldn't do it. Let me explain what I have done;

[SIZE=2]  LPC_IOCON->PIO0_1 &= ~0x07;
  LPC_IOCON->PIO0_1 |= 0x01;
//  GPIOSetDir(0, 1, OUTPUT );
  LPC_SYSCON->CLKOUTCLKSEL = 0x00;
  LPC_SYSCON->CLKOUTUEN = 0x01;  /* Update clock */
  LPC_SYSCON->CLKOUTUEN = 0x00;  /* Toggle update register once */
  LPC_SYSCON->CLKOUTUEN = 0x01;
  while ( !(LPC_SYSCON->CLKOUTUEN & 0x01) );  /* Wait until updated*/[/SIZE]
[SIZE=2][/SIZE]
Where am I doing wrong? Is it something to do with LPCLink?

[SIZE=2][SIZE=3]Thanks.[/SIZE]


[/SIZE]

Original Attachment has been moved to: 1100198_assembly_trouble.zip

0 件の賞賛
返信
4 返答(返信)

1,167件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by gnotari on Thu Jul 01 08:34:34 MST 2010
Hi guys,

I testet it on LPC 1114 Xpressoboard. The following code worked fine:

[LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// [U]Init[/U][/COLOR][/SIZE][/COLOR][/SIZE][/LEFT]
[SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]SYSAHBCLKCTRL[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] |= (1<<6); [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Enable GPIO [U]clk[/U][/COLOR][/SIZE][/COLOR][/SIZE]
[SIZE=2]LPC_IOCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO0_1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] &= ~0x3F; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Select [U]clkout[/U] function for P0.1[/COLOR][/SIZE][/COLOR][/SIZE]

[LEFT][SIZE=2]LPC_IOCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]PIO0_1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] |= 0x01;[/SIZE][/LEFT]

[SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTCLKSEL[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0x03; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// IRC: 0x00 System [U]osci[/U]: 0x01 WTD: 0x02 Main [U]clk[/U]: 0x03[/COLOR][/SIZE][/COLOR][/SIZE]

[LEFT][SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTUEN[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0x01; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Update clock[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT]

[SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTUEN[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0x00; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Toggle update register once[/COLOR][/SIZE][/COLOR][/SIZE]

[SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTUEN[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 0x01;[/SIZE]

[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]while[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ( !(LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTUEN[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] & 0x01) ); [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Wait until updated[/COLOR][/SIZE][/COLOR][/SIZE]

[LEFT][SIZE=2]LPC_SYSCON->[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]CLKOUTDIV[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 1; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// Divided by 1[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT]


[LEFT]Have fun![/LEFT]

[LEFT]Greetings, [/LEFT]

[LEFT]Gianni[/LEFT]
0 件の賞賛
返信

1,167件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by ozgozkan on Thu Mar 25 06:33:14 MST 2010
Thanks. :)
0 件の賞賛
返信

1,167件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Luis Digital on Thu Mar 18 06:21:17 MST 2010
Hello,

clkconfig.h (void CLKOUT_Setup ( uint32_t clksrc )) has what you are looking for.

And you've given me an idea to solve a question. :-)

Thanks.
0 件の賞賛
返信

1,167件の閲覧回数
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Dr Whom on Thu Mar 18 06:20:26 MST 2010
I just tested this on an LPC1313

  LPC_SYSCON->CLKOUTCLKSEL = clksrc;    /* Select Main clock */
  LPC_SYSCON->CLKOUTUEN = 0x01;        /* Update clock */
  LPC_SYSCON->CLKOUTUEN = 0x00;        /* Toggle update register once */
  LPC_SYSCON->CLKOUTUEN = 0x01;
  while ( !(LPC_SYSCON->CLKOUTUEN & 0x01) );        /* Wait until updated */
  LPC_SYSCON->CLKOUTDIV = 1;            /* Divided by 1 */

I then do my IOconfig pins
    LPC_IOCON->PIO0_1  &= ~0x07;
    LPC_IOCON->PIO0_1  |= 0x01;
0 件の賞賛
返信