Ir ao conteúdo

Posts recomendados

Postado

 

Existe alguma possibilidade desse multiplicador realmente funcionar? 

A ideia é o circuito produzir um sinal que seria a corrente vezes a tensão. 

@MOR_AL

@aphawk

 

452824838_1213974683376355_5407974583704

 

 

No link do blog, o autor explica melhor. Mas não sou bom da matemática que é apresentada: 

https://www.mathscinotes.com/2011/05/a-simple-analog-multiplier/

 

Estou tentando montar, mas não obtive resultados ainda. 

 

 

Postado

 

@albert_emule

O circuito se baseia no fato de que uma multiplicação pode ser calculada pela soma dos logaritmos de cada fator. O mesmo que as antigas réguas de cálculos faziam. As distâncias de cada valor correspondiam ao logaritmo deste valor. O produto era calculado simplesmente somando-se as distâncias, onde o valor da multiplicação era o valor marcado na régua. Usei muito estas réguas em 1973, no terceiro ano da faculdade. Uma calculadora eletrônica custava rios de dim-dim.

 

  Em certo momento o artigo mostra que Ic = Ibe.[Beta/(Beta +1)], o que não é verdade. Ic = Ibe.Beta, ou seja pelo menos duas ordens de grandeza maior, mas isso não é ponto importante.

O produto é extremamente dependente dos parâmetros do transistor. A relação entre Vbe, Ib, Ic e a temperatura. Em outras palavras. Vai ser difícil conseguir obter o valor do produto V x I com alguma precisão. Isso sem contar as faixas de atuação de V e de I.

Recentemente eu vi um circuito multiplicador semelhante, mas com alguma precisão em, se não estiver errado, três décadas. Vou ver se acho. 

MOR_AL

Tem estes dois vídeos que mostram como chegar a um multiplicador analógico, mas eu não assisti tudo. Achei um terceiro artigo mostrando um circuito, que é muito pouco dependente dos parâmetros dos transistores. Terei que editar. Depois eu faço.

MOR_AL

 

 

 

 

 

Postado

@albert_emule

Pesquise em ...

"National Semiconductor Linear Applications Handbook 1994".

Vai baixar um PDF.

Vá para a página xix e veja em "Multiplier", em AN20. Mais precisamente na página 26, figura 22. O texto a seguir informa os detalhes.

Bons projetos.

MOR_AL

Postado
3 horas atrás, MOR_AL disse:

 

O produto é extremamente dependente dos parâmetros do transistor. A relação entre Vbe, Ib, Ic e a temperatura. Em outras palavras. Vai ser difícil conseguir obter o valor do produto V x I com alguma precisão. Isso sem contar as faixas de atuação de V e de I.

 

 

Um outro engenheiro gringo usou isso num circuito de controlador analógico MPPT para determinar o ponto de potência máxima. 

 

Veja: 

http://www.ko4bb.com/getsimple/index.php?id=an-optimizing-solar-charge-controller

 

 

 

454247938_1868372213651769_2921160104992

 

 Dá a entender que mesmo o multiplicador não tendo precisão, ele pelo menos indica se a potência está maior ou menor e isso serve para achar o ponto de potência máxima do painel solar. @MOR_AL concorda, será isso? 

 

Postado

@albert_emule

 

Não sei.

Na simulação pode até funcionar, mas montando se encontram os problemas.

Um PIC 12F675, com apenas 8 pinos deve fazer isso fácil.

O 12F675 tem apenas 1024 bytes de memória de programa.

Peguei na internet um programa de multiplicação de 16 bits por 16 bits (até 65.535x65.535). Incluí uma multiplicação para testar, o programa usou apenas 318 bytes (em ASM).

Tem um CAD que pode converter o sinal de corrente e de tensão.  

Não pude acessar o link fornecido, meu antivírus não permitiu.

Você baixou o PDF que eu indiquei?

MOR_AL

 

  • Membro VIP
Postado

Boa Moris...

 

19 horas atrás, MOR_AL disse:

programa de multiplicação de 16 bits por 16 bits (até 65.535x65.535).

O resultado é em 32 bits? Senti vontade testar também mas em c e com float em 24 bits...

 

 

19 horas atrás, MOR_AL disse:

