Página 1 de 1
Ajuda / Programa maior que a memoria

Enviado:
09 Out 2007 15:45
por luiggibr
Boa tarde pessoal, bom resumindo meu problema... Eu fiz um software aqui, a finalidade dele é reproduzir som através daquela teoria do BTC sound encoder.
Mas o problema é que o programa .hex deu por volta 40kb. Ou seja não cabe na memoria dos microcontroladores que eu utilizo...
Não entendo muito como utilizar memorias externas, alguem teria material para me auxiliar ou pelo menos me "nortear"oq fazer?
O programa é basicamente isto abaixo, só que a tabela (db) tem umas 15mil linhas, por isso que o programa dá tão grande.
Teria como armazenar essa tabela (db) em alguma memoria e ler nesta memoria?
Desde já muito obrigado.
$mod51
TX equ p1.1
org 00H
ljmp inicio
org 30H
inicio:
mov a,#00h
mov P1,a
mov dptr,#musica
loop:
push acc
movc a,@a+dptr
mov r2,#08
ljmp transf
pula:
pop acc
inc a
ljmp loop
transf:
rlc a ; desloca o bit para trx dentro do carry
mov TX,C ; coloca o conteudo do carry no pino TX
djnz r2,transf ; continuo ate os 8 bits terem sido trx
ljmp pula
org 100H
musica:
Db 0aaH
Db 0abH
Db 0aaH
Db 0b5H
Db 055H
Db 05aH
Db 0aaH
Db 0adH
....

Enviado:
09 Out 2007 17:02
por ze
use uma ou + e2prom i2c 24C256 p. ex. (32K cada). para gravar, faça rotinas que se comuniquem com a serial e use 1 pc.
Talvez tenha que ler e2prom a velocidade máxima permitida (~400KHz)
Pra brincar, memória eprom externa é válida. Pra vender, e2prom pode ser + interessante.

Enviado:
09 Out 2007 17:29
por barboza
Use o 8051 com memória ROM externa. Você endereçar até 64K.
Tem varios exemplos na net de como ligar o 8051 com mem externa, e você nao precisa mudar nada no seu codigo.

Enviado:
11 Out 2007 11:03
por andre_luis
Nao seria o caso de migrar pra um uC 51 de 64K ? Acho que daria menos trabalho.
Dependendo da taxa de velocidade que voce precisar dessa memoria, e se seu uC nao possui I2C por HW, pode nao dar certo.
+++

Enviado:
31 Out 2007 22:53
por luiggibr
Vou tentar utilizar utilizar o 8051 com memoria rom externa...
Existe algum uC 8051 com memória de programa de 64kb já? Que não seja preciso expandir?
Se tiver me fala o nome do CI por favor, porque facilitaria bastante.
Abraço.

Enviado:
01 Nov 2007 09:21
por helton
AT89C51ED2

Enviado:
13 Nov 2007 12:13
por luiggibr
alguem sabe onde comprar o AT89C51ED2?
Nas lojas de eletronica aqui da minha cidade não tem ele...
onde encontro?

Enviado:
13 Nov 2007 12:46
por rebelk
existe algum derivado ( core ) do 8051 com rom maior que 64k ?

Enviado:
13 Nov 2007 15:44
por brasilma
Esse aqui da ATMEL possui 128K de flash: AT89C51RE2

Enviado:
22 Nov 2007 20:50
por luiggibr
Bom eu pretendo usar um CI 8051 com memoria expandida e ia usar o 27C512... utilizando as ligacoes em esquemas que tem internet...
Mas devido as dificuldades de apagar a eprom (UV), mudei para EEPROM...
Alguem sabe se alterando para a EEPROM 24C512, o esquema de ligação do CI permanece o mesmo daquele com o EPROM 27C512?
Se for diferente, e puder me mandar o esquema de como fazer essa ligação, desde já muito obrigado!

Enviado:
23 Nov 2007 12:36
por lopesjm
Boa tarde luiggibr,
Creio que uma olhada no datasheet poderá ser útil. Uma eprom 27XXX é um dispositivo PARALELO Ou seja, possui 8 pinos para transferir os dados e 15 pinos para a leitura do endereço. (No caso de uma 27C256), portanto 32.768 posições de endereços, além dos sinais de controle.
Uma 24XXX é uma memória SERIAL, normalmente com 2 pinos para comunicação. (O serial clock SCL e o serial data SDA). Sendo que esse tipo de memória se comunica usando protocolo I2C, que pode ser executado por software, caso não tenha um hardware específico no microcontrolador.
As velocidades de trasnferencias são bem menores. Como você quer reproduzir som, uma ótima idéia é gravar esses DADOS (SOM) que você tem, em um arquivo no PC e criar um programinha no mcu que leia esses dados a partir da serial do mcu e grave os dados na memória e2prom. Fazendo isso, você poderá usar um AT89S52 que é bem barato, sem se preocupar com o tamanho da flash, caso o programa fique abaixo dos 8Kbytes. E a vantagem é que poderá regravar a memória com outro som qualquer.
Em seguida, após gravar o som, poderá iniciar a reprodução, ou mediante o acionamento de alguma tecla. (Sugestão apenas).
Eprom é coisa do passado.
abraços
Jorge