Olá a todos.

Seguindo no meu projeto, tenho o UNO com as portas, 4, 5, 6,7,12 e 13 ligadas a um TTL 74395 que fará a bufferização de 4 bits que deverão ser mantidos na placa até que seus sinais sejam modificados. Os bits são enviados às entradas do 74395 pelas portas 6,7,12 e 13, do Arduino. O Arduino poderá em intervalos de tempos diversos mandar outras combinações de bits para esta porta, mas estes bits só seguirão seu caminho na saída do 74395 quando as portas 4 e 5 mudarem seus níveis. Alguem já fez este tipo de controle com o 74395? Em que sequência devem ser enviados sinais a quais pinos para atualizar estes dados na saída deste CI? Obrigados!!!

Exibições: 808

Responder esta

Respostas a este tópico

Olá Euclides,

O SN74LS395 é um registador  de 4 bits com saídas tristate e pode operar em modo de carregamento síncrono paralelo ou em modo de deslocamento serial à direita, tal como determinado pela seleção de entrada.

Pelo o que pude entender voce deseja usar o carregamento paralelo.

Vamos então descrever os pinos do chip com base no diagrama lógico retirado do datasheet:

S   (7) - Seleção de modo paralelo (High) ou serial (Low);

Ds (2) - Entrada Serial de dados, só funciona quando S está em Low;

P0 (3), P1 (4), P2(5), P(6) - Entradas paralela de dados;

/CP (10) - Clock, atualiza saídas na transição de High para Low (borda de descida);

/MR (1) - Reset, zera o registrador na transição de High para Low (borda de descida);

OE (9) - Habilita as Saídas, quando em High e quando em Low coloca todas em alta impedancia;

O0 (15), O1 (14), O2 (13), O3 (12) - Saídas Tri State;

Q3 (11) - Carry ou "Vai um";

VCC (16) - Alimentação positiva;

GND (8) - Alimentação negativa.

A configuração para modo de carregamento paralelo é a seguinte:

S   (7) - Ligar ao VCC (High);

Ds (2) - Pode ser ligada ao VCC ou ao GND, só não recomendo deixar flutuando;

P0 (3), P1 (4), P2(5), P3(6) - Ligar aos pinos do arduino de saída de dados conforme o seu projeto (6, 7, 12 e 13);

/CP (10) - Ligar ao pino do arduino que terá a função de atualizar as saídas, talvez o pino 4 do arduino. Toda vez que este pino fizer a transição de 1 para 0 as saídas assumirão o estado das entradas;

Agora voce deve saber se a sua aplicação precisa deixar as saídas do 74395 em alta impedancia.

Em caso positivo, voce deve ligar o pino OE (9) a um pino do arduino, talvez o pino 5 do arduino. Toda vez que este pino estiver em High as saídas irão para alta impedância, quando estiver em 0 habilita as saídas;

Se voce não precisar comutar as saídas para alta impedância, deixar o pino OE (9) ligado ao GND.

Agora voce deve saber se a sua aplicação precisa resetar as saídas do 74395.

Em caso positivo, voce deve ligar o pino /MR (1) a um pino do arduino. Toda vez que este pino estiver em Low as saídas serão resetadas;

Se voce não precisar resetar as saídas, deixar o pino /MR (1) ligado ao VCC e economize um pino do arduino.

Então a sequencia de trabalho é a seguinte:

1 - Enviar os dados para as entradas P0 a P3;

2 - Mandar o pino /CP (10) para 0 e logo após voltar para 1.

Dependendo da sua vontade ou necessidade, voce precisa de 5 ou até 7 pinos do arduino para o modo paralelo.

Espero ter ajudado.

Até a próxima.

Olá Marcos.

Achei um datasheet melhor que o outro que estava tentando entender, aí funcionou. Realmente para carregar os dados são necessários disponibilizar os 4 bits pelos pinos 6,7,12 e 13 para as entradas do CI (P0 a P3). Em seguida e em paralelo elevar os pinos 7 e 10 (do CI), juntos e simultâneos, e na sequência baixar os pinos. Como estou fazendo com estes bits, um conjunto de 4 informações que vão para bobinas de motor de passo, é necessário mante-los energizados (saídas O0 a O2), por isso este CI.