Incluí uma multiplicação para testar, o programa usou apenas 318 bytes (em ASM).

readeTransferncia03.thumb.png.574a1fb47086843a9a24f7493ab33268.png

Não sei em quanto tempo seu asm foi construído mas isso daí de cima em c foi em minutos... O 'problema' é ocupou infinitos 8 bytes a+ que o seu...

Em tempo.. ninguém em sã consciência usa um mc 8 bits com 1k com matemática fracionária. Só nóimêmo e claro só pra teste...😁

19 horas atrás, MOR_AL disse:

uma multiplicação para testar

 

Eu sempre quis entender o algoritmo mppt mas isso foi antes de eu comprar um inversor grid tie já com tudo pronto há uns 10 anos.

Algo me diz que o velho amigo França que fazer um algortimo deste mas analógico, sem uso de mc e afins...

19 horas atrás, MOR_AL disse:

Um PIC 12F675, com apenas 8 pinos deve fazer isso fácil.

19 horas atrás, MOR_AL disse:

CAD que pode converter o sinal de corrente e de tensão.

😁

Edit... ops... com long fica mais pequeno ...

readeTransferncia03.thumb.png.aa376780c280a124c2d3cdc5ab58b09b.png

 

edit-II

Senti vontade também compartilhar a função multiplicadora de long's em c...

unsigned long
__lmul(unsigned long multiplier, unsigned long multiplicand)
{
	unsigned long	product = 0;

	do {
		if(multiplier & 1)
			product += multiplicand;
		multiplicand <<= 1;
		multiplier >>= 1;
	} while(multiplier != 0);
	return product;
}

 

Perceba que inexiste matemática complexa: a magia é feita apenas com soma e deslocamentos

Postado
Em 11/08/2024 às 10:34, MOR_AL disse:

@albert_emule

Pesquise em ...

"National Semiconductor Linear Applications Handbook 1994".

Vai baixar um PDF.

Vá para a página xix e veja em "Multiplier", em AN20. Mais precisamente na página 26, figura 22. O texto a seguir informa os detalhes.

Bons projetos.

MOR_AL

 

 

Vou analisar  

452383708_1013798993808491_3826056595457

 

 

Postado

@.if

Realmente, em "c" é mais fácil.

Minha ocupação da memória inclui uma multiplicação, além da rotina. 

O número de memória RAM foi de 2 para o primeiro fator, mais 2 para o segundo e 4 para o resultado. Total 8 bytes de RAM, contra os 26 de sua rotina.

Inclua um exemplo em seu programa para podermos realmente comparar os dois.

8 horas atrás, .if disse:

Perceba que inexiste matemática complexa: a magia é feita apenas com soma e deslocamentos

Acho que a rotina em ASM segue o mesmo procedimento.

Em tempo:

Estou revendo a linguagem "c".

Você poderia explicar cada uma das seguintes instruções?

if(multiplier & 1)

 

@albert_emule

 

Sem ofensa. Você não acha que está na hora de pensar em poder incluir microcontroladores em seus projetos? 

A eletrônica analógica está se restringindo a parte de condicionamento de sinal, entre os sensores e o uC. Aliás já tem muitos circuitos prontos com essa função. Para frequências muito altas e para funções específicas, a eletrônica analógica está contando com chips dedicados.

Bons projetos.

MOR_AL

 

  • Membro VIP
Postado
18 horas atrás, MOR_AL disse:

Realmente, em "c" é mais fácil.

A ideia é esta mesmo amigo.

 

18 horas atrás, MOR_AL disse:

O número de memória RAM

18 horas atrás, MOR_AL disse:

os 26 de sua rotina.

26 são bytes totais do programa. Tendo em vista que as variáveis tipo long ocupam 24 bits ou seja 3 bytes cada, contabilizo 9Bytes em a b c e 3 no resultado, 12 bytes fixos e +14 digamos efêmeros. Acho que o preço é baixo se levar em conta a fluidez do projeto em c. O compilador acho que contabiliza também os bytes dos ports e registros e etc que afinal são partes da ram.

Se bem que certa feita tive que otimizar (em c mesmo) um projeto de um pic de 1k que ocupou 1022 bytes na casca... acho que publiquei ele aqui... era com display gráfico e um pic16f626

E recentemente um outro que tive que escrever palavras texto 7bits cada caractere usando a mesma 'palavra' 14 bits. Dei uma mínima apelada para mnenômicos em assembly e deu muito certo. Com isso dobra-se a capacidade de escrever mensagens em asc-ii no mc [pic 8 bits]. Se algum dia ou alguém achar minimamente curioso, publico o processo (autodidata).

 

 

18 horas atrás, MOR_AL disse:

um exemplo em seu programa

O exemplo está implícito lá, amigo. Perceba GPIO=c; ok semi inútil mas um um digamos menos inútil seria algo como um mc com conversor ad, um pra I outro pra V e o resultado V*I=P.  Quase fiz isso com um pic12f683 + um display... cogitá-lo-ei a qualquer momento...

 

18 horas atrás, MOR_AL disse:

if(multiplier & 1)

Isso daí fala isso: se o bit zero do multiplier for um ... Aquele símbolo & é um simples AND lógico entre a variável e o fixo 1... então ele diz também "se o que estiver dentro do parêntese for diferente de zero..."

Não analisei aquilo no contexto da multiplicação por não precisar, ok? Mas de fato não deixa de ser curioso bem como a análise dos deslocamentos pra esquerda << e direita >>... Se achar que deve, traduza e compartilhe. A propósito, em binário deslocar pra direita e esquerda é o mesmo que multiplicar e dividir por 2 respectivamente. Tendo o mc um assembly direto pra isso, facilita sua vida. Equivale pra nós a multiplicar/dividir por dez. 😜

 

18 horas atrás, MOR_AL disse:

incluir microcontroladores em seus projetos?

Se é pra sonhar, que tal sonhar alto? Cogite então um DSP...

"A DSP is designed for performing mathematical functions like "add", "subtract", "multiply" and "divide" very quickly."

https://www.analog.com/en/lp/001/beginners-guide-to-dsp.html

 

 

 

Postado

 

7 horas atrás, .if disse:

Se é pra sonhar, que tal sonhar alto? Cogite então um DSP...

Não se chega ao topo de uma escada sem subir cada um dos degraus. Ir de elevador é o caminho rápido, pouco se aprende, porém é necessário usar as próprias pernas. Nos fortalece tanto os músculos como a alma.

Considerando que o nosso amigo @albert_emule não esteja familiarizado com o uso de uC (posso estar errado e ele entender até mais do que eu, o que não seria difícil), eu iniciaria com uC mais simples que existe e depois iria me aprofundando no assunto. 

MOR_AL

  • Curtir 1
  • Membro VIP
Postado

 

3 horas atrás, MOR_AL disse:

Não se chega ao topo de uma escada sem subir cada um dos degraus. Ir de elevador é o caminho rápido, pouco se aprende, porém é necessário usar as próprias pernas. Nos fortalece tanto os músculos como a alma.

né. . De dsp entendo paul newman 😜 mas achei pertinente. A ideia do dsp foi mostrar pro amigo a opção digital ao seu computador analógico que seu avatar não lhe deixa desvincular 😁...

 

3 horas atrás, MOR_AL disse:

eu iniciaria com uC mais simples que existe e depois iria me aprofundando no assunto. 

Tmj. Esta é uma bela verdade amigo. No entanto - sempre tem um no entanto - existe uma prima feia dela chamada IA que está gostando de aparecer cada vez+ e ofuscando sua beleza. Hoje em dia qualquer moleque safado com inteligência suficiente se forma na faculdade youtube e com a ajuda dela pode fazer coisas absurdas e queima etapas sim. Coisas que a gent... ops.. você - só você -  nem sonhava na sua linda juventude lá nos 60's 😁.. Que privilégio a gent... ops.. você teve hein? Em criar músculos e aprender tudo na raça, cara e coragem😝.  Como diz o amigo Paulão, a gen.. você.. e ele... estão ficando obsoletos... 🤪

 

Em tempo...off...

As vezes penso que o conhecimento que compartilhamos aqui é usado pelas IA's da vida. Por mim tudo bem mas algo me diz que G.T. é 1/2 egoísta neste ponto... certa feita autorizei a divulgar 1 publicação minha e ele - ou alguém - apagou minha autorização kk

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...