IRQ - LCP2138

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

IRQ - LCP2138

Mensagempor microeletronica » 06 Dez 2006 20:09

Ola a todos.
Estou utilizando pra projetos um microcontrolador ARM7 da Philips da familia LPC2XXX.
Gostaria de escrever este post pra comentar que estou achando muito confuso e nao pratico alguns registradores deste microcontrolador.

Sou familiarizado com microcontroladores da Microchip, Atmel, Motorola, Texas, e pra os micros de 8 bits que utilizei as interrupcoes eram individuais, diferente do que acontece por exemplo com as interrupcoes do micro da Philips.
Uma interrupcao para um periferico pode ser por varios motivos, dependendo de seu flag de interrupcao ativo ou nao.

Isso faz com que tenhamos que tratar as interrupcoes dentro do Interrupt Service Routine por software, o que nao acho legal.
O que os senhores da lista acham?

Um exemplo pratico é do PWM, que se programo seis pinos independentes de PWM, com 6 duty cycles diferentes, tenho que me conformar com o tempo de 40 ciclos (ou algo parecido, caso seja mapeado como IRQ, dependendo claro do compilador utilizado...) de atendimento da rotina de interrupcao.

Eu sei que a possibilidade de programar diferentes tarefas, STOP, INT, RESET pros 7 diferentes "timers" do PWM dah uma versatilidade fenomenal ao chip.
Gostaria de saber a opiniao do pessoal que utiliza este micro.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor gibim » 07 Dez 2006 11:56

Realmente o ARM tem uma estrutura RISC mais avançada e necessita de de tratamento especial para as interrupções.

Talvez este tópico lhe ajude

http://www.asm51.eng.br/phpbb/viewtopic ... 5&start=15
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Mensagempor Viktor » 07 Dez 2006 19:41

Realmente o controlador de interrupção dos LPC2xxx não é muito bem bolado. Isto melhorou nos ultimos da NXP. Nos ARM da ST já é bem melhor. Outra opção são os tipo Cortex-M3. Nestes o sistema de interrupção é bem versátil e avançada. Estou trabalhando com os chips da Luminary e estou muito satisfeito com eles.
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor microeletronica » 07 Dez 2006 20:30

Legal - Vou comparar o LPC2148 com o 2468 -
Principalmente sobre intyerrupcoes...

E escrevo aqui neste espaco as minhas impressoes.
Obrigado.
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor jeanfernandes » 07 Dez 2006 21:52

O fato da interrupção trabalhar na forma de vetores é igual a filosofia de certos mcus de "antigamente".....nao difere muito nao.

A questão é a ordem com que se usa os vetores...de certa forma estabele prioridades....o problema das interrupcoes está no tratamento dos registradores (de certa forma tem que salvar o contexto de alguns regs.)

Hoje trabalho com um sistema com 5 fontes de interrupcao e nao vi nada demais nisso. Tem coisa pior pra resolver (tal do data storage ehehehehe que ainda está pendente).
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor tpfslima » 07 Dez 2006 22:02

mmm - Entendo...
Thiago P. F. S. Lima
Engenheiro Eletronico
São Paulo - SP
tpfslima
Bit
 
Mensagens: 40
Registrado em: 01 Dez 2006 09:01

Mensagempor microeletronica » 07 Dez 2006 22:03

Sim, sobre o que vc disse de precisar salvar o contexto de alguns registradores, faço isso pra timers, capture, pwm por exemplo...

Achei complicado, pois deixa muita brecha pro programador errar...
Com interrupocoes mais especificas nao corriamos tanto estes riscos...
Nao haviam tantas possibilidades abertas quando se habilitava uma int. em especifico.

Trabalho com 6 fontes de interrupcao, achei complicado pois errei muito ate funcionar redondo.

Como assim data storage?
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor jeanfernandes » 08 Dez 2006 04:37

Veja bem

Eu parto do principio que voce primeiro testou e entendeu o sistema de interrupcoes para só depois por numa aplicação "na vera".
Eu tentarei em poucas horas por algo útil aqui, pois no momento não tá dando.

Acho eu, não é nada pessoal, mas mistificaram demais o ARM.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor lrfad2 » 08 Dez 2006 10:02

Jean....
não sei se é misticismo não... o LPC2138, que é o único ARM que mexi ate agora, dá uns paus muito loucos...rs... (pode ser o compilador da IAR tb.)
Tem muitos detalhes para serem configurados, que dá muita brecha para erro do programador. Eu sei que existem softwares de ajuda (MakeApp por exemplo), mas o problema é que vc tem que saber o que está acontecendo no core, e esses sw tiram as coisas da "cartola"...
Bom... mas com tempo a gente aprende.
Abraços
lrfad2
Avatar do usuário
lrfad2
Byte
 
Mensagens: 152
Registrado em: 19 Out 2006 17:35
Localização: São Paulo

Mensagempor Viktor » 08 Dez 2006 10:42

Deve ser o IAR. Uso o Keil MDK3.03G e funciona uma beleza com o LPC2148. Atualmente estou usando o LM3S811 da Luminary e tudo está funcionando normalmente quando uso nível de otimização 00. Aumentando este valor aparecem alguns problemas. Este fenômeno só observei no Cortex até agora.
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor jeanfernandes » 09 Dez 2006 05:47

Gente não sei se ainda está disponível no site da Philips ou NXP,....mas tem umas versões do LPC (acho que de lote mesmo) que os caras andaram atualizando para tirar umas xits ae....É tipo umas erratas.

Eu já procurei pra dedéu mas não encontrei.

IRFAD2, desculpe insistir na questão novamente, e vamos deixar 4 ciclos de clock da modéstia de lado. Veja :

Antigamente eu pegava um mcu qq q fosse e piscava um led na primeira meia hora, pois querendo ou nao tudo calça 40. O problema do ARM é basicamente o seguinte, quem está acostumando com PIC não sente aquele lance la de ter que por o pino pra fora ou pra dentro ehehheeh, eu usuário de 8051 penei um poukinho, mas já foi.

Desse modo, pra dar "boot" no coitado e piscar o bendito led, tive que realmente dar a mão do guest a palmatória e ver o lance lá desde o clock, até a questão da interrupção pra ver o led piscar a 1 Hz (sem o bendito while(1) com um "for" dentro pra dar um tempo).

É chato é, mas qual foi minha solução....pegar item a item e fazer caminhões de lixo, ou seja programinhas idiotas, so pra ver o efeito...dai ia comparar com o Dataxit pra ver se era aquilo mesmo. Dá um trabalhinho....mas nada que um domingo inteiro de pra resolver....

Mesmo sendo um usuário mais antigo das pastilhas eu tive que parar realmente, mas enfim vi que é apenas uma forma nova de ver as coisas o resto continua do mesmo jeito...vamos dizer assim, passando item a item os perifericos internos, a pior coisa eh juntar tudo....ai sim

voce vai ver os pulos de gatos pra gerenciar as interrupcoes, que acho que é a principal fonte de problemas no trem todo, nao um PROBLEMA, mas um Problema, mas daqui uns dias quando todo mundo começar a zuar já era....

Bom, já se passaram 4 ciclos de clock.....

Voltando para a brecha do programador...eu sempre comparo aquela situacao do cara que esta la no meio da avenida a 30 por hora, dentro de um carro de auto escola, quando eu passo a mais de 100...as vezes ele ta certo e eu totalmente errado... enfim CRIE sua base de configuracao (seja ela em qq linguagem) e deixe bem comentada, assim voce pode ate esquecer dela que nao vai ter dificuldades....

Agora nao exagere, colocando ate o CLOCK como define ehehehehehe como eu vi por ae... eh legal mas deixa o trossim doido demais pra conta....

Bom, pena que estou entrando de ferias....to querendo ficar longe do teclado uns dias....

Mas se nao estou enganado eu pus uma ferramenta aqui....que fiz pq enchi o saco com os erros da philips....no datasheet

http://br.geocities.com/jeanfernandes_eng/baudcalc.zip


Renie, faz um favor, antes que o Yahoo detone mais essa ferramenta, baixar ela ae e poe no teu site....pelo menos alguem vai ver....e usar ...valeu amore....


Veja ae...as vezes dá uma piração e faço essas coisas ae....
num servem muito pra alguns, mas pra mim é papo 10...ehehehehh

Fuiz...
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor Renie » 10 Dez 2006 08:14

Jean,

Já copiei o arquivo, durante a semana disponibilizo no meu site.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor microeletronica » 10 Dez 2006 20:56

Sim, concordo Jean.

Acho o poder dos micros da Philips, de 32 Bits, da Famnilia LPC2XXX espetacular. Existem claro erratas Sheets que descrevem os problemas de hardware dos componentes...

Por exemplo, pro CAN, existem varios erros da propria pastilha, pra algumas linhas...

Mas a Philips vem evoluindo e lancando cada chip melhor quer o outro.
:)

Mas ainda assim achei complicado o atendimento de interrupcao, onde uma interrupcao pode ser originada por uma pá de evento diferente, relativo a um mesmo periférico...

E isso que deixa brecha pra vc errar muito facilmente...
Ou virar um ratão;.;;; Quer é o caso!
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor microeletronica » 10 Dez 2006 21:22

lrfad2, de uma olhada no lpc2468.
esse é lancamento;...
microeletronica
Byte
 
Mensagens: 158
Registrado em: 05 Dez 2006 18:22

Mensagempor lrfad2 » 13 Dez 2006 13:43

microeletronica,
A uma semana atrás eu fui num seminário da Philips, que falava sobre o lpc2368. (é bem parecido).... eu achei super-fudido, mas é muito mais do que eu preciso. Se não me engano só tem no encapsulamento BGA... o QFN64 (lpc2138) já tô todo enrolado para soldar e retirar...

Alias estou procurando um fabricante de placas, que tenha competência para fazer com esse tipo de encapsulamento e uma recomendação de qual estação de retrabalho devo comprar. (melhor custo-benefício). Estou em SP

Abraço a todos
Avatar do usuário
lrfad2
Byte
 
Mensagens: 152
Registrado em: 19 Out 2006 17:35
Localização: São Paulo

Próximo

Voltar para ARM

Quem está online

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

x