Poderá ser usado em cada Arduino (padrão UNO) até 16 shields desses que estou projetando, para isso estou colocando outro 74395 para manter os endereços das placas. Assim vou fazer um esquema de que um pino estando em alta está fornecendo bits para as bobinas dos motores e estando em baixa estará fornecendo os endereços para que entre as 16 placas possíveis; uma (ou mais, em paralelo) seja a selecionada para executar a mudança do conteúdo da carga nas bobinas (Com as outras placas mantendo o contéudo dos 74395). Estou fazendo estes testes em protoboard por enquanto, mas está quase tudo pronto. Já tenho tambem uma placa (ilhada) com os transistores de potência instalados e falta praticamente "ajeitar" os componentes em cima da placa e fazer as ligações para fazer os testes prototipados, semana que vem pretendo alterar o desenho do circuito que fiz no Eagle.

Tudo correndo bem talvez serão necessário só 7 pinos para controlar estes 16 motores. Sobram 7 para outros controles e sensores para atender fim de cursos e home para qualquer tipo de equipamento que necessite de motores de passo de potência. Acho que 16 motores "tá de bom tamanho"...né?

Agradeço a atenção dispensada. Até a próxima.

Oi Euclides, aparece que vc ta montando uma impressora.Mas a pergunta é o seguinte e que projetos mais praticos posso usar este CI 74395?

Olá Adriano.

A idéia não é uma impressora (pensei que vc. disse impressora para papel...), mas qq. tipo de máquina que precise de motores de passo de média para grande potência. Inicialmente queria fazer um scanner de encadernados, mas vendo a necessidade das impressoras 3D (que ainda nem começaram a serem "produzidas" no Brasil "direito" ainda...) e de máquinas CNC que usem o Arduino como base.

Vislumbro a necessidade de se ter placas que possam ser agregadas ao Arduino para que seja possível qualquer tipo de controle. Quero ter uma impressora 3D e estou caminhando com esta placa para isso. O detalhe é que eu já a pensei como um shield que depois eu possa comercializar.

Com esta placa (shield) poderei controlar até 16 motores, simplesmente "dando um nome" para cada motor e configurando a placa para ser a controladora de qq. desses motores. Estas placas deverão  ser colocadas uma sobre as outras como uma torre até o limite de 16.

Este CI o 74395 pode ser usado em qq. local que vc. precise guardar 4 bits por um período de tempo, (como minha placa faz, uma vez que ao controlar 16 motores, eu precise mante-los energizados não tem como ficar ocupando as 14 portas (digitais) do Arduino para isso, a placa envia o comando de passo para a placa e trava a placa, enquanto vai comandar as outras, nos passos seguintes dependendo de como está sendo feito todos os controles de todos os motores, novo(s) passo(s) poderá/ão ser enviados à placa ou as outras. Este CI tambem pode ser usado em conversão serial/paralelo e vice-versa, com estes recursos é um CI muito poderoso, o bacana é saber como encaixar um ao outro (como um LEGO) e fazer tudo funcionar encaixadinho...

Veja como está a montagem da placa:

É isso aí...por enquanto.

Até a próxima.

Pô, muito obrigado pela explicação Euclides, espero que vc termine a placa e já possa comercializa-la quanto ao CI, parece ser otimo o recurso que este CI oferece, o site laboratorio de garagem aprendo mais rapido do que tivesse procurando em livros.

Olá Adriano. Para melhores conhecimentos sobre a família 74 procure por um livro chamado TTL manual completo (em espanhol mas dá pra ler) e tambem pelo Eletrônica Todos os componentes de Marco Antônio Marques de Souza (da Editora Hemus). E é lógico, procure pelos datasheets. E mesmo assim se houver dúvidas, faça como eu: Laboratório de Garagem nelas!!!! Boa sorte.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço