collapse

* Links de Robótica

* Posts Recentes

Power_OK Enermax por almamater
[Hoje às 12:10]


Feira de electricidade e eletrónica por edeweld
[Hoje às 02:02]


Recomendação de um opamp para um DAC r2r por jm_araujo
[Ontem às 10:48]


RN42 e TP-Link MR3020 por doiga
[22 de Novembro de 2017, 19:22]


Ajuda Projecto IR / RF por senso
[22 de Novembro de 2017, 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]

Autor Tópico: Bi-directional Logic Level Converter  (Lida 6172 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 753
Bi-directional Logic Level Converter
« em: 29 de Outubro de 2014, 04:37 »
Boas.
Estou a tenta iniciar a minha pesquisa sobre o funcionamento dos modulos nRF905

E estou com um problema.
Para fazer ping (exemplo da libraria http://blog.zakkemble.co.uk/nrf905-avrarduino-librarydriver/ ) faço as ligações e faço o ping.
Tentei com um UNO e DueMillinove. Funcionou impecavel.

Estou a tentar agora com dois PRO MINI, e o ping da-me sempre time out no cliente, e Waiting for ping no segundo.

Existe alguma diferença entre o UNO e o PRO que possa provocar isto? que eu saiba não, porque o atemega é o mesmo, o PRO tem bootloader de 5V 16 Ghz... Não entendo...

Alguem teve este problema?

PS: Experimentei mais do que um PRO MINI. Bem como refiz as ligações todas varias vezes.
« Última modificação: 25 de Dezembro de 2014, 18:33 por Kristey »

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.727
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #1 em: 29 de Outubro de 2014, 06:13 »
Existe alguma diferença entre o UNO e o PRO que possa provocar isto? que eu saiba não, porque o atemega é o mesmo, o PRO tem bootloader de 5V 16 Ghz... Não entendo...

O PRO que tens é muito potente!! 16 Ghz :p

A unica diferença que vejo é mesmo na alimentação, estás a alimentar esse integrado com a mesma tensão em ambos os casos?

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • Electronic Gear for Musicians
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #2 em: 29 de Outubro de 2014, 08:45 »
A velocidade de relogio eh a mesma entre os Arduinos?

Parece-me coisa de temporizacoes.



Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.167
  • NERD!
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #3 em: 29 de Outubro de 2014, 09:54 »
Existe alguma diferença entre o UNO e o PRO que possa provocar isto? que eu saiba não, porque o atemega é o mesmo, o PRO tem bootloader de 5V 16 Ghz... Não entendo...

Segundo a própria Arduino o Pro Mini tem um ATmega168 (com 1k de RAM), e o Uno tem um ATmega328 (2k de RAM) :

Esses módulos por causa dos buffers não são gulosos de RAM? Pode ser por aí o problema.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #4 em: 29 de Outubro de 2014, 13:04 »
Ou stack overflow, ou devido á corrente que o módulo usa brown-out da parte do regulador e/ou do micro.
Avr fanboy

StarRider

  • Visitante
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #5 em: 29 de Outubro de 2014, 13:36 »
Boas,

Típico sintoma de problema de QPA.

Abraços,
PA

Offline Kristey

  • Mini Robot
  • *
  • Mensagens: 753
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #6 em: 30 de Outubro de 2014, 03:15 »
Os PRO's que eu tenho estao alimentados a 5V
E ambos têm atmega328.
O clock é 16mhz
Bem mudei de breadboard e passou a dar...
--'
Lol
Agora tenho outro problema.
Segundo os módulos que uso. Deveria alimentar a 3.3V e alguns dos sinais também deveriam estar ligados a conversores lógicos (ou divisor de tensão, ou fixador de tensão)
Foi este ultimo que escolhi.
Uma resistência um zener de 3.3 e pensei eu que o problema estava resolvido.
O problema é que pelos vistos a resistência 4.7K, indicada pelo circuito recomendado não dá para o meu tipo de zener.
Isto porque a tenção com que fico no meio do fixador de tensão é de 2.4V e não 3.3V
Por tentativa e erro fui tentando e cheguei a 3.4V com uma resistência de 330 ohm.
Alguém me pode explicar as contas que tenho de fazer para não falhar na próxima vez?
É que quandon for comprar os zebres definitivos para soldar quero saber que características pedir.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.402
  • Helpdesk do sitio
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #7 em: 30 de Outubro de 2014, 03:46 »
É preferivel usar um IC lógico dedicado para isso, dado que por 50 ou 60 centimos garantes que o sinal é digital, e que não precisas de inventar uma duzia de componentes.
Já usei divisores de tensão para casos em cima do joelho com sucesso, agora zeners nunca.
Avr fanboy

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • Electronic Gear for Musicians
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #8 em: 30 de Outubro de 2014, 09:18 »
Os PRO's que eu tenho estao alimentados a 5V
E ambos têm atmega328.
O clock é 16mhz
Bem mudei de breadboard e passou a dar...
--'
Lol
Agora tenho outro problema.
Segundo os módulos que uso. Deveria alimentar a 3.3V e alguns dos sinais também deveriam estar ligados a conversores lógicos (ou divisor de tensão, ou fixador de tensão)
Foi este ultimo que escolhi.
Uma resistência um zener de 3.3 e pensei eu que o problema estava resolvido.
O problema é que pelos vistos a resistência 4.7K, indicada pelo circuito recomendado não dá para o meu tipo de zener.
Isto porque a tenção com que fico no meio do fixador de tensão é de 2.4V e não 3.3V
Por tentativa e erro fui tentando e cheguei a 3.4V com uma resistência de 330 ohm.
Alguém me pode explicar as contas que tenho de fazer para não falhar na próxima vez?
É que quandon for comprar os zebres definitivos para soldar quero saber que características pedir.


Sugiro um pouco de estudo resumido sobre o funcionamento basico de diodos Zener. Sao simples de usar e bastante uteis em alguns casos :: WIKI

Sendo assim, ha algumas coisas a considerar ::
- a quantidade de corrente que o teu circuito alimentado necessita
- a corrente minima para a manutencao do breakdown do Zener

Assumimos que :
- tensao de alimentacao: 5V
- o Zener para manter os 3.3V consome: ~3mA
- consumo do circuito a alimentar: ~20mA

Entao, a resistencia que fica em serie tem q permitir a corrente para 20+3=23mA
Pela lei de Ohm, chegamos a :
(5V-3.3V) / 23m = ~73.9Ohm -> mais proximo ha 68 Ohm e 82 Ohm
Usar 82Ohm para limiter a corrente, assim teremos ~20.7mA disponiveis.

Quando o circuito alimentado nao estiver a consumir so ~20mA, vai ser o Zener a ter que conduzir extra e disspar mais potencia para poder manter os 3.3V estaveis.
E vice-versa, quando o circuito alimentado necessitar mais de ~20mA, vai roubar dos 3mA que o Zener necessita. Eh claro que se a corrente for superior ao valor para q a resistencia foi calculada, a tensao de saida vai diminuir.
Este circuito eh minimamente eficiente pois desperdica energia no Zener. Eh usado com Zeners de precisao gerar uma Tensao de Referencia com baixo custo, eliminando o uso de chips mais caros. Um bom Zener para isto eh o famoso TL431.



Para quem quer fazer uma "fonte de alimentacao" linear, barata e que permite o consumo de mais corrente sem o desperdicio de dissipacao no Zener, tem ::  este exemplo

Neste caso, a corrente desperdicada eh apenas a dissipada no Zener para fazer a manutencao dos 3.3V, pois a corrente de Base do Transistor eh muito baixa, assumindo que o mesmo tem um HFE de 100 ::

A corrente de Base eh calculada HFE = ic / ib,   100 = 20m / ib,    ib = 200uA     ->   a resistencia tera de permiter apenas 3mA + 200uA
A resistencia entao serah de (5V-3.3V) / 3.2m = ~531 Ohm -> mais perto serah 470 Ohm ou 560 Ohm. Mas para permitir que mais corrente passe pelo Transistor, para cargas maiores, podemos usar 470 Ohm. Quanto maior for o HFE do transistor, maior poderah ser o valor desta resistencia.

Mais uma vez este circuito eh optimo quando necessitamos de uma estabilizacao de tensao barata e que nao tenhamos problemas de consumo de corrente.



Espero q a explicacao tenha sido util.


Offline msr

  • Mini Robot
  • *
  • Mensagens: 795
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #9 em: 30 de Outubro de 2014, 10:02 »
Para logic level converters podes usar 2 resistências e 1 mosfet: http://www.hobbytronics.co.uk/image/data/tutorial/mosfet_level_converter.jpg

StarRider

  • Visitante
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #10 em: 30 de Outubro de 2014, 11:08 »
Boas,

Vocês gostam de complicar  ;D

Um simples SN74LVC3G17DCTR (40 cêntimos) resolve a questão ... ou um MAX3378 que é um pouco mais
caro mas estupidamente versátil para converter níveis lógicos.

No fim, fica MUITO mais barato um IC dedicado, ocupa MUITO menos espaço na PCB, e dá MUITO menos
trabalho soldar.

Just my 2 cents.

Abraços,
PA

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • Electronic Gear for Musicians
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #11 em: 30 de Outubro de 2014, 12:09 »
No fim, fica MUITO mais barato um IC dedicado, ocupa MUITO menos espaço na PCB, e dá MUITO menos
trabalho soldar.


Depende da quantidade de produtos a fabricar.
A quantidade de solucoes discretas q frequentemente uso para nao ter que usar chips dedicados... Os savings que temos por usar uma solucao em vez de outra, sao gigantes.

Claro... cada aplicacao eh uma aplicacao e ha algumas q tem mm q se usar chip dedicado.


StarRider

  • Visitante
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #12 em: 30 de Outubro de 2014, 12:33 »
No fim, fica MUITO mais barato um IC dedicado, ocupa MUITO menos espaço na PCB, e dá MUITO menos
trabalho soldar.


Depende da quantidade de produtos a fabricar.
A quantidade de solucoes discretas q frequentemente uso para nao ter que usar chips dedicados... Os savings que temos por usar uma solucao em vez de outra, sao gigantes.

Claro... cada aplicacao eh uma aplicacao e ha algumas q tem mm q se usar chip dedicado.

Boas,

Sim concordo, e neste caso em que penso se o Kristey está usar uma breadboard a opção por um IC SMD
não dá muito jeito.

Por outro lado, ainda recentemente comprei 100 unidades do SN74LVC3G17DCTR que ficou a 20 cêntimos
cada um... e sendo um conversor Schmitt-trigger triplo, mas como faço uso somente de 2 buffers, fica a
10 cêntimos por canal de conversão. Como sou preguiçoso para mim a grande vantagem, nesta caso,
é mesmo o espaço que poupei na PCB :)

Abraços,
PA

Abraços,
PA


Offline Electropepper

  • Mini Robot
  • *
  • Mensagens: 116
    • Electropepper
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #13 em: 31 de Outubro de 2014, 13:29 »
Aqui tens uma boa página sobre o assunto, bi-direccional level shifter.
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
Andei ultimamente com o mesmo dilema, para já vou esperimentar como solução temporária, o ficheiro em anexo.

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.642
    • Electronic Gear for Musicians
Re: Problemas entre diferentes arduinos para a mesma função
« Responder #14 em: 31 de Outubro de 2014, 15:44 »
Aqui tens uma boa página sobre o assunto, bi-direccional level shifter.
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
Andei ultimamente com o mesmo dilema, para já vou esperimentar como solução temporária, o ficheiro em anexo.


Ola

Esse esquematico tem algumas inconsistencias ::

- nao especifica quem eh o Master e o Slave

- as portas MOSI e MISO estao em choque

- eh preferivel seguir o exemplo com os dois transistores, ou melhor ainda o exemplo da Philips no manual do Standard de I2C