Velo. maxima no pinos dos ARM?

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Velo. maxima no pinos dos ARM?

Mensagempor mastk » 14 Out 2006 20:52

Qual a velocidade maxima q os IOs do lpc2138 conseguem alcançar?
(lembrando do projeto do basicforever, q o mano usava uma CPU muito rapida e tinha as IOs muito lentas....)
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor glaucius penga » 15 Out 2006 16:19

Bem ha controvérsias, mais teoricamente o clock do processador pode ser o mesmo da interface de IO, no caso do LPC2138.
Mais se o processador estiver em 60Mhz , vc não conseguirar colocar um sinal de clock nos pinos do LPC2138 a 60Mhz, isto vai depender do código que vc esta fazendo a maioria das instruções do ARM são executadas a 1 cliclo de maquina mais não todas, outro problema e a estrutura interna ou externa da memória, por exemplo o núcleo do LPC2138 e um ARM7TDMI-S, mais se o mesmo estiver acessando uma memória flash de 16 Bits na via de dados então o processador para executar o programa vai ter de fazer duas leitura na memória para interpretar os 32Bits, ai o desempenho do processador cai.
Vc pode usar o Modo THUMB que no caso do processador LPC2138 fica com o codigo 60% mais rapido em media por causa justamente deste problema com o acesso a memória interna.
Uma experiência que eu já fiz foi ligar o pino e desligado num loop infinito
Então temos o que em c fica assim :
while(1){
liga pino
desliga pino
}

em assembler do ARM7 fica assim :
43: while(1){
0x000001C8 EA000003 B 0x000001DC
44: IOSET0=0x00010000;
0x000001CC E3A00801 MOV R0,#0x00010000
0x000001D0 E59F1010 LDR R1,[PC,#0x0010]
0x000001D4 E5810004 STR R0,[R1,#0x0004]
45: IOCLR0=0x00010000;
0x000001D8 E581000C STR R0,[R1,#0x000C]
0x000001DC EAFFFFFA B 0x000001CC
0x000001E0 00000C05 DD 0x00000C05

Então não temos mais uma instrução para ligar os pinos e outra para desligados mais varias.
E isto para programas com técnicas mais avançadas como "tredes" e sistemas operacionais embarcados como uClinux a coisa ai sim fica complicada.
Então cheguei a conclusão de que para projetos críticos o bom e velho assembler e quem realmente resolve a parada.
na minha experiência eu consegui com o processador a 60Mhz um clock os pinos de IO a 7.5Mhz.
ass.
Glaucius Penga
glaucius penga
 
Mensagens: 3
Registrado em: 14 Out 2006 09:44


Voltar para ARM

Quem está online

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

x