quinta-feira, 12 de dezembro de 2019

Firmware original do Nestor

Código Original do Computador Nestor

Para quem for montar o circuito original do Nestor da revista Nova Eletrônica, segue a listagem hexadecimal do código a ser gravado na EPROM 2716.

:020000040000FA
:100000000620804F305E963A47D44520140439DAF2
:10001000A201512245910C292932D04049C14806FC
:1000200020B1016B53081D501107B292D500C502D3
:10003000B2B807820062C02E97E822E1800001106A
:100040000620804F305E963A47D44520140439DAB2
:10005000A201512245910C292932D04049C14806BC
:1000600020B1016B53081D501107B292D500C50293
:10007000B2B807820062C02E97E822E1800001102A
:100080000620804F305E963A47D44520140439DA72
:10009000A201512245910C292932D04049C148067C
:1000A00020B1016B53081D501107B292D500C50253
:1000B000B2B807820062C02E97E822E180000110EA
:1000C0000620804F305E963A47D44520140439DA32
:1000D000A201512245910C292932D04049C148063C
:1000E00020B1016B53081D501107B292D500C50213
:1000F000B2B807820062C02E97E822E180000110AA
:100100000620804F305E963A47D44520140439DAF1
:10011000A201512245910C292932D04049C14806FB
:1001200020B1016B53081D501107B292D500C502D2
:10013000B2B807820062C02E97E822E18000011069
:100140000620804F305E963A47D44520140439DAB1
:10015000A201512245910C292932D04049C14806BB
:1001600020B1016B53081D501107B292D500C50292
:10017000B2B807820062C02E97E822E18000011029
:100180000620804F305E963A47D44520140439DA71
:10019000A201512245910C292932D04049C148067B
:1001A00020B1016B53081D501107B292D500C50252
:1001B000B2B807820062C02E97E822E180000110E9
:1001C0000620804F305E963A47D44520140439DA31
:1001D000A201512245910C292932D04049C148063B
:1001E00020B1016B53081D501107B292D500C50212
:1001F000B2B807820062C02E97E822E180000110A9
:100200000620804F305E963A47D44520140439DAF0
:10021000A201512245910C292932D04049C14806FA
:1002200020B1016B53081D501107B292D500C502D1
:10023000B2B807820062C02E97E822E18000011068
:100240000620804F305E963A47D44520140439DAB0
:10025000A201512245910C292932D04049C14806BA
:1002600020B1016B53081D501107B292D500C50291
:10027000B2B807820062C02E97E822E18000011028
:100280000620804F305E963A47D44520140439DA70
:10029000A201512245910C292932D04049C148067A
:1002A00020B1016B53081D501107B292D500C50251
:1002B000B2B807820062C02E97E822E180000110E8
:1002C0000620804F305E963A47D44520140439DA30
:1002D000A201512245910C292932D04049C148063A
:1002E00020B1016B53081D501107B292D500C50211
:1002F000B2B807820062C02E97E822E180000110A8
:100300000620804F305E963A47D44520140439DAEF
:10031000A201512245910C292932D04049C14806F9
:1003200020B1016B53081D501107B292D500C502D0
:10033000B2B807820062C02E97E822E18000011067
:100340000620804F305E963A47D44520140439DAAF
:10035000A201512245910C292932D04049C14806B9
:1003600020B1016B53081D501107B292D500C50290
:10037000B2B807820062C02E97E822E18000011027
:100380000620804F305E963A47D44520140439DA6F
:10039000A201512245910C292932D04049C1480679
:1003A00020B1016B53081D501107B292D500C50250
:1003B000B2B807820062C02E97E822E180000110E7
:1003C0000620804F305E963A47D44520140439DA2F
:1003D000A201512245910C292932D04049C1480639
:1003E00020B1016B53081D501107B292D500C50210
:1003F000B2B807820062C02E97E822E180000110A7
:100400000620804F305E963A47D44520140439DAEE
:10041000A201512245910C292932D04049C14806F8
:1004200020B1016B53081D501107B292D500C502CF
:10043000B2B807820062C02E97E822E18000011066
:100440000620804F305E963A47D44520140439DAAE
:10045000A201512245910C292932D04049C14806B8
:1004600020B1016B53081D501107B292D500C5028F
:10047000B2B807820062C02E97E822E18000011026
:100480000620804F305E963A47D44520140439DA6E
:10049000A201512245910C292932D04049C1480678
:1004A00020B1016B53081D501107B292D500C5024F
:1004B000B2B807820062C02E97E822E180000110E6
:1004C0000620804F305E963A47D44520140439DA2E
:1004D000A201512245910C292932D04049C1480638
:1004E00020B1016B53081D501107B292D500C5020F
:1004F000B2B807820062C02E97E822E180000110A6
:100500000620804F305E963A47D44520140439DAED
:10051000A201512245910C292932D04049C14806F7
:1005200020B1016B53081D501107B292D500C502CE
:10053000B2B807820062C02E97E822E18000011065
:100540000620804F305E963A47D44520140439DAAD
:10055000A201512245910C292932D04049C14806B7
:1005600020B1016B53081D501107B292D500C5028E
:10057000B2B807820062C02E97E822E18000011025
:100580000620804F305E963A47D44520140439DA6D
:10059000A201512245910C292932D04049C1480677
:1005A00020B1016B53081D501107B292D500C5024E
:1005B000B2B807820062C02E97E822E180000110E5
:1005C0000620804F305E963A47D44520140439DA2D
:1005D000A201512245910C292932D04049C1480637
:1005E00020B1016B53081D501107B292D500C5020E
:1005F000B2B807820062C02E97E822E180000110A5
:100600000620804F305E963A47D44520140439DAEC
:10061000A201512245910C292932D04049C14806F6
:1006200020B1016B53081D501107B292D500C502CD
:10063000B2B807820062C02E97E822E18000011064
:100640000620804F305E963A47D44520140439DAAC
:10065000A201512245910C292932D04049C14806B6
:1006600020B1016B53081D501107B292D500C5028D
:10067000B2B807820062C02E97E822E18000011024
:100680000620804F305E963A47D44520140439DA6C
:10069000A201512245910C292932D04049C1480676
:1006A00020B1016B53081D501107B292D500C5024D
:1006B000B2B807820062C02E97E822E180000110E4
:1006C0000620804F305E963A47D44520140439DA2C
:1006D000A201512245910C292932D04049C1480636
:1006E00020B1016B53081D501107B292D500C5020D
:1006F000B2B807820062C02E97E822E180000110A4
:100700000620804F305E963A47D44520140439DAEB
:10071000A201512245910C292932D04049C14806F5
:1007200020B1016B53081D501107B292D500C502CC
:10073000B2B807820062C02E97E822E18000011063
:100740000620804F305E963A47D44520140439DAAB
:10075000A201512245910C292932D04049C14806B5
:1007600020B1016B53081D501107B292D500C5028C
:10077000B2B807820062C02E97E822E18000011023
:100780000620804F305E963A47D44520140439DA6B
:10079000A201512245910C292932D04049C1480675
:1007A00020B1016B53081D501107B292D500C5024C
:1007B000B2B807820062C02E97E822E180000110E3
:1007C0000620804F305E963A47D44520140439DA2B
:1007D000A201512245910C292932D04049C1480635
:1007E00020B1016B53081D501107B292D500C5020C
:1007F000B2B807820062C02E97E822E180000110A3
:100800000620804F305E963A47D44520140439DAEA
:10081000A201512245910C292932D04049C14806F4
:1008200020B1016B53081D501107B292D500C502CB
:10083000B2B807820062C02E97E822E18000011062
:100840000620804F305E963A47D44520140439DAAA
:10085000A201512245910C292932D04049C14806B4
:1008600020B1016B53081D501107B292D500C5028B
:10087000B2B807820062C02E97E822E18000011022
:100880000620804F305E963A47D44520140439DA6A
:10089000A201512245910C292932D04049C1480674
:1008A00020B1016B53081D501107B292D500C5024B
:1008B000B2B807820062C02E97E822E180000110E2
:1008C0000620804F305E963A47D44520140439DA2A
:1008D000A201512245910C292932D04049C1480634
:1008E00020B1016B53081D501107B292D500C5020B
:1008F000B2B807820062C02E97E822E180000110A2
:100900000620804F305E963A47D44520140439DAE9
:10091000A201512245910C292932D04049C14806F3
:1009200020B1016B53081D501107B292D500C502CA
:10093000B2B807820062C02E97E822E18000011061
:100940000620804F305E963A47D44520140439DAA9
:10095000A201512245910C292932D04049C14806B3
:1009600020B1016B53081D501107B292D500C5028A
:10097000B2B807820062C02E97E822E18000011021
:100980000620804F305E963A47D44520140439DA69
:10099000A201512245910C292932D04049C1480673
:1009A00020B1016B53081D501107B292D500C5024A
:1009B000B2B807820062C02E97E822E180000110E1
:1009C0000620804F305E963A47D44520140439DA29
:1009D000A201512245910C292932D04049C1480633
:1009E00020B1016B53081D501107B292D500C5020A
:1009F000B2B807820062C02E97E822E180000110A1
:100A00000620804F305E963A47D44520140439DAE8
:100A1000A201512245910C292932D04049C14806F2
:100A200020B1016B53081D501107B292D500C502C9
:100A3000B2B807820062C02E97E822E18000011060
:100A40000620804F305E963A47D44520140439DAA8
:100A5000A201512245910C292932D04049C14806B2
:100A600020B1016B53081D501107B292D500C50289
:100A7000B2B807820062C02E97E822E18000011020
:100A80000620804F305E963A47D44520140439DA68
:100A9000A201512245910C292932D04049C1480672
:100AA00020B1016B53081D501107B292D500C50249
:100AB000B2B807820062C02E97E822E180000110E0
:100AC0000620804F305E963A47D44520140439DA28
:100AD000A201512245910C292932D04049C1480632
:100AE00020B1016B53081D501107B292D500C50209
:100AF000B2B807820062C02E97E822E180000110A0
:100B00000620804F305E963A47D44520140439DAE7
:100B1000A201512245910C292932D04049C14806F1
:100B200020B1016B53081D501107B292D500C502C8
:100B3000B2B807820062C02E97E822E1800001105F
:100B40000620804F305E963A47D44520140439DAA7
:100B5000A201512245910C292932D04049C14806B1
:100B600020B1016B53081D501107B292D500C50288
:100B7000B2B807820062C02E97E822E1800001101F
:100B80000620804F305E963A47D44520140439DA67
:100B9000A201512245910C292932D04049C1480671
:100BA00020B1016B53081D501107B292D500C50248
:100BB000B2B807820062C02E97E822E180000110DF
:100BC0000620804F305E963A47D44520140439DA27
:100BD000A201512245910C292932D04049C1480631
:100BE00020B1016B53081D501107B292D500C50208
:100BF000B2B807820062C02E97E822E1800001109F
:100C00000620804F305E963A47D44520140439DAE6
:100C1000A201512245910C292932D04049C14806F0
:100C200020B1016B53081D501107B292D500C502C7
:100C3000B2B807820062C02E97E822E1800001105E
:100C40000620804F305E963A47D44520140439DAA6
:100C5000A201512245910C292932D04049C14806B0
:100C600020B1016B53081D501107B292D500C50287
:100C7000B2B807820062C02E97E822E1800001101E
:100C80000620804F305E963A47D44520140439DA66
:100C9000A201512245910C292932D04049C1480670
:100CA00020B1016B53081D501107B292D500C50247
:100CB000B2B807820062C02E97E822E180000110DE
:100CC0000620804F305E963A47D44520140439DA26
:100CD000A201512245910C292932D04049C1480630
:100CE00020B1016B53081D501107B292D500C50207
:100CF000B2B807820062C02E97E822E1800001109E
:100D00000620804F305E963A47D44520140439DAE5
:100D1000A201512245910C292932D04049C14806EF
:100D200020B1016B53081D501107B292D500C502C6
:100D3000B2B807820062C02E97E822E1800001105D
:100D40000620804F305E963A47D44520140439DAA5
:100D5000A201512245910C292932D04049C14806AF
:100D600020B1016B53081D501107B292D500C50286
:100D7000B2B807820062C02E97E822E1800001101D
:100D80000620804F305E963A47D44520140439DA65
:100D9000A201512245910C292932D04049C148066F
:100DA00020B1016B53081D501107B292D500C50246
:100DB000B2B807820062C02E97E822E180000110DD
:100DC0000620804F305E963A47D44520140439DA25
:100DD000A201512245910C292932D04049C148062F
:100DE00020B1016B53081D501107B292D500C50206
:100DF000B2B807820062C02E97E822E1800001109D
:100E00000620804F305E963A47D44520140439DAE4
:100E1000A201512245910C292932D04049C14806EE
:100E200020B1016B53081D501107B292D500C502C5
:100E3000B2B807820062C02E97E822E1800001105C
:100E40000620804F305E963A47D44520140439DAA4
:100E5000A201512245910C292932D04049C14806AE
:100E600020B1016B53081D501107B292D500C50285
:100E7000B2B807820062C02E97E822E1800001101C
:100E80000620804F305E963A47D44520140439DA64
:100E9000A201512245910C292932D04049C148066E
:100EA00020B1016B53081D501107B292D500C50245
:100EB000B2B807820062C02E97E822E180000110DC
:100EC0000620804F305E963A47D44520140439DA24
:100ED000A201512245910C292932D04049C148062E
:100EE00020B1016B53081D501107B292D500C50205
:100EF000B2B807820062C02E97E822E1800001109C
:100F00000620804F305E963A47D44520140439DAE3
:100F1000A201512245910C292932D04049C14806ED
:100F200020B1016B53081D501107B292D500C502C4
:100F3000B2B807820062C02E97E822E1800001105B
:100F40000620804F305E963A47D44520140439DAA3
:100F5000A201512245910C292932D04049C14806AD
:100F600020B1016B53081D501107B292D500C50284
:100F7000B2B807820062C02E97E822E1800001101B
:100F80000620804F305E963A47D44520140439DA63
:100F9000A201512245910C292932D04049C148066D
:100FA00020B1016B53081D501107B292D500C50244
:100FB000B2B807820062C02E97E822E180000110DB
:100FC0000620804F305E963A47D44520140439DA23
:100FD000A201512245910C292932D04049C148062D
:100FE00020B1016B53081D501107B292D500C50204
:100FF000B2B807820062C02E97E822E1800001109B
:00000001FF


segunda-feira, 7 de outubro de 2019

Driver de motores de passo

Driver para Motores A4988


Há um tempo eu ganhei duas plaquinhas com o driver de motor A4988 da Allegro que facilita enormemente o uso de motores de passo, sem precisar fazer uma programação voltada para acionar as bobinas em sequência correta. Com esse driver, basta selecionar o microstepping desejado, a direção do motor e enviar os pulsos. E ele ainda aceita níveis lógicos de 5V de 3.3V, facilitando tanto o uso por Arduinos como Raspberry Pi.

As dimensões da plaquinha são reduzidas e já vem com duas fileiras de barras de pinos, facilitando o uso com protoboard. Segundo a datasheet, o driver permite o controle de altas correntes (2A) e mesmo com o tamanho reduzido, não esquenta muito (apesar do dissipador pequeno).

Veja como pode ser o interfaceamento com um microcontrolador:


Mas o acionamento do driver e do motor de passo não precisa de um microcontrolador (ou Arduino ou RPI).  Basta uma fonte de pulsos (eu usei um simples 555 em modo astável) e fornecer os níveis lógicos adequados para os pinos RESET, ENABLE, DIR (direção), MS!-3 (que definem o microstepping) e jogar os pulsos vindos do 555 no pino STEP.  

O vídeo com a montagem usando o 555:





quinta-feira, 29 de agosto de 2019

Fonte para Raspberry Pi

Fonte de Alimentação para Raspberry Pi

Eu estava com problemas para usar meus Raspberry Pis por causa da alimentação deles. Como eu não comprei uma fonte apropriada e original, pois diziam que os carregadores de celular poderiam funcionar, comecei a ter instabilidade no funcionamento das plaquinhas, sem falar no aparecimento inevitável do "raiozinho" amarelo no canto superior direito da tela (no Raspbian).  A causa é que apesar de pequeno, o Raspberry Pi consome uma corrente considerável a 5V.  E como ele é alimentado na maioria das vezes pela porta USB micro, muitas vezes o cabo usado tem uma resistência (ida e volta) que gera uma queda de tensão na alimentação da plaquinha, causando a instabilidade e reboot.

É recomendado que a fonte de alimentação tenha 5,25Vdc de tensão e forneça pelo menos 2A de corrente (3A no caso do novo Pi4). As portas USB normalmente fornecem 5V, talvez os 0,25V adicionais sejam para compensar as perdas no cabo. Como essa tensão não é comum nos reguladores lineares (ex. 7805), a alternativa seria fazer uma fonte com um regulador de tensão ajustável como o LM317T. Só que o LM317T só fornece até 1,5A (o 7805 só 1A). Existe a versão de 3A do LM317T que é o LM350T, mas o desperdício de energia em forma de calor seria muito grande e exigiria um dissipador enorme.  Um amigo (Eduardo) sugeriu usar os reguladores chaveados. Eu já usava um regulador LM2576T de 5V para alimentar os protótipos em protoboard.  O LM2576T tem uma versão ajustável cuja tensão de saída é programada por dois resistores externos. E o melhor de tudo é que ele fornece até 3A de corrente.

