Jump to content
apocsantos

8051 (programador)

Recommended Posts

apocsantos

Boa noite,

Depois de fazer algumas noitadas a pesquisar no google e sem ter ponta de sorte, decidi por cá o post a ver se o pessoal da electronica me consegue ajudar a "seguir caminho".

Ora bem, tenho andado a "experimentar" o micro-controlador 8051 no emulador, mas como usar o emulador não tem o "mesmo gosto do real", queria passar as coisas para o real e deixar a o emulador "descançado".

Até aqui tudo corria bem, não fosse eu perder horas em busca de informação sobre como construir um programador de 8051 sem encontrar nada que interessa-se a não ser uma devboard que custa "esta vida e mais uns trocos".

Pelo que consegui perceber até agora, é possivel programar o 8051 desde que ele esteja alimentado com corrente, e ligado a um ISP Programmer Cable. Também consegui perceber que dá para fazer isto com um arduino (não encontrei foi o esquema, nem informação de como o fazer). Encontrei para porta paralela (RS485), e o que me interessava era RS232 ou USB.

As minhas dificuldades principais estão em perceber como usar o arduino, como ISP Programming Cable, de forma a tê-lo montado na mesma board onde está o 8051, para poder desenvolver em assembly, carregar o programa para o 8051 e "acontecer a patetice" de acender leds.

Qualquer ajuda é bem vinda.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
bubulindo

Estás a usar o 8051 mesmo? Ou um mais recente baseado no 51?

A diferenca está que o 8051 não tinha memória de programa. Então tinhas de construir um gravador de EEPROMs (talvez por isso a falta de opcões para programadores). Se pesquisares por isso no Google, vais ver que a maior parte dos resultados não é para o 8051, mas para algo baseado no 8051, mas com memória de programa interna.

Não sei se já tens o chip ou não, ou qual é o objectivo (programar em Assembly, por exemplo... que não é a mesma coisa que os chips da moda), mas saber a referência ao certo creio que facilitaria imenso uma vez que o programador pode ser diferente dependendo se vais comprar um chip da ATMEL, Maxim ou da Infineon (sim, eles também fazem disso, não é só memórias).

Eu na faculdade lembro-me do meu professor ter um bootloader nos 89S51 oou 89C51 que usávamos... Ou seria o 2051... a minha memória não é muito boa e o professor não é adepto de Open (incluir seja o que for)...

Lembrei-me deste senhor muito famoso no início dos AVRs...

http://www.lancos.com/prog.html

Ele refere que o sistema dele suporta alguns 51 e tem esquemas. Estranhamente, o site dele não aparece em pesquisas do Google. A tua sorte foi ter lido um artigo qualquer onde faziam referência a isto. Creio que era até por causa do Arduino e como a maneira de gravar programas mudou. Há uns 10... 12 anos, esse PonyProg era a loucura para AVRs. Acredita... estive quase um ano a tentar lembrar-me do site do homem. LOL

A hipótese bem mais complicada... é pegares na especificacão e meteres isto num Arduino.

http://www.atmel.com/images/doc0368.pdf está na página 7, ponto 11. Isto não é de todo a opcão ideal. (Dito isto, um colega meu fez isto para uma das séries dos Motorola). No entanto, diz os pinos que podes usar para programar esse chip em particular. Acredito que o datasheet do teu diga o mesmo. O grande problema para estes chips aparece neste ponto:

Raise RST to 12V to enable programming.

O que implica que tens de meter um transistorzinho e uma fonte de 12V. (não é impossível... é só mais difícil).

Depois pegando na referência do 2051...

http://students.uta.edu/rx/rxr5243/projects/prog/

http://www.mytutorialcafe.com/Microcontroller%20Project%20Thesis%20Programmer89c2051%20Part1.htm Se tiveres um computador MUITA VELHO!!!

http://www.kmitl.ac.th/~kswichit%20/ez4/ez4.html

http://www.kmitl.ac.th/~kswichit%20/easy1/easy.htm

http://chaokhun.kmitl.ac.th/~kswichit/89prog/index.html

Este não vi, mas esse site é de confianca: http://www.pjrc.com/tech/8051/board2/schematic.html e o autor é um guru dos microcontroladores.

O grande problema é que os programadores para 51 com flash interna são baseados em portas paralelas (que eram bastante comuns na altura) ou então baseiam-se no mesmo controlador para fazer um programador, que te deixa com um problema do ovo e da galinha.

Como provavelmente já percebeste, o 51 é um pouco... enfim... velhote. Não sei dos precos deles, mas não me parece que sejam muito usados ou baratos. É uma pena porque se pretendes desenvolver em Assembly para eles tens de procurar por CISCs mais recentes... e o mercado virou-se para os RISC com os PIC, AVR e até ARM (creio).

Creio que a Zilog faz disso... mas vais ter os mesmos ou mais problemas para usá-los.

Procurar no site do fabricante pode ajudar... Eu não encontrei muito, mas também não pesquisei a fundo.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
apocsantos

Boa noite,

Estava a experimentar mesmo com um velho 8051 da motorola. Precisamente por ser CISC e isto porque no circuito de ensino em portugal, ainda se ensina a programar micro-controladores CISC, quando a industria se virou para RISC.

Como a matéria é dada com um emulador (o que é uma perda de tempo adicional pois no emulador não tem piada nenhuma), decidi ver que velharias tinha praqui para contruir alguma coisa. Não descartei a hipotese de comprar uma coisa mais recente baseada no 8051, provávelmente da ATMEL, o AT83C5134, que parece ser quem tem mais e com mais facilidades (suporte para USB e afins).

O objectivo é "brincar com assembly", porque na realidade ninguém vai aprender assembly, e se fosse para aprender assembly, não era preciso ser com um 8051. Recordo-me de dar os primeiros passos de assembly para o spectrum... Isto já lá vão os anos... E os "tesourinhos deprimentes", desses tempos.

98% do que tenho visto para 8051 obriga a porta paralela, o que é uma grande chatice, pois agora não se arranjam maquinas com porta pralela.

Vou ver os links que me indicas-te e ver se consigo fazer alguma coisa disto. Se perder a paciência, que se lixe o gasto não foi nada do outro mundo uma vez que já cá tinha um 8051 mais do que velho e se "der o berro", vai para a reciclagem. ;)

Obrigado pelos links e pelas dicas.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
bubulindo

Eu acho bem que ensinem CISC e RISC e mostrem as diferencas e benefícios de cada um. E acho muito melhor que ainda ensinem Assembly para programar estes bichinhos e ensinar certos conceitos que as restantes linguagens disfarcam. Afinal de contas, em Assembly até os tipos de dados têm de ser construídos. :)

O Assembly com CISC também é, na minha opinião, uma boa introducão a programacão de PLCs em linguagem estruturada (tipo STL) uma vez que obriga o cérebro a pensar em acumuladores, etc... os RISC têm um conjunto muito limitado de instrucões para fazer isso.

E estes bichinhos não servem só para acender LEDs... um colega meu escreveu um driver USB para eles. Ok, USB1.0 ou menor se houver, mas tinha o chip ligado ao computador com USB sem hardware dedicado.

Outro criou um sistema de encriptacão com os 51...

Tens aqui imensa informacão sobre esse modelo em especifico...

http://www.atmel.com/devices/AT83C5134.aspx?tab=documents

Este é o software usado para o programar

http://www.atmel.com/tools/FLIP.aspx

Se esse chip já trouxer um bootloader... era fixolas. :)

Descobri isto:

http://ecee.colorado.edu/~mcclurel/AT89C51RC2_FLIP_Programming_Guide.pdf

E lembro-me agora que esse chip, o RC2, era usado porque tinha o bootloader já lá metido. Isto para ti facilitaria imenso o processo. :)


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
apocsantos

Bom dia,

Por acaso não ensinam RISC e CISC, ensinam apena se muito pouco de assembly para o 80051 (CISC) e nada mais. Alias RISC, MIPS, etc... não arquitecturas sobre as quais nem sequer se vai falar, porque simplesmente não estão contempladas no programa.

Eu sou completamente adepto de que se ensine a programar assembly e sei bem que o 8051 dá para bem mais do que acender led's, mas o que está no programa é "acender leds". Regras são regras, e mesmo discordando das regras, só nos resta cumprir as regras.

Já tenho andado a ver os links e agradeço a informação. Caso tenha mais duvidas volto a colocar cá!

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.