Autor Tema: ¿Cómo se denominan las RAM a las que se accede secuencialmente?  (Leído 3567 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #15 en: 09 de Abril de 2014, 11:33:58 »
En principio, el registro se descarga como mucho en 37ns.
Despues de cada lectura del DAC, si el registro tiene datos, los carga en la memoria.

El Pic no va a ser tan rápido.
Puedes sincronizar los relojes para que no haya problemas.

En el ZX Spectrum, El micro Z80 corria a 3.5 Mhz para sincronizarle con la ULA (circuito de video) en la zona de memoria de video que ambos compartían. Si no fuese por eso, el Z80 podría haber corrido a 4Mhz. Lo mismo le pasaba al Amstrand CPC.

El Pic también puede correr a 27Mhz, como el DAC.

Salvando las distancias de 30 años, me parece un problema semejante.

Saludos.

P.D.: Corregido. El Amstrad CPC tenía el mismo problema que el ZX Spectrum pero se solucionó de otra manera (eliminando ciclos de reloj del Z80).
« Última modificación: 09 de Abril de 2014, 11:38:47 por Picuino »

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #16 en: 09 de Abril de 2014, 14:32:49 »
Muchas gracias Picuino, voy a estudiar con más detalle esta opción porque efectivamente es la más económica (sólo una SRAM).

Para dar más detalles sobre el proyecto, el conversor DAC requiere un cristal de 27MHz, y mi idea es inyectar ese reloj también al PIC32 con un divisor de 6 y una multiplicación de 20 para hacerlo correr a 90MHz.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #17 en: 10 de Abril de 2014, 07:17:06 »
Ese micro es bastante rápido.

¿No sería mejor multiplicar por 3 (27*3 = 81 Mhz) para que estén los dos bien sincronizados?

De todas formas, con ese micro utilizando DMA puedes ser más rápido que el DAC.

Otra solución puede ser hacer perder uno de cada tres ciclos de reloj al PIC mientras accede a memoria compartida para que espere al DAC.
De esa forma el micro trabajaría a 27*2 = 54Mhz accediendo a memoria y el ciclo perdido estaría dedicado al DAC.

Cada ciclo de memoria debe tener 12.34ns, dos ciclos para el PIC y uno para el DAC

Saludos.



Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #18 en: 10 de Abril de 2014, 07:45:41 »
El problema es que el multiplicador del PIC32 sólo admite frecuencias entre 4 y 5MHz, de modo que hay que dividir necesariamente los 27MHz antes de multiplicarlos.

Tengo pendiente el estudio del DMA (no lo he usado nunca) porque efectivamente creo que podría aprovecharlo para pasar información directamente desde la SRAM al DAC.

Muchas gracias picuino, no hay como intercambiar opiniones para avanzar (realmente es mucho más fructífero trabajar en equipo que uno solo).

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #19 en: 10 de Abril de 2014, 09:33:26 »
Pues cuanto más me meto con el DMA, más me parece que va a ser la solución (gracias picuino  ((:-)) ).

De hecho en esta nota de aplicación hacen justo lo que yo quiero: http://datasheet.octopart.com/AC164144-Microchip-datasheet-10742593.pdf



 :-/

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ¿Cómo se denominan las RAM a las que se accede secuencialmente?
« Respuesta #20 en: 11 de Abril de 2014, 10:17:43 »
Tras estudiar el DMA del PIC32, encuentro la limitación de 15MHz que indica la anterior nota de aplicación de aplicación, y que otros han encontrado problemas con resoluciones menores que la que yo pretendo aquí y aquí.

Parece ser que el problema está en que el DMA del PIC no sigue un sincronismo determinístico, de modo que es muy difícil hacerlo trabajar a frecuencias altas.

Consecuentemente, decido abordar la cuestión con CPLD, pero como no tengo ni idea, pido consejo a quiénes tengáis algo de experiencia.

Mi primera intención que comprar una tarjeta económica (me inclino por ésta de Altera EPM240) y el USB Blaster....

Pero si alguien me aconseja otra forma de empezar con CPLD soy todo oídos.

Gracias.