Entrar    Registrar
  • Autor
    Mensagem

Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 26 Dez 2016 11:12

Pessoal,


Estou fazendo um projeto a toque de caixa, e o modo mais rápido encontrado foi usando uma placa Ardoino MEGA2560 pra fazer o projete mostrar sua cara ao mundo. Porém, como previsto, alguns gargalos da plataforma -ino vão me atrapalhar bastante, como por exemplo da "linguagem" Arduino não oferecer suporte á interrução serial, digo, não há um vetor de interrupção ISR, mas apenas um polling do buffer de recepção de cada serial.

Porém nessa nova etapa agora preciso de mais performance, já que vou estar trabalhando com 3 UARTs recebendo dados sem parar e gostaria de programar em C e gravar diretamente no uC da placa. Alguém poderia indicar um gravador, e um compilador free que suporte essa família ? Será que posso fazer isso pelo proprio conector USB da placa ? ( confesso que não pesquizei se há um bootloader nativo nesse core, mas estou ainda procurando informações ).


AT+
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor pamv » 26 Dez 2016 12:24

A parte de interrupção do Arduino realmente deixa muito a desejar.
Eu usei o usbasp para regravar o bootloader padrão do Mega, o usbasp (http://www.fischl.de/usbasp/ ) fala direto com o Mega pelo conector ISP, quanto ao compilador, sempre tem o gcc a mão, no caso do seu produto não dá pra usar o ATMEL Studio free? (confesso que instalei mas não li a licença pra uso comercial).
pamv
Byte
 
Mensagens: 486
Registrado em: 20 Jun 2016 21:47

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor eletroinf » 26 Dez 2016 15:25

Pelo que eu já entendi do arduino, a tal "linguagem arduino" seriam as libs e funções pré-prontas.
Do que eu mexi até então é perfeitamente possível utilizar as interrupções, configurar pinos, SFRs, etc, tudo "na mão", pois o compilador é o GCC, o mesmo do Atmel Studio.

Logo, a maior e mais drástica limitação do Arduino é não ter debug. Em termos de linguagem, pode usar o C esquecendo aquelas libs pré-prontas.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 723
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor pamv » 26 Dez 2016 15:40

eletroinf escreveu:Pelo que eu já entendi do arduino, a tal "linguagem arduino" seriam as libs e funções pré-prontas.
Do que eu mexi até então é perfeitamente possível utilizar as interrupções, configurar pinos, SFRs, etc, tudo "na mão", pois o compilador é o GCC, o mesmo do Atmel Studio.

Logo, a maior e mais drástica limitação do Arduino é não ter debug. Em termos de linguagem, pode usar o C esquecendo aquelas libs pré-prontas.


O arduino toma pra si algumas coisas do avr, você pode passar por cima disso tudo se sobrescrever e usar a placa "nua e crua" ou "na mão" como você diz, senão você vai compartilhar seu programa coisas que a "linguagem arduino" usa, como os interrupts, sem muito controle desse compartilhamento. Não se trata de limitações da placa ou do avr e sim desse ambiente que é carregado junto com o seu programa.
pamv
Byte
 
Mensagens: 486
Registrado em: 20 Jun 2016 21:47

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 26 Dez 2016 22:39

pamv escreveu:A parte de interrupção do Arduino realmente deixa muito a desejar.
Eu usei o usbasp para regravar o bootloader padrão do Mega, o usbasp


De fato, e nesse meu projeto, uma das chatiçes é ter de lidar com um GPS, que até então eu não havia me dado conta da quantidade gigantesca de bytes que envia a cada segundo, e numa formatação difícil de lidar, e ainda tem mais 2 seriais que podem receber dados eventualmente. Acho que vou ter de usar uma tnterrupção externa de I/O ( suportada pela plataforma ), digo, um pino de INT conectado ao RX, para que já no Start Bit dessa UART de maior prioridade, o loop() ignore qualquer outra Serialx.available(); será que essa ideia funciona ? Ou então vou ter de alocar numa janela estreira de tempo a leitura do GPS, enfim, quebra-cabeças pela frente.

Bacana esse usbasp, acabei de fazer a compra de 2 desses gravadores ( 10 reais vindo da China ), e inclusive vou mudar a pinagem padrão do ICSP do arduino de 6pinos para esse gravador aí de 10pinos na placa que estamos desenhando. Quanto ao compilador, também estou instalando o Studio, que pela pouca exigencia de recursos do projeto deve dar conta do recado.

Mas, obviamente, se eu gravar algo na placa via ICSP, deixa de ser um Arduino, mas se for necessário ( embora pouco provável ), consigo restaurar o firmware do Arduino alí, correto ? Sei que a pergunta é tola, quase retórica, mas vai que eu esteja deixando algo escapar...
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor pamv » 26 Dez 2016 23:05

Mas, obviamente, se eu gravar algo na placa via ICSP, deixa de ser um Arduino, mas se for necessário ( embora pouco provável ), consigo restaurar o firmware do Arduino alí, correto ?


Sim. É só regravar o bootloader original que ele volta a ser um Arduino Mega "padrão"
pamv
Byte
 
Mensagens: 486
Registrado em: 20 Jun 2016 21:47

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 27 Dez 2016 10:53

pamv escreveu:Sim. É só regravar o bootloader original que ele volta a ser um Arduino Mega "padrão"


Rapaz, vou explorar um pouco mais da sua experiencia/conhecimento com essa familia de micocontroladores.
Ainda acho que algo terrivelmente obvio está me escapando despercebido.

O fato é que nessa nova placa que estamos desenhando, há apenas o IC3 ( ATmega2560 ) mas não incluimos o IC4 ( ATmega16U2 ), que está presenta na placa original, conforme diagrama abaixo. A função desse outro é supostamente de uma especie de bootloader/interface com a porta USB:

arduino_mega_2560_schematic_.gif

Removemos esse componente porque de acordo com o Blog abaixo, é possivel gravar um Sketch num uC stand alone, a partir de um Arduino fincionando como gravador ICSP: Use Arduino as an ISP programmer to program non-Arduino AVR microcontrollers

atmega-16-624x180.png

Pelo que entendi, da maneira como estou fazendo: Matando o 2o uC da placa original no projeto da nossa placa, e usando um outro Arduino externo para gravar nessa placa, desse modo ou poderia gravar um programa -ino nessa nova placa normalmente, e mais, se eu mantiver 2 conectores ICSP na placa, um de 10pinos e outro de 6pinos, ainda poderia tornar a placa compativel para fazer a gravação a partir de um outro compildor ( ex.: ATMEL Studio ), agora em C via o usbasp.

Será que estou raciocinando tudo corretamente, ou ficou algo pra trás ?


AT+
Você não está autorizado a ver ou baixar esse anexo.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor pamv » 27 Dez 2016 13:17

Eu penso que o programa -ino pode checar a presença de um ATmega16U2 e falhar se não encontra-lo pois ele é usado pra comunicação com o PC.
Já no caso de um programa C compilado no Studio, que não pressupõe a presença de um atmega16 isso não deve acontecer.
pamv
Byte
 
Mensagens: 486
Registrado em: 20 Jun 2016 21:47

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor JeanPaul » 27 Dez 2016 14:20

O colega Pamv está certo.

Tentamos gravar uma placa que desenvolvemos aqui com um programa -ino usando a ICSP, não rodou de jeito nenhum.
O curioso é que o mesmo programa, gravado num chip que estava numa dessas placas -ino, rodou quando trocamos os chips das duas placas.(uma pela outra)

[]'s

Jean Paul
JeanPaul
Byte
 
Mensagens: 176
Registrado em: 12 Out 2006 21:27
Localização: Florianópolis -SC

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 27 Dez 2016 16:18

Obrigado Jean, era isso que eu temia, mas ao menos agora já sei que vou ter de abandonar definitivamente o desenvolvimento no ambiente do Arduino ( que confesso é um alívio ! ) e codificar em C, que tá na minha zona de conforto. Bom, já consegui instalar o Atmel Studio, que tá rodando sem erros, ok. Proximo passo, direcionar um programador.

Só que agora tenho outro problema pra etapa de desenvolvimento: Não tenho o gravador USBAVSP. Se entendi corretamente, com o firmware do link abaixo do AVRDUDE, posso utilizar um Arduino como gravador de arquivo tanto de HEX de um Sketch compilado no INO, mas também qualquer outro HEX compilado do C para um ATmega:

https://learn.sparkfun.com/tutorials/po ... ng-avrdude

O chato é que essa coisa parece não ter uma interface GUI, mas tudo via linha de comando...

Mas Jean, a propósito, como foi que voce resolveu o problema da falta do outro uC ?
Com uma abordagem diferente da que estou visualizando acima ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor eletroinf » 27 Dez 2016 17:15

Tem o ProgIsp, pra programar Atmel. Eu usava ele com aqueles programadores chineses de $ 2,00 do ebay:

http://www.electrodragon.com/w/ProgISP

Obs: tem interface english.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 723
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor pamv » 27 Dez 2016 17:16

andre_teprom escreveu:
Só que agora tenho outro problema pra etapa de desenvolvimento: Não tenho o gravador USBAVSP. Se entendi corretamente, com o firmware do link abaixo do AVRDUDE, posso utilizar um Arduino como gravador de arquivo tanto de HEX de um Sketch compilado no INO, mas também qualquer outro HEX compilado do C para um ATmega:

https://learn.sparkfun.com/tutorials/po ... ng-avrdude

O chato é que essa coisa parece não ter uma interface GUI, mas tudo via linha de comando...


Eu instalei um GUI para o avrdude que se usa junto com o usbasp. É o khazama (http://khazama.com/proJect/programmer/), o avrdude é tão direto de usar que eu imagino que isso deve funcionar também com esse Pocket AVR Programmer do link.

Mas pelo que entendi você usar um Arduino para programar um AVR, nesse caso eu acho que este link é mais apropriado, mas eu não testei

http://www.instructables.com/id/Integra ... el-Studio/
pamv
Byte
 
Mensagens: 486
Registrado em: 20 Jun 2016 21:47

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 27 Dez 2016 20:41

ArduinoISP

Não havia reparado nesse Sketch nos exemplos.
Acho que isso resolve o problema por enquanto.

Obrigado.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor JeanPaul » 28 Dez 2016 07:28

André,

Como foi o cliente que nos procurou com o kit em mãos e ele não entendia nada do que estava fazendo (ia copiando exemplos da net e juntando cada vez mais shields), consegui convencê-lo à migrar para um chip da Texas. Claro, havia tempo e recursos disponíveis para tal mudança.

Dessa forma não precisei resolver o problema em questão.
Sendo sincero ... não estava com a mínima disposição para resolver isso e continuar trabalhando com os –ino.

[]’s

Jean Paul
JeanPaul
Byte
 
Mensagens: 176
Registrado em: 12 Out 2006 21:27
Localização: Florianópolis -SC

Re: Migrando : ATmega2560 [ Arduino para Microcontrolador ]

Mensagempor andre_teprom » 28 Dez 2016 09:17

JeanPaul escreveu:não estava com a mínima disposição para resolver isso e continuar trabalhando com os –inol


Eu também não, no começo achei que fosse acelerar o processo de desenvolvimento, mas se mostrou uma furada.
De qualquer modo, no meu caso o tempo é curto, e também quero manter o desenvolvimento no ATmega, e com as dicas acima acho que resolveu.

Obrigado.
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_teprom
Dword
 
Mensagens: 5231
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Voltar para ARDUINO

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron