PWM no LPC1114

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

PWM no LPC1114

Mensagempor styg » 06 Ago 2010 17:59

Meu deus, tá um trabalho pra engrenar esse LPC1114.

Primeiro foi os rolos das jtags, dai agora comprei um ULINK2, belezinha, funciona perfeito.

Daí teve aquele lance de soldar o CI com pasta best e fuder com tudo, resolvido.

O PWM nao funciona nem a pau, na verdade nem configurando os pinos referentes aos MATs do timer (32b1), como IO consegui fazer piscar um led.

O básico tá funcionando, tem um led piscando em outra porta e um display 16x2 também, só que o pwm não rola.

Tem algum detalhe pra configurar o pwm, IOCON e GPIOs?

config pwm:
Código: Selecionar todos
LPC_SYSCON->SYSAHBCLKCTRL |=    0x400;  // ativa clk timer
LPC_IOCON->JTAG_TDO_PIO1_1 &=    ~0x07; // mascara
LPC_IOCON->JTAG_TDO_PIO1_1 |=    0x03;  // seleciona MAT
LPC_TMR32B1->MR3 = 100;   //
LPC_TMR32B1->MR0 = 10;      //
LPC_TMR32B1->MCR = 0x400;   // faz TC resetar a cada match de MR3
LPC_TMR32B1->EMR = 0x031;   // faz saida MAT0 alternar a cada match
LPC_TMR32B1->PWMC = 0x09;    // ativa modo pwm para MAT0 e 3
LPC_TMR32B1->TCR = 0x01;    // habilita contagem do timer



detalhe, no modo debug com o ulink2, quanda passa a instrução que altera o IOCON, na janela lá do keil os IOCONs ficam inalterados, já no simulador, eles são alterados... eu achava que o Keil alterava essas coisas em tempo real. :evil:
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor styg » 09 Ago 2010 15:01

esse pino já ta de sacanagem, configurado como saída pwm e medindo com o osciloscópio ele fica em 2V.. :(
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor proex » 09 Ago 2010 15:04

Presta atenção, tá prestando?

Se algum pino da interface PWM for compartilhado com algum pino do JTAG, e se vc estiver usando JTAG nessa hora, o PWM não vai funcionar.


.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor styg » 09 Ago 2010 15:57

proex escreveu:Presta atenção, tá prestando?.


q isso?? eahueahue


proex, o p1.1 nao tem função jtag, isso que assusta.
tu tens pwm funcionando no timer 32b1?
como tu ta configurando teu lpc, na unha mesmo ou usando aquela lib CMSIS?

tá F***, tava testando num lpc1114 agora passei pra placa do LPC-Link com LPC1343 e nada, mesmo problema no pwm, na simulação funciona tudo certo, no debug falha.

Imagem
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor proex » 10 Ago 2010 13:02

styg escreveu:esse pino já ta de sacanagem, configurado como saída pwm e medindo com o osciloscópio ele fica em 2V.. :(


Isso é sinal que tem resistor Pull Up habilitado. Quando configurar um pino como Saida, não se deve habilitar o resistor Pull Up ou Pull Down.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor styg » 10 Ago 2010 14:04

proex escreveu:Quando configurar um pino como Saida, não se deve habilitar o resistor Pull Up ou Pull Down.


essa é nova pra mim, sempre uso pull-ups em pinos de saída.


to fazendo uns testes aqui, configurei todos os pinos como saída e fico alternando eles.

a maioria dos pinos está chaveando, só os pinos que compartilham função de AD é que estão dando pau.
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor xultz » 10 Ago 2010 14:08

Não faz sentido ligar um pull-*.* numa saída, porque se você configura um pull up e deixa ele em nível baixo, vai ficar consumindo energia sem a menor razão pelo resistor.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor styg » 10 Ago 2010 14:10

putaquipariu, nao acredito...
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor proex » 10 Ago 2010 14:36

xultz escreveu:Não faz sentido ligar um pull-*.* numa saída, porque se você configura um pull up e deixa ele em nível baixo, vai ficar consumindo energia sem a menor razão pelo resistor.


Não é só isso. Quando configurado como saida, o pino é um circuito driver como qualquer outro encontrado em portas logicas discretas e não um circuito com coletor aberto que precise de um Pull Up.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor proex » 10 Ago 2010 14:37

styg escreveu:putaquipariu, nao acredito...


Já sei, o pino de saida PWM estava configurado com Entrada !!!!
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor styg » 10 Ago 2010 14:56

proex escreveu:
styg escreveu:putaquipariu, nao acredito...


Já sei, o pino de saida PWM estava configurado com Entrada !!!!



nao, isso tava tudo certo,

quando postei falando do AD, na hora pensei que o clock do AD podia ta ligada por default la no SYSAHBCLKCTRL, dai acabei o post e fui ver no user manual, mas nao era isso.

só que um pouco mais abaixo eu vi o bit 16 do SYSAHBCLKCTRL,
"IOCON - Enables clock for IO configuration block" e adivinha ? desabilitado por default,

a ta loco neh a nxp fez isso pra me fude mesmo pqp, como que uma P**** dessa vem desabilitada por padrão??? perdi umas 2 semanas nisso...

a princípio era isso mesmo, porque alterei esse bit e botei pra debugar passo-a-passo e os regs do IOCON começaram a mudar, até que fui alterar um pino usado pra JTAG e o debug parou e agora ta dando falha na conexão.

Como q vo reverter isso agora? Ok, revertido.
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 1 visitante

x