Pra obter os 5,25Vdc na saída, eu calculei que os resistores deveriam ser de 3300 ohms e 1000 ohms.
A fórmula é:  

Vout = Vref x (1 + R2/R1)     Sendo que Vref=1,23V   e R1 maior ou igual a 1000 ohms.

Assim:  Vout =  1,23V x (1 + 3300/1000) = 5,29V     um pouquinho a mais.

No caso, basta escolher um resistor de 3300 ohms com valor um pouco abaixo e um de 1000 ohms com valor um pouco acima (por causa das tolerâncias). Por exemplo, usar um de 3290 e outro de 1010 ohms, deixa a tensão de saída mais perto dos 5,25V.  Embora isso não seja crítico porque a tensão  vai ser derrubada por causa da perda no cabo, quem for preciosista pode selecionar os resistores mais acertados. Eu pensei em usar um trimpot, mas fiquei com medo de que uma mexida sem querer, possa alterar o valor e depois queimar o Raspberry Pi.

Um componente chato pra se usar com esse regulador é o indutor. Mas como ele não é muito crítico, eu usei um de 400uH que eu tinha, e ele funcionou sem problemas.  O LM2576 funciona com chaveamento a 52kHz e é um regulador tipo Buck (redutor de tensão com aumento da corrente de saída).

O circuito é este:


Eu optei por poder entrar com alimentação AC (transformador de 12Vac-0-12Vac) ou uma fonte de tensão de 12Vdc a 15Vdc 1A de parede que é muito comum de se achar.  Na saída coloquei um borne de parafusos e também um conector fêmea USB A duplo para ligar os cabos USB para o Raspberry Pi.

A montagem eu fiz em uma plaquinha de 10 x 5 cm, face simples, desenhada a mão mesmo.





No teste, usei uma carga de 1,66 ohms (dois resistores de 4 ohms em paralelo com um de 10 ohms) para consumir perto dos 3A.  O consumo foi de 2,8A e a tensão na fonte ficou em 5,14Vdc.  Depois no teste com o Raspberry Pi 3, usei até o meu cabo USB mais longo de 2m e a tensão medida no barramento da plaquinha do Pi3 foi de 5,05Vdc (com teclado, mouse, wifi, Bluetooth tudo ligado e rodando programa Python), com mínimo de 4,90Vdc no boot.