aic.git
3 years agoMove irs21094-1.sys to external library. master
Walter Fetter Lages [Sat, 20 Aug 2022 02:12:53 +0000 (23:12 -0300)]
Move irs21094-1.sys to external library.

7 years agoFix .gitignore.
Walter Fetter Lages [Mon, 11 Jun 2018 16:59:43 +0000 (13:59 -0300)]
Fix .gitignore.

7 years agoFix bug in .gitignore.
Walter Fetter Lages [Wed, 23 May 2018 21:23:07 +0000 (18:23 -0300)]
Fix bug in .gitignore.

7 years agoRemove backup files. v2.4.0
Walter Fetter Lages [Tue, 22 May 2018 18:41:21 +0000 (15:41 -0300)]
Remove backup files.

7 years agoAdd ICSP interface.
Walter Fetter Lages [Tue, 22 May 2018 18:39:46 +0000 (15:39 -0300)]
Add ICSP interface.

Updated to use FreeRTOSV7.4.2.

Minor changes in Makefiles.

Included ISCP interface.

7 years agoReworked sorce tree. v2.3.0
Walter Fetter Lages [Tue, 22 May 2018 18:35:30 +0000 (15:35 -0300)]
Reworked sorce tree.

Reworked source tree.

Capacitor involucre sizes made invisible in schematics.

Created a workaround to fix a incompatibility between pic30-gcc 3.01 and
FreeRTOS.  See the hack 1 in the Hacks file.

7 years agoChange MOSFET driver to IRS21094. v2.2.0
Walter Fetter Lages [Tue, 22 May 2018 18:27:37 +0000 (15:27 -0300)]
Change MOSFET driver to IRS21094.

7 years agoFix encoder processing. lt1162 v2.1.9
Walter Fetter Lages [Tue, 22 May 2018 18:19:07 +0000 (15:19 -0300)]
Fix encoder processing.

7 years agoChange capacitors footprints. v2.1.8
Walter Fetter Lages [Tue, 22 May 2018 18:12:12 +0000 (15:12 -0300)]
Change capacitors footprints.

7 years agoInclude authors names in PCB. v2.1.7
Walter Fetter Lages [Tue, 22 May 2018 18:05:15 +0000 (15:05 -0300)]
Include authors names in PCB.

7 years agoFix PCB. v2.1.6
Walter Fetter Lages [Tue, 22 May 2018 18:02:49 +0000 (15:02 -0300)]
Fix PCB.

7 years agoChange footprints. v2.1.3
Walter Fetter Lages [Tue, 22 May 2018 17:59:59 +0000 (14:59 -0300)]
Change footprints.

7 years agoFix Capacitor symbols. v2.1.2
Walter Fetter Lages [Tue, 22 May 2018 17:57:38 +0000 (14:57 -0300)]
Fix Capacitor symbols.

7 years agoFix power lines in aicpower.sch. v2.1.1
Walter Fetter Lages [Tue, 22 May 2018 17:50:59 +0000 (14:50 -0300)]
Fix power lines in aicpower.sch.

7 years agoChange MOSFET driver to LT1162. v2.1.0
Walter Fetter Lages [Tue, 22 May 2018 15:46:24 +0000 (12:46 -0300)]
Change MOSFET driver to LT1162.

7 years agoFix bugs in PCB. max5062 v2.0.8
Walter Fetter Lages [Tue, 22 May 2018 15:32:36 +0000 (12:32 -0300)]
Fix bugs in PCB.

7 years agoFix bugs in PCB. v2.0.7
Walter Fetter Lages [Tue, 22 May 2018 15:22:27 +0000 (12:22 -0300)]
Fix bugs in PCB.

7 years agoFinish PCB. v2.0.6
Walter Fetter Lages [Tue, 22 May 2018 15:20:34 +0000 (12:20 -0300)]
Finish PCB.

7 years agoChange footprints. v2.0.3
Walter Fetter Lages [Tue, 22 May 2018 15:15:06 +0000 (12:15 -0300)]
Change footprints.

7 years agoIntegrate net interface in aicpic.sch. v2.0.2
Walter Fetter Lages [Tue, 22 May 2018 15:12:20 +0000 (12:12 -0300)]
Integrate net interface in aicpic.sch.

7 years agoSplit net interface. v2.0.1
Walter Fetter Lages [Tue, 22 May 2018 15:05:50 +0000 (12:05 -0300)]
Split net interface.

7 years agoRemove CNC files from wrong version.
Walter Fetter Lages [Tue, 22 May 2018 14:49:04 +0000 (11:49 -0300)]
Remove CNC files from wrong version.

7 years agoRemove PCB files from wrong version.
Walter Fetter Lages [Tue, 22 May 2018 14:46:51 +0000 (11:46 -0300)]
Remove PCB files from wrong version.

7 years agoChange processor to dsPIC30F4012 and MOSFET driver to MAX5062. v2.0.0
Walter Fetter Lages [Tue, 22 May 2018 14:25:19 +0000 (11:25 -0300)]
Change processor to dsPIC30F4012 and MOSFET driver to MAX5062.

7 years agoFix bug with math accelerator. tini v1.6.1
Walter Fetter Lages [Sun, 20 May 2018 06:29:45 +0000 (03:29 -0300)]
Fix bug with math accelerator.

Incluido destrutor virtual na classe AIC_COMM.

Alterada a implementacao da serializacao de valores double em
AIC_UDP::send_command().

Corrigido bug no processamento dos argumentos dos comandos AIC_USER0,
AIC_USER1, AIC_USER2 e AIC_USER3.

Incluido o diretorio /usr/src/linux/include, na variavel de ambiente
CINCLUDE.

Criada a classe Sputtering na biblioteca, para suportar a aplicacao de
controle do sputtering.

Criadas constantes com os bits de flags do pacote de status da AIC.

Processamento de comandos enviados para a AIC alterado para suportar
comandos definidos pelo usuario.

Modificado o arquivo lib/aicio/pwm.a51 para nao utilizar o acelerador
matematico, que estava gerando problemas de reentrancia.

Alterado o arquivo doc/Makefile para utilizar os nomes dos arquivos de
layout gerados pela nova versao (20060321) do PCB.

Criados os programas SputPIDweb, SputPIDDaemon e sputtering.

Renomeado o programa SputDaemon para SputWeb.

7 years agoChange the domain of the AIC java packate to br.ufrgs.ece. v1.6.0
Walter Fetter Lages [Sun, 20 May 2018 06:21:58 +0000 (03:21 -0300)]
Change the domain of the AIC java packate to br.ufrgs.ece.

Incluidos os esquematicos e o layout do PCB no arquivo de documentacao em pdf.

Criado o programa DoorWeb.

Criado o target upload nos Makefiles, para fazer o upload dos programas nas
AICs.

Criado o programa DoorOpen.

Removido o arquivo lib/aicio/motor.a51.  As variaveis globais estao agora
definidas em lib/aicio/motor.c.

Corrigido o problema na funcao pwm_set_duty(), que nao funcionava em tempo
real.  Os registradores do banco 1 nao podem ser utilizados em rotinas de
interrupcao.

Corrigido um bug na rotina native_initialize do PWM.  Estava sendo dado um
push de um registrador do banco 1, quando deveria ser do banco 0.

Criado o identificador de comando MOTOR_REF, para enviar para a AIC a
referencia para o PID implementadod pelo programa PIDDaemon.

Alterado o "dominio" do pacote AIC para br.ufrgs.ece.

7 years agoChange Makefiles to use variables defined in the main Makefile. v1.5.1
Walter Fetter Lages [Sun, 20 May 2018 06:12:52 +0000 (03:12 -0300)]
Change Makefiles to use variables defined in the main Makefile.

Criado o programa CmdDaemon, semelhante ao IODaemon, mas apenas recebe
comandos, sem enviar dados de sensores.

Reestruturados os Makefiles.  Agora os Makefiles nos diretorios utilizam as
variaveis definidas no Makefile no diretorio principal, ao inves de
redefini-las.  As redefinicoes sao feitas apenas nas (poucas) vezes em que
sao necessarias.

Removidas as declaracoes de variaveis globais em arquivos em Assembly e
criada uma funcao dummy para defini-las nos arquivos C, ja' que nao e'
possivel emitir Assembly in-line fora de funcoes.

7 years agoChange the Real-time in AIC to use the RTAI API. v1.5.0
Walter Fetter Lages [Sun, 20 May 2018 06:08:22 +0000 (03:08 -0300)]
Change the Real-time in AIC to use the RTAI API.

Criado o programa EncoderRtRead para teste do encoder em tempo real
utilizando as funcoes de ponto flutuante, ou seja, obtendo a leitura em
radianos.

Incluido suporte para ponto-flutuante.  Implementadas em C as funcoes de
interface que utilizam ponto flutuante.

Criados os programas EncoderRtTest para teste do encoder em tempo real.

Criado o programa MotorRtTest para teste do motor em tempo real, utilizando
as funcoes de ponto flutante.

Criado o programa PwmRtTest, para teste do PWM em tempo real em C.

Incluidas no aicio.h consantes com a frequencia de referencia, frequencia de
chaveamento, delay de turn-off e contagens maximas e minimas do PWM.

Programas de tempo real modificados para utilizar a API do RTAI (Real Time
Application Interface) para a TINI, ao inves de implementar diretamente todo
o tratamento de tempo real.

7 years agoCreate command daemon on AIC. v1.4.4
Walter Fetter Lages [Sun, 20 May 2018 06:00:17 +0000 (03:00 -0300)]
Create command daemon on AIC.

7 years agoFix bugs. v1.4.3
Walter Fetter Lages [Sun, 20 May 2018 05:55:16 +0000 (02:55 -0300)]
Fix bugs.

7 years agoCreate a real-time library to access the AIC hardware. v1.4.2
Walter Fetter Lages [Sun, 20 May 2018 05:43:36 +0000 (02:43 -0300)]
Create a real-time library to access the AIC hardware.

Criado o programa DoorDaemon, para implementar a abertura de uma porta
conectada no sinal de freio da AIC atraves da Internet, utilizando um
protocolo CHAP com sha-1.

Criada a biblioteca aicio.mpp.lib, com funcoes implementadas que podem ser
chamadas a partir de modulos de tempo real em C para acessar o hardware da
AIC.  Codigos fontes dos metodos nativos que acessam o hardware modificados
para usarem a biblioteca aicio.mpp.lib.

Criado o programa PID, que implementa em tempo real o prototipo de um
controlador PID, com transferencia de referencias e variaveis de saida entre
a interface com o usuario e o modulo de tempo real.

Criados os programas BrakeRtTest e IndexRtTest para de teste do freio e do
indice em tempo real em C.

7 years agoRemove temporary files.
Walter Fetter Lages [Sun, 20 May 2018 05:34:17 +0000 (02:34 -0300)]
Remove temporary files.

7 years agoAdd PID to run on AIC. v1.4.1
Walter Fetter Lages [Sun, 20 May 2018 05:21:20 +0000 (02:21 -0300)]
Add PID to run on AIC.

7 years agoFix bug in initializaiton of AIC_CAN and AIC_HOST_CAN. v1.4.0
Walter Fetter Lages [Sun, 20 May 2018 04:28:40 +0000 (01:28 -0300)]
Fix bug in initializaiton of AIC_CAN and AIC_HOST_CAN.

Corrigido bug nas inicializacao das classes AIC_CAN e AIC_HOST_CAN que
violava o padrao ISO C++ e impedia estas classes de serem compiladas com o
g++ 3.4.3.

7 years agoHardware access implemented im assembly as native methods in Java classes. v1.3.0
Walter Fetter Lages [Sun, 20 May 2018 04:09:57 +0000 (01:09 -0300)]
Hardware access implemented im assembly as native methods in Java classes.

Corrigido bug nas inicializacao das classes AIC_CAN e AIC_HOST_CAN que
violava o padrao ISO C++ e impedia estas classes de serem compiladas com o
g++ 3.4.3.

Alterados os nomes das classes utilizadas para sinalizar excecoes.  Foram
removidos os prefixos que podem ser deduzidos a partir da hierarquia de
classes.

Corrigido o log dos comandos no IODaemon no modo debug.  Agora e' logado o
codigo do comando em decimal.

Corrigido bug na classe HostCAN, que fazia com que a filtragem das mensagens
nao funcionasse.  O centro de mensagens 15 foi desabilitado.  A recepcao de
mensagens passou a funcionar no modo WriteOver.

Corrigido bug nos metodos Encoder::read() e Encoder::readAndClear().  O
calculo da conversao de numero de pulsos para radianos estava errado.

Removido o flag canWANT_EXCLUSIVE dos construtores das classes AIC_CAN e
AIC_HOST_CAN.  Com isto pode-se compartilhar a placa PCICAN entre
aplicacoes.

Criado buffer de mensagens estatico nas classes AIC_CAN e AIC_HOST_CAN para
armazenar as mensagens destinada as outras instancias da classe.

Criada documentacao on-line para a biblioteca em C++ e em Java utilizando o
Doxygen.

Eliminada a documentacao utilizando o javadoc.

Ajustados os Makefiles para criar os arquivos .runinfo utilizados pelo
RTAI-3.x.

Removido o periodo do programa pid.  Agora o controlador executa com ciclo
livre, temporizado pelo processo de amostragem.

Criado um destructor virtual para a classe AIC.  A falta deste destructor
causava erro de segmentacao quando da destruicao do objeto.

Alterados programas em C++ para permitirem a passagem na linha de comando do
numero da porta de status a ser utilizada (porta de comando no caso do
aicd).

Criados os programas BrakeApply e BrakeRelease.

Criada a macro RESTORE_STRETCH, utilizada nas biblotecas nativas para
retornar o strech ao valor original.

Criadas versoes das macros SET_STRETCH e RESTORE_STRETCH que nao geram
codigo.  Atraves de compilacao condicional as versoes que nao geram codigo
sao utilizadas quando o valor de strech e' negativo.  Esta caracteristica e'
utilizada para utilizar o valor de stretch default da TINI.

Alterados o esquematico e o layout do PCB para utilizar 6N137 ao inves de
6N136.

Alterados os Makefiles dos programas que necessitam do suporte do RTAI para
funcionarem com o RTAI-3.x.

Alterados programas de teste e aplicativos em Java para eliminar excessoes
de endereco invalido, que nao sao mais geradas pela classe AIC.

Metodos das classes Brake, Index, Encoder e PWM implementados em Assembly
como metodos nativos.

7 years agoChange application protocol from ASCII to binary. v1.2.0
Walter Fetter Lages [Sun, 20 May 2018 03:54:13 +0000 (00:54 -0300)]
Change application protocol from ASCII to binary.

Consolidadas as constantes definindo enderecos dos dispositivos na AIC na
classe PLD.  Consolidadas as constantes definindo bits do registrador de
controle na classe CtrlRegister.

Passou a ser utilizado o header iostream ao inves de iostream.h, conforme o
novo padrao de C++.  Esta adaptacao foi necessaria para compilacao com o GCC
3.3.2.

Alterados os codigos identificadores de comandos e status, por estarem
relacionados com a prioridade das mensgens no barramento CAN.  Os novos
codigos conferem uma prioridade mais adequada aos diversos tipos de
mensagens.  Alterada a documentacao para refletir as mudancas nos
protocolos.  Programas em C++ alterados para utilizar comunicacao CAN por
default.  A comunicacao por UDP e' suportada atraves de opcao na linha de
comando.

Alterado o protocolo de aplicacao de ASCII para binario, com alteracao no
prototipo das funcoes de baixo nivel para transmissao e recepcao de comandos
e status.

7 years agoAdd communication with hosts. v1.1.0
Walter Fetter Lages [Sun, 20 May 2018 03:22:54 +0000 (00:22 -0300)]
Add communication with hosts.

Documentados os protocolos de aplicacao e classes das bibliotecas.

IODaemon alterado para utilizar comunicacao CAN por default.  A comunicacao
por UDP e' suportada atraves de opcao na linha de comando.

Criada documentacao das classes em AIC.jar no formado javadoc.  Alterado o
Makefile para criar documentacao em doc/javadocs.

Programas em C++ alterados para utilizarem comunicacao por CAN por default e
por UDP quando compilados com USE_UDP definido.  Makefiles alterados para
compilar duas versoes dos programas.

Alteradas as classes utilizadas para representar excessoes.  Criada uma
hierarquia mais detalhada.

Alteracao na classe AIC_HOST, que tornou-se virtual.  Criadas classes
AIC_HOST_UDP e AIC_HOST_CAN, derivadas de AIC_HOST.

Alteracao da classe AIC, que tornou-se virtual.  Criadas classes AIC_UDP e
AIC_CAN, derivadas de AIC.

Alteracao na classe Host, que tornou-se abstrata.  Criadas classes HostUDP e
HostCAN, derivadas de Host.

7 years agoInitial commit. v1.0.0
Walter Fetter Lages [Sun, 20 May 2018 03:00:10 +0000 (00:00 -0300)]
Initial commit.

aic-1.0.0 based on TINI.