Pull-up no LPC213x

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Pull-up no LPC213x

Mensagempor styg » 09 Out 2008 17:10

Ola pessoal, esse texto foi tirado do dxit do lpc213x, em relação aos gpios, só o P0.31 e P1.16..31 são do tipo 6, com pull-up interno.
E só os 4 pinos da i2c0 e i2c1 são do tipo 3, coletor aberto.

E para usar o resto com saida, preciso de pull-up ou nao, nao ficou bem claro pra mim isso.
Aparentemente precisaria, mas no exquema do meu kit p ex. nao tem, e eu tentei usar uns desses pinos como saida, e nao funfou legal..

Qualquer opiniao a respeito é muito bem vista.

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

Mensagempor MarcusPonce » 09 Out 2008 19:20

Primeiro lembrando que logo após o reset os pinos estão como entradas. Estes pinos que você citou como "tipo 6" com pull-ups internos podem ser usados para mais de um modo de debug, então o motivo dos pull-ups é para deixar os pinos não conectados em um estado definido de HIGH de modo a minimizar a possibilidade de comportamentos inesperados. Por exemplo, durante o reset é possível ligar o modo de debug com trace colocando P1.20 em 0. Se isso acontecer, vários outros pinos de P1 mudam de função, não são mais GPIO.

Já os 4 pinos das interfaces I2C precisam seguir o padrão que pede que todos os pinos conectados sejam coletores ou drenos abertos com resistor de pull-up externo. Assim evita-se que uma saída I2C crie um problema forçando para VCC uma outra saída que esteja em 0.

Os outros pinos podem ser entradas ou saídas. Se configurados como saídas por meio do bit correspondente em 1 no registrador IO0DIR ou IO1DIR devem funcionar normalmente sem precisar de resistor externo.
Para você deixar o pino em Vcc escreva 1 no bit correspondente de IO0SET ou IO1SET. Para você deixar o pino em 0V escreva 1 ( é 1 mesmo! ) no bit correspondente de IO0CLR ou IO1CLR.

Atenção: a primeira geração dos LPC213X só tem este modo de controle dos pinos, apenas na segunda geração dos LPC213X é que adicionaram o modo FAST de acionamento dos pinos de I/O.
MarcusPonce
Byte
 
Mensagens: 166
Registrado em: 12 Fev 2007 13:58
Localização: Campinas - SP

Mensagempor styg » 09 Out 2008 22:59

MarcusPonce escreveu:...devem funcionar normalmente sem precisar de resistor externo...


só isso ja respondia, ehhehe, todo o resto ja sei, a questao era bem especifica.

pois bem, voce acha que deve, mas isso é intuiçao ou oque?? porque voce concorda que nao esta mto claro ok?
Lucas
Avatar do usuário
styg
Word
 
Mensagens: 799
Registrado em: 16 Out 2006 08:24
Localização: Floripa abaixo de zero.

Mensagempor MarcusPonce » 10 Out 2008 00:39

Ok. A aparente incerteza do "devem funcionar" não foi proposital. Aqui comigo os pinos do LPC2138 configurados como saídas estão realmente funcionado dentro do esperado nas placas.

Sobre o estar claro: realmente não está _muito_ claro não. Muito claro estaria se estivesse escrito que no caso dos outros pinos não é necessário pull-up nem de pull-down externos quando são configurados como saídas, e eles também não existem internamente.
O manual deixou subentendido que os outros pinos devem ter um comportamento que um pino de saída qualquer deveria ter segundo nossa cultura técnica. Bem, como eu e você (pela sua assinatura) temos uma experiência anterior com o 8051, no qual os pinos de IO são muito diferentes, certamente que podemos nos perguntar se os pinos seriam como um 8051 ou diferentes.
MarcusPonce
Byte
 
Mensagens: 166
Registrado em: 12 Fev 2007 13:58
Localização: Campinas - SP

Mensagempor Renato » 31 Jan 2009 21:14

Marcus: Ainda nos IOs do 2138, uma outra dúvida:
Uma vez determinado um pino para função EINTx, para gerar uma
Int. na transição, poderei no mesmo pino ler o estado lógico ?
Preferencialmente sem mudar de EINT p/ GPIO. Também não sei se
isso é possível no meio da execução.

A motivação da pergunta é para uma rx de USART p/ sw, usando um
único pino.

Grato. Abçs
Renato
Byte
 
Mensagens: 224
Registrado em: 20 Out 2006 08:35

Mensagempor MarcusPonce » 31 Jan 2009 23:53

Renato, você pode ler o estado lógico do pino como se ainda fosse GPIO, mesmo que tenha mudado a função do pino.
Deve ser possível fazer rx de USART por firmware.
MarcusPonce
Byte
 
Mensagens: 166
Registrado em: 12 Fev 2007 13:58
Localização: Campinas - SP

Mensagempor Renato » 12 Fev 2009 22:43

Não consegui ler o estado lógico do pino como EINT0.
Ele disparou a Int na transição e depois de 1/2 bit tentei ler e não deu.
Será que realmente dá para fazer isso ?

Uma dúvida: Mudar dinamicamente a função de um pino, mudando o seletor de pinos (PINSELx) é possível ?
Por exemplo, iniciar como EINT0 e após a 1a. transição, mudar para
GPIO.
(senti falta de GPIO que gere interrupção ... parece que no ARM Cortex
tem isso.)
Renato
Byte
 
Mensagens: 224
Registrado em: 20 Out 2006 08:35


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x