Ir ao conteúdo

Posts recomendados

Postado

Bom dia pessoal, eu estou migrando da plataforma arduino p pic e estou comeando com o pickit 3, por ver em vários fóruns que este é o melhor gravador e tal. E é o seguinte, possuo dois pics, o 16f628a e o 16f770a, e estou com uma dúvida.

Recentemente me deparei com um projeto ao qual teria de enviar comandos pelo pc e o chip respondia. No arduino isso é possível graças ao monitor serial. Mas teria alguma espécie de monitor serial no pic? para fazer a comunicação com o pc? dei varias googladas e vi um tal de chip rs 232 ao qual usa as mesmas entradas do um plug de monitor, ate explicando como faz as ligações, so que eu queria algo tipo plug-and-play, com saída usb e tudo mais. Procurei aqui mesmo no tutorial, foruns, mercadolivre,etc. E no caso de usar o monitor serial, uso o programa mplab com compilador C CCS e pra gravar o arquivo .HEX uso o propio pickit3 programa, que reconhece o mesmo quando é instalado.Se não der pra fazer essas comunicações nesses 2 pics, qual pic daria? Desde já agradeço a todos que prestarem um pouco de sua atençao no meu tópico e um grande abraço.

Postado

@lucianolcoa ,

 

Claro que é possível..., mas não tem nada disso nativo dentro de um Pic. Precisaria implementar um programa monitor para isso !

 

Você pode implementar isso no seu próprio programa quando fizer a gravação. 

 

Para fazer uma comunicação serial com o PC, você precisa de um conversor serial - USB, que receba os níveis TTL do PIC e transformem em USB para poder passar ao computador.

 

Não é um problema com esses modelos de Pic, aliás esse problema todo microcontrolador tem... você tem de lembrar que o Arduíno não é um simples microcontrolador... é uma PLATAFORMA de Desenvolvimento, e quando você compila um programa para ele, utilizando a linguagem nativa dessa plataforma, você está usando funções de comunicação serial que estão definidas na própria linguagem. E dentro do Arduino já existe o conversor serial - USB , que permite você se comunicar com o PC. Aliás, para uma melhor informação ; esse "conversor" nada mais é do que um segundo microcontrolador, o qual temos acesso a reprogramar se quisermos. Alguns usuários encontram usos bem avançados, como reprogramar esse segundo microcontrolador para gerar vídeo, ou para outro uso como um co-processador auxiliar.

 

Se você quiser fazer a comunicação entre esses Pics que você tem e o PC, vai ter de usar um simples conversor TTL serial para USB, além , claro, de implementar um tipo de "programa monitor serial" para fazer o que você deseja.

 

Por curiosidade.... a migração natural seria você sair do Arduino e ir para os Avrs .... qual o motivo de você estar migrando para os Pics ?

 

Paulo

Postado

Avrs eu não conheço, o que seria isso? Apenas li em alguns fóruns que o pic é o arquirival do arduino. INclusive existe bastante vídeos de pessoas no youtube comparando os dois *pic e arduino*, é como se fosse pepsi e coca-cola.

Em meio a gama exagerada de informações que eu li, vi ue o pic tem algumas vantagens sobre o arduino em relação a capacidade de memória física de um chip em particular, sua velocidade de processamento e armazenamento de eeprom e tal.

E como principal desvantagem existe a sua dificuldade de programar e estabelecer uma plataforma seja ela baseada em c++ ouu assembly, em relação ao pic, o arduino voce programa dormindo.

 

Mas o pic é um mundo novo pra mim, ate hoje so fiz um programa *teste* nele.

Esse conversor ttl que voce fala e este daqui?

http://produto.mercadolivre.com.br/MLB-705790914-adaptador-usb-serial-ttl-conversor-cp2102-rs232-p-arduino-_JM

Postado

@lucianolcoa ,

 

Nossa, quanta informação errada.... quem falou isso que você citou acima está totalmente enganado !

 

A linha AVR, utilizada nos Arduinos, são microcontroladores da Atmel, que na verdade compreende duas famílias : os Atmega  e os Attiny . Ambos possuem um desempenho de processamento 4 vezes superior aos Pics 16F ou 18F . No mesmo preço, um AVR terá mais capacidade de processamento, capacidade de memória de programa capacidade de memória EPROM, e finalmente capacidade de memória SRAM, do que um PIC 16F ou 18F.

 

A Arquitetura PIC é da década de 1990, e a dos AVR's é da década de 2000, são 10 anos de diferença !

 

O PIC 16F ou 18F não leva nenhuma vantagem comparado aos AVR's na mesma faixa de custo.

 

Por exemplo, um Atmega328 em formato DIP pode rodar a 20 Mhz, tem 2K de memória SRAM, 512 bytes de EEPROM, e 32K de memória de programa. Custa uma bagatela, R$ 5,10 HOJE, comprando no Ebay !

 

Tente achar um Pic em formato DIP que custe R$ 5,00 no Ebay, e compare ele....

 

Um Pic precisa de 4 ciclos de clock para fazer uma instrução, enquanto em um Avr a grande maioria é feita em apenas 1 ciclo de clock. Isto significa que um Pic rodando a 20 Mhz equivale a um Avr rodando a 5 Mhz !!!! E os Avrs ainda possuem um set de instruções bem mais poderoso do que os Pics comuns.

 

Quanto a linguagens de programação, existem boas linguagens para ambas as plataformas. O melhor compilador C para o Pic não é gratuito, você tem de comprar. Já para os Avrs, é de graça.

 

Eu programo em Basic para os Avrs, e faço qualquer coisa que seja preciso, pois posso misturar Assembly quando necessário dentro de meu programa em Basic. Nunca gostei de C.....

 

A minha pergunta que fiz no tópico anterior foi por causa que você sair de um Arduino Uno, que tem como coração um AVR Atmega328 rodando a 16 Mhz e ir para um PIC é um Downgrade, e não um Upgrade !

 

voce pode também programar o seu Arduino usando a linguagem C, pode comprar um programador USBASP que é baratinho e gravar utilizando o conector disponível para isso no Arduino.

 

Paulo

 

 

 

 

 

 

 

 

 

Postado

Paulo, valeu pelas suas dicas me ajudou bastante.

Agora entendi o lance de comunicação com monitor e serial e pic, pelo pouco que tinha visto. É bastante complicado fazer o bixim ligar, comparar com o arduino* no quesito programação pelo menos* é comparar o céu com a terra.

Novamente muito obrigado.

Postado

@lucianolcoa ,

 

O Arduino, desde que foi lançado, acumulou muita informação, muita gente fez programas e bibliotecas para ele, e claro que assim os resultados acontecem muito rápido.

 

Quase tudo que é CI interessante tem uma biblioteca que alguém já deixou prontinha para o Arduino !

 

Agora, querer aprender a programar qualquer microcontrolador, a partir de uma linguagem como o C, sem ter as bibliotecas adequadas ao compilador, é muito difícil. Justamente por causa disso que o Arduíno é o sucesso mundial que é hoje.

 

Mas nada te impede de começar a programar, mas eu aconselho antes a pesquisar bem o compilador, ver quais as principais bibliotecas atualizadas disponíveis, e só então partir para a briga....

 

Eu recomendo que voce continue usando a família Atmega, começando por um Atmega328, que custa baratinho e tem muiiiito recurso.

 

Para voce ter uma ideia de preços e recursos, hoje eu comprei dois Atmega1284P no formato tqfp por apenas US$ 5 cada um, e comprei 20 soquetes que transformam o chip tqfp de 44 pinos em um DIP de 44 pinos, paguei US$ 0,90 cada soquetinho. Tudo no Ebay !

 

Resumindo : por menos de R$ 22,00 terei um microcontrolador que tem 128K de memória de programa, 16K de memória Sram, 2K de EEPROM , e muito hardware interno legal, como 4 timers em vez de 3 sendo dois de 16 bits, duas interfaces seriais, 42 pinos de I/O, etc.....  Rodando a 20 Mhz, dá para fazer tudo que eu já imaginei até agora !

 

Paulo

 

  • Curtir 1
  • Membro VIP
Postado

fazer qualquer mc enviar dados pela serial em C é mó moleza.
 

tx (unsigned char dado)
{
TXREG=dado;//dado na saída
while(!TRMT);//espera transmitir
}

e no loop do main()

for (;;) tx(PORTB); // envia o conteudo do portb pra serial

do seu mc você precisa conhecer o TRMT=flag que indica transmissão em andamento, TXREG=buffer da serial, PORTB=dado que quer transmitir. Claro foi só a superfície de um exemplo tolo. (apesar que o 'fonte' acima compila e funciona direitinho). você precisa dar uma olhadela no d.s. sem medo de sujar as mãos pra 'arar a terra' (preparar o hw)  e bolar um protocolo qualquer.

 

Um AVR tem [+] recursos que um PIC e custa [-]. Um STM8 tem [+] que um AVR e custa ainda [-]. Um MSP430 tem [+] que um STM8 e ...[-]

  • Curtir 1
Postado

aphawk,tava lendo sobre os avrs que voce citou. As ides dele vem com uma espécie de proteus instalado, confere? e a programação deles, pelo que vi se assemelha ao pickit3,isso confere também?

Sei que to desvirtuando o tópico, mas fiquei empolgado com essa linha avrs, ainda mais que a ide deles possui*pelo que li* um sistema de testes instalado que não é o ***** que nem o proteus pra configurar.

 

 

Postado

@lucianolcoa ,

 

Vixi ....

 

Não, não tem nada a ver com o Proteus.... tem o simulador que permite executar o programa e observar o funcionamento dele, da mesma forma que fazemos no Proteus. Mas só se assemelha ao Proteus neste pequeno ponto !

 

É o que te falei de linguagem de programação. A melhor linguagem C para se programar os Avr's é fornecida pelo próprio fabricante gratuitamente, é o ATMEL STUDIO 7, que é uma IDE bem sofisticada e muito completa ( e enorme ... e lenta kkk ) , você pode fazer o debugger, usando o simulador, mas não tem como você acrescentar algum hardware na simulação.

 

Eu, por exemplo, uso o Bascom para fazer meus programas, ele também tem um simulador legal, e é bem mais leve do que o Studio 7 . Mas para isso tem de programar em ASM ou Basic. Experimente dar uma lida no tópico destacado logo no início da página do Fórum, vai ver o meu tópico de Tutorial de Projetos com Avrs usando Basic, Assembler e o Proteus. Quem sabe você se anima a programar em Basic, que é muito simples e possui comandos de altíssimo nível que já usam perfeitamente todo o hardware embutido na linha AVR. Agora, o Proteus é insubstituível ! Graças a ele, faço em uma tarde projetos que demorariam vários dias de testes e conserto de programa !

 

Essa é a diferença entre o Proteus e o resto ..... acredite em quem usa o Proteus faz tempo : é a ferramenta mais poderosa que existe para auxiliar um engenheiro no desenvolvimento de um produto ! 

 

Quanto ao sistema de gravação serial dos Avrs, sim, é bem semelhante ao dos Pics, mas a ferramenta de gravação é muito mais barata : menos de US$ 5 no Ebay ....  você deve encontrar aqui no Mercado livre abaixo de R$ 30,00 .

 

Dê uma chance aos Atmegas e aos Attinys, e faça como eu : use um Arduino Uno como plataforma de desenvolvimento, afinal já está montadinho, com conectores, e prontinho para se programar kkkkk.

 

Se funciona nele, depois é rapidinho para passar para um outro microcontrolador da mesma família !

 

Paulo

 

 

 

Visitante
Este tópico está impedido de receber novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!