Programadores – O que se precisa saber antes de comprar um?

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Programadores – O que se precisa saber antes de comprar um?

Mensagempor rona123 » 20 Mai 2011 21:10

Quando se entra no universo dos microcontroladores existem diversas variáveis a serem definidas.

Quem escolhe a linha de microcontroladores PIC terá a sua mão um grande acervo de informações oficiais no próprio site da Microchip e uma série de projetos abertos na internet. Esse foi o principal motivo de minha escolha, quando resolvi voltar a mexer com microcontroladores.

Na seqüência dessa definição aparecem outras duvidas:

• Qual programador atende melhor as minhas necessidades?

• De todas as ofertas de programadores qual está mais alinhada com minhas necessidades?

Bom, a Microchip tem três linhas de programadores. Os industriais, programador de engenharia PICKIT e a linha ICD.

1- Os industriais têm custo elevado e tem sua aplicação direcionada a produção em escala.
Alguns fabricantes especializados oferecem Programadores Universais que considero o Programador Profissional típico.
Esses programadores universais aplicam o principio de driver de pino o que permite que os componentes sejam posicionados no soquete de programação de uma forma mais lógica e menos sujeita a erros. A lógica de controle direciona os sinais e tensões necessárias ao cumprimento do algoritmo de programação de cada dispositivo no pino adequado.
Esses programadores trabalham com uma grande quantidade de componentes programáveis de diversos fabricantes e logicamente são caros. Um fabricante tradicional desses produtos é a Data I/O.

Eu os considero profissionais por diversos motivos, mas o principal é a facilidade de programar qualquer dispositivo de qualquer fabricante, inclusive por porta ICSP (protocolo serial da linha Microchip).

2- No universo de engenharia aparece o PICKIT como programador USB de baixo custo. A versão mais popular é a 2 e recentemente foi lançada a versão 3. Houve muita reclamação inicial dessa terceira versão e na net se encontrava diversos comentários negativos sobre o produto. A versão 2 está consolidada e possui muito boa cobertura de dispositivos programáveis.
Interessante: Esses programadores simples possuem diversas capacidades adicionais alem da programação em si, como depuração de programas, analisador lógico, ferramenta de monitoração de dados seriais UART, etc.

3- In Circuit Debuggator – a linha ICD é uma ferramenta que nasceu com a missão de depuração de programas. Apesar do PICKIT executar essa tarefa, os ICDs a fazem com maestria peculiar. Com o ICD, se acompanha a execução do firmware rodando junto o hardware da aplicação permitindo a verificação dos eventos na tela do MPLAB monitorando ações e conteúdo de registros de forma a se poder aperfeiçoar o código ou / eliminar falhas de lógicas ou funcionais. O acompanhamento dos eventos previstos no firmware é feito em praticamente tempo real dentro da plataforma MPLAB. Depurar programas não é uma tarefa fácil. É necessário um bom conhecimento funcional do microcontrolador aplicado, da lógica do hardware de aplicação e são necessários uma série de procedimentos para se entrar em modo de depuração. Desenvolvedores mais avançados preferem os ICDs aos programadores. Ainda assim os ICDs são programadores.
O ICD2 é o produto mais tradicional nessa área. O ICD3 é novo e ainda tem um custo alto e aplica componentes muito específicos que dificulta a criação de clones de baixo custo. Tenho um, e ele é mais rápido que o ICD2, mas prefiro usar o ICD2 por possuir a tecnologia e também conhecer muito bem a plataforma e suas funcionalidades.

4- Existem plataformas de programação serial de baixo custo usando diversos programas gratuitos na web que podem atender o iniciante ou hobbista. O grande atrativo dessas ferramentas é justamente o preço bem baixo, mas são plataformas que possuem um fator de risco maior que os programadores que seguem as especificações MICROCHIP. Alem disso são baseados em porta serial de PC que está se tornando extinta, principalmente em laptops.

A ferramenta básica para a definição da ferramenta de programação, das possibilidades da ferramenta e das necessidades de acessórios é o MPLAB. Na tela de seleção de componentes se verifica genericamente quais programadores e depuradores são funcionais com cada dispositivo alem da necessidade de acessórios específicos para depuração.

Outro aspecto a se considerar na compra de uma ferramenta de engenharia é a proposta do fabricante associada com o produto. Os dispositivos mais baratos, normalmente possuem limitações funcionais e são totalmente descartáveis. Mesmo o PICKIT original são descartáveis, pela dificuldade geral em se substituir componentes SMD.
Produtos de origem chinesa certamente não possuirão um bom suporte (a menos que você fale mandarim e esteja disposto a fazer ligações internacionais). Projetos simplificados terão menor custo e possuirão limitações na sua funcionalidade.
O ICD2 possui interface USB proprietária para garantir a maior velocidade possível em operações de depuração. Alguns clones aplicam driver USB diferente da Microchip e criam limitações de funcionamento.

Outro aspecto a se considerar é o material que acompanha o produto e a existência de um manual de usuário que apresente o produto adequadamente. Manuais impressos não são ecologicamente corretos e a lista de materiais é exigência de órgão de defesa do consumidor. Produto responsável é melhor para todos!

Outro detalhe importante é que esses programadores são ferramentas ICSP onde a programação e a depuração é executada com poucas linhas de comunicação. O uso de soquete ZIF é uma técnica para facilitar produção e recomendo a todos os iniciantes que aprendam a usar essa sistemática visto que a depuração de programas somente poderá ser executada dessa forma. A conexão ICSP possui diversas variáveis, os ICDs usam RJ12, o PICKIT usa barra de pinos fêmea e os programadores universais usam conector de 10 vias. Essa foi a razão para o fornecimento com o programador um alojamento para que o comprador construísse seu próprio cabo ICSP.

Enfim, não é por que é um clone que precisa ser necessariamente pior que o original. Por exemplo, o PICKIT original possui limitação de alimentação para a função de programação remota. Meu clone possui entrada auxiliar que facilita aplicação e de quebra permite contornar deficiência de alimentação USB.

Recentemente, um colega de fórum me perguntou por que oferecia um pacote promocional com os dois programadores. A resposta é dada pelo próprio MPLAB. Dependendo do dispositivo que se deseja trabalhar, se precisa de uma ou outra ferramenta. Mesmo nos casos onde as duas ferramentas são funcionais, ter uma unidade de reserva para eventualidades ou mesmo quando ocorrem situações estranhas nos procedimentos de programação se tem alternativa para desvendar o mistério. Como muitas vezes se tem a necessidade de trocar o dispositivo em trabalho, existe a possibilidade da ferramenta em mãos não opera com o novo componente. Ex PIC16F84A e PIC16F74 são programados pelo ICD2 e não pelo PICKIT2. Com esse kit se cobre praticamente TODA linha Microchip.

Abri essa discussão para apresentar meus conceitos e ajudar os iniciantes a escolherem suas ferramentas. Claro que sempre é possível contestar conceitos, mas sempre se deve fazer isso com respeito. O valor de qualquer produto é proporcional ao custo ao suporte e a funcionalidade. Quem tiver limitação de gasto certamente fará a escolha pelo custo, para quem pretende uma vida útil maior de sua ferramenta o critério de compra já é diferente.
Alem disso existem diversos projetos abertos na internet. Para quem tem tempo e deseja encarar o desafio de fazer sua própria ferramenta essa é uma possibilidade a comprar um produto funcional, é tudo uma questão de escolha de algo que seja realmente funcional e de contornar as dificuldades que aparecem.

Abraço
Rona123
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Possuidores de ICD3

Mensagempor rona123 » 31 Mai 2011 09:08

Prezados

A Microchip anunciou uma falha nas primeiras versões de ICD3 que pode comprometer o nivel na entrada MCLR e não permitir que o ICD3 entre em modo de depuração.

A correção do bug de hardware é feita pela substituição de dois resistores SMD de 1K por resistores de 100R. Eu coloquei mini resistores de 150R em paralelo com os SMD.

Maiores detalhes podem ser encontrados na pagina oficial do ICD3 no site
da Microchip.

Nem sempre os problemas encontrados em nossos projetos são criados pela gente (rsrsrs)

Abraço
rona123
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor tcpipchip » 31 Mai 2011 09:52

Pense tambem nos gravadores GANG...caso voce grave centenas de chips mes...
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor rona123 » 31 Mai 2011 10:04

Sim é fato.

Em algumas situações é interesante se gravar grupos de componentes. Normalmente multiplos de 4.

Esses gravadores usam o principio de Pin Driver e são bem produtivos.

Existe muita coisa para atender a area industrial.

Obrigado pela lembrança.
rona123
Editado pela última vez por rona123 em 26 Jul 2011 19:57, em um total de 2 vezes.
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor RobL » 31 Mai 2011 19:47

Quem escolhe a linha de microcontroladores PIC terá a sua mão um grande acervo de informações oficiais no próprio site da Microchip e uma série de projetos abertos na internet. Esse foi o principal motivo de minha escolha, quando resolvi voltar a mexer com microcontroladores.


De acordo, se for para iniciar em microcontrolador, como um primeiro passo, para quem for ter contato com assembly, mas sem perder de vista que os PICs foram criados para trabalhos como simples periféricos (PIC).
O boom dos PICs foram entre 1990 e 2000. Desta data em diante, surgiram outras alternativas.
É necessário que o iniciante tenha noção da importância de um stack real, conjunto de instruções mais favorável para compiladores C e um tratamento de interrupção mínima, por hardware.
Portanto, para iniciar, aprender, um PIC é interessante, mas seu primeiro trabalho profissional hoje, deve estar em um micro de 32bits. Isto não significa deixar de usar um PIC em uma simples tarefa, bem simples, para não complicar.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor rona123 » 03 Jun 2011 17:54

RobL,

Abraço,
rona123
Editado pela última vez por rona123 em 17 Ago 2011 22:18, em um total de 4 vezes.
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor RobL » 03 Jun 2011 21:52

Penso ser oportuno e sem intenção de ser preconceituoso o que coloquei. Vou ampliar mais ainda para dirimir dúvidas.
Veja que terminei acima dizendo que não é para deixar de usar Pics para tarefas simples.

O que temos hoje são chips que se quer necessitam de um hardware programador, ou seja, por que se procurar com um aparelho programador ?
Hoje já se parte para um hardware debugador, nada tão irritante e limitado como um ICD2.

Os chips modernos, mesmo os de 8 bits, vem preparado com hardware interno para conversar com o debugador. Muitos já vem com o bootloader programado. É só gravar do PC direto para o chip.

É louvável sua contribuição e sua empolgação com os PICs, mas da mesma forma, preocupa-me, do ponto de vista educacional, o tratamento para os PICs como o chip, para os dias de hoje. Apenas coloquei e repito que após o ano 2.000, ou seja, há 11 anos, diversas outras opções passaram a existir, sem as limitações dos PICs.
Citei algumas razões acima, como o set de instruções, falta de stack real, banqueamento, etc, etc.
Tenho diversos produtos com PICs. Só que migro todos para outras plataformas. É um alívio. Não me preocupei com nada que tinha que ter atenção, no uso dos PICs. Quer comparar poder ter um OS preemptivo de fato, para manutenção e ampliação de seus produtos ?

Continuo usando PICs, especialmente o 12F675, não abro mão dele nos trabalhos simples, mas chamo atenção para que o profissional conforme avance e passe a necessitar de algo mais, compare a linha PIC18 e 24 com a de outros fabricantes, com cores ARM, Mips, AVR32, Xmega 8/16bits, cores Freescale e outros, especialmente os Cortex M0 e M3.
Hoje um Cortex M0 simplifica enormemente projetos "simples" e "complexos" feito com PICs. A quantidade de material disponível na internet nessa linha é também considerável. E é com essas informações que espero estar contribuindo com este post.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor rona123 » 03 Jun 2011 23:39

RobL

Abraço
rona123
Editado pela última vez por rona123 em 17 Ago 2011 22:18, em um total de 5 vezes.
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor andre_luis » 04 Jun 2011 09:20

olá RobL,


Sem querem criar polêmica a respeito do assunto, mas assim como o PIC, já vi alguns outros microcontroladores de 8 bits realizarem tarefas que anteriormente duvidaria da capacidade. Mesmo com a família 16F é posível elaborar muitas soluções de alto nível. Na indústria se vê mais PIC do que poderíamos supor.

O fato é que a velocidade atualmene alcancada é tal que ( mesmo na arquitetura RISC ), com uma boa programação conseguimos otimizar bastante a performance e contornar as limitações inerentes á arquitetura.

O grande mérito da Microchip foi de ter difundido uma arquitetura muito simples e bem documentada, o que conquistou um público notável, ainda na programação em assembly.

O problema é que muitas pessoas não programam com a filosofia apropriada para as plataformas de periféricos, abusando de Delays, Loops, Divisão (intrínsecas) em float, etc...

Assim, considerando uma certa verdade o que voce disse com relação á potencia de um 32bits, devemos entretanto render aos PIC o devido espaço que merece, pois é utilizado em relativamente larga escala não somente em tarefas tão simples.


+++
"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_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor rona123 » 04 Jun 2011 10:49

Andre,

Muito Obrigado por sua participação. Voce resumiu de forma bem objetiva o que estava tentando dizer ao nosso colega RobL.

Bem, comecei essa discussão para ajudar as pessoas que têm dúvidas em relação as ferramentas. Peço aos colegas que façam comentários nesse sentido.

Existe muita dúvida e informação desencontrada sobre essas ferramentas e criei esse espaço para ajudar.

Abraço,
rona123
Editado pela última vez por rona123 em 26 Jul 2011 19:59, em um total de 1 vez.
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor RobL » 04 Jun 2011 15:14

O problema aqui parece que ficou entre duas palavras, simples e complexo.
Tarefas simples, parece pejorativa.
Nada disso.

Simples para um micro de 8 bits é fazer tarefas super complexas que fossem somente em 8 bits. Por exemplo decrementar n vezes um byte, no intervalo de 0 a 255. Atender interrupções, todas com operações em um byte, ou ainda um conjunto complexo de operações em um byte. Isto é simples para um micro de 8 bits. Aí, ele é o bicho. Mas veja que deixa de ser e por várias razões :

Decrementar 2 bytes já começa o problema. Piora com 3, 4 ...16 bytes.
Multiplicar um valor com 2 a 3 bytes pode render de 80 a 100 intruções e vários ciclos!!!! É uma tarefa simples, mas ficou complexa (difícil) para um micro de 8 bits.

Suponha que este micro tenha que atender várias interrupções e multiplicar outros valores similares aos acima.
Um micro com 32 bits faria em uma só instrução e em um só ciclo.!!!!
Ainda que um micro de 8 bits tenha um hardware multiplicador, essa tarefa ainda consome algo em relação a um micro de 32 bits.

Ainda que um micro como um AVR Xmega (8 bits) com DMA, Multiplicador por hardware, uma instrução por clock do oscilador (e não dividido por 4 como nos pics), sistema com interrupção determinístico, 32 registros work (contra um só do PIC 16, 18 ) não é uma tarefa simples, para determinados cálculos como acima, mas já é bem melhor.

Mas há uma outra vantagem nos micros de 32bits, a questão da qualidade do sistema, como um todo (sw + hw).
Esses micros já nasceram com um sistema de interrupção por falha ( exceção ).
Pode-se tratar um erro por um simples ruído, ou degeneração de um bit, over flow, etc, por uma interrupção específica, para cada caso.
Tudo isto pelo preço menor que um PIC!!!
Ninguém disse que um PIC não é capaz de fazer coisas de impressionar, mas podemos faze-las com muito mais segurança, simplicidade e menor preço.

Em outras palavras: Um simples Cortex M0, com preço de US$1.00 (um dollar) faz tudo o que um PIC16, 18, 24 faz, só que ficará batendo o pé, lhe perguntando, o que mais ? Um kit de desenvolvimento já com o compilador até 128Kb de flash custa 20 Euros. Não entendeu ? Sim por este preço você tem um compilador, um debugador, uma IDE bacana e poderosa e uma placa com um JTAG mais um chip com portas expandidas por uma barra de pinos. Nada de ter que comprar programador, caros debugadores que não funcionam, etc.

É só isso que tento dizer.

Para os afoitos, devagar. A migração não é simples, há vários fatores a considerar.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor andre_luis » 05 Jun 2011 13:57

RobL,


O PIC nasceu com o propósito específico de competir com a família de microcontroladores 8051; como diz o próprio nome : Peripheral Interface Controllers.

Como uma facilidade incomum de programar em assembly, conquistou o público amador que em seguida se tornou profissional.
Não coincidentemente, a linha de produtos da Microchip também amadureçeu, talvez pra atender á evolução das demandas desse público cativo.

O PIC não foi concebido para se suportar um sistema embarcado e a comparação de performance com qualquer core de 32 bits parece obviamente desfavorável.

Ainda acho que cada core tem seu espaço no mercado, e isso deva ser estimulado. ( Embora 8bit por 8bit, eu particularmente prefira os PSoC da Cypress, mas é minha opinião )

Fica novamente a impressão de que qualquer contribuição entusiasta á algum core de 8 bits desse fórum, possa ser derrubado por um benchmark coringa ( que eu gostaria de ver ) de custo/performance. Na verdade, na grande maioria das aplicações, sobra capacidade de processamento, mesmo sem otimização.


+++
"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_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor rona123 » 17 Ago 2011 16:13

Como o tema da discussão foi desvirtuado, resolvi colocar um exemplo de aplicação aberta de um assunto que me chama muito a atenção.

Se trata de uma aplicação de microcontrolador Microchip de 8 bits da série 18F para controle de pré-amplificador de áudio. Trata-se de um projeto totalmente aberto direcionado a audiofilia onde se contempla a interação de banda larga de frequência, baixo nível de ruído e interação entre controle digital na parte analógica.

O projeto usa controle remoto dentro dos protocolos RC5 e RC6; o firmware é atualizado por Bootloader USB com aplicativo também aberto; o programa é escrito e C e todas as bibliotecas personalizadas estão abertas.
No site existe informação de base detalhada de todos os detalhes do projeto.

Hardware:
http://jos.vaneijndhoven.net/relaixed2/index.html
Software:

http://relaixed2.svn.sourceforge.net/

Aproveitem! É um trabalho de alto nível e no site existem outras aplicações Microchip.
O sujeito era pesquisador da Philips e trabalha agora na NXP(componentes) e aplica Microchip em seus projetos.
Abraço
rona123
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

Mensagempor rona123 » 05 Dez 2011 04:47

up
rona123
Byte
 
Mensagens: 214
Registrado em: 07 Mai 2009 20:01

quero + respostas pra minha duvida

Mensagempor landsun » 08 Jun 2012 15:01

to na neura de compra um programador

Andei ouvindo e lendo(Obrigado FabioSom) boas referencias, mas quero mais opinao. Amo muito tudo isso (meu rico dinheirim)

Valeu
landsun
 
Mensagens: 4
Registrado em: 02 Jun 2012 21:06

Próximo

Voltar para PIC

Quem está online

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

cron

x