¿Qué tan rápido puede ARM Cortex M0s / M3s bit bang?

3

Todavía no he usado los uC de ARM Cortex, solo los AVR

En primer lugar, ¿qué tan rápido pueden:

  1. Transmitir 1024+ bits (en serie, desde bytes en la RAM) fuera de un pin, sin pausas / jitter
  2. Secuencia 1024+ bytes (en paralelo, desde la RAM) de 8 pines, sin pausas / jitter

Estoy esperando respuestas en forma de ciclos de X clock por bit / byte, pero podría ignorar cómo funcionan los chips ARM. ¿Hay problemas de tiempo no deterministas con, por ejemplo, ¿El caché L1 (si existe en esos chips)?

En segundo lugar, ¿uno o ambos de estos trabajos se hacen mejor con algún periférico integrado (SPI, USART) que se encuentra comúnmente en las ARC uC?

Estoy particularmente interesado en el LPC1114FN28 / 102 si eso hace alguna diferencia. No soy un profesional de electrónica de Estados Unidos, es solo un pasatiempo.

    
pregunta fadedbee

3 respuestas

4

Si leí correctamente el capítulo SPIO0 / 1-with-SSP usando el formato TISS (fig 36 en mi copia de rev 12 del manual del usuario, enlace a una versión más reciente ) puede enviar un flujo de bits continuo. La velocidad de reloj máxima parece ser PCLK / (CPSDVSRx (SCR + 1)), para 48 MHz, CPSDVSR = 2 (parece ser el mínimo) y SCR = 0 (predeterminado) esto daría 24 MHz.

¿Va a encontrar los datos para marcar a esa velocidad? Este pobre chip (OK, ¡es mi favorito!) Tiene solo 4K RAM y 32K FLASH.

    
respondido por el Wouter van Ooijen
2

Supongo que en realidad no está enviando datos en serie, pero desea hacer algo 'inusual', como generar una señal de televisión usando GPIO o un periférico en serie.

Esto no está disponible en el LPC1114, pero los microcontroladores LPC4300 (Cortex M4) de gama alta tienen SGPIO, que es básicamente una serie de registros de cambios programables que puede controlar a través de registros o DMA. Puede emular casi cualquier protocolo en serie, y puede hacerlo sin pausas, ya que todo se hace en hardware.

enlace

    
respondido por el Zuofu
1

El LPC1114 es un Cortex M0, un ARM de nivel de entrada, por lo que no es particularmente rápido (hasta donde llega la CPU ARM) y no tiene capacidad de DMA. DMA mejoraría sustancialmente tanto el rendimiento como la carga de CPU requerida para cada escenario, y reduciría o eliminaría completamente la fluctuación de fase. Es posible que deba ir a un Cortex M3 o M4 si desea usar DMA.

No hay caché en absoluto, por lo que todos los tiempos son deterministas.

Definitivamente es mejor hacer una transmisión de 1 bit de ancho con un SPI o USART, incluidos los del LPC1114. Es lo que están diseñados para hacer. La corriente paralela es un asunto diferente; No puedo pensar en un periférico de comunicaciones específico de la parte superior de mi cabeza que usarías para hacer eso. Sin embargo, con la ARM MCU correcta, podría usar DMA para transmitir 1 byte a la vez a un puerto GPIO, con la CPU involucrada solo durante la fase de configuración.

    
respondido por el markt

Lea otras preguntas en las etiquetas