Delay de nanosegundos ESP32

Hola a todos, buena tarde, pues como lo dice el título del post, resulta que tengo que hacer una rutina de delays en nanosegundos ya que estoy utilizando un UCS5603 y la librería de neopixel no me sirve debido a que necesito enviar 12 bits por color en vez de 8, viendo la hoja de datos del integrado me dice que para transmitir un cero lógico necesito enviar un pulso alto de 0.35 microsoegundos seguido de un pulso bajo de 0.9 microsegundos y para enviar un uno lógico debo de enviar un pulso alto de 0.7microsegundos y acto seguido poner a nivel bajo durante 0.55 microsegundos.

Estoy utilizando micropython y he buscado algo de información sleep solo me permite manejar hasta 1 microsegundo así que no es opción; creo que tengo que utilizar los pulsos del reloj pero ahí es donde estoy atorado ya que no sé cómo podría implementar eso.

He visto que se puede utilizar: time.time_ns() ya que retorna el uso de la tarjeta en nanosegundos y creo que en base a ello podría hacer una operación matemática para cumplir con ese propósito pero antes de empezar me gustaría saber si Ustedes conocen una mejor manera de hacer las cosas, en raspberry pi pico creo que sería con las máquinas de estado sólido pero con el ESP no tengo otras ideas

¿Me pueden orientar/aportar algo de información?.
De antemano les agradezco su apoyo.

saludos.
 
Si son solo nanosegundos...YO haría un busy loop previa calibración tipo bogomips de Linux.
Cualquier otra operación que hagas tal vez consuma mas nanosegundos...y usando Python...peor aún.
 
¿Qué tal usar el RMT? incluso es simple porque pones la secuencia de pulsos por múltiplo de la duración, o sea, en lugar de un "delay" y manejar los pulsos por tu cuenta, le dices directo la duración del pulso en salida y la secuencia que quieres
 
Si son solo nanosegundos...YO haría un busy loop previa calibración tipo bogomips de Linux.
Cualquier otra operación que hagas tal vez consuma mas nanosegundos...y usando Python...peor aún.
Hola. ¡buen día!, reviso el tema aunque he de decir que desconozco lo que son los bogomips, bueno por lo de mips me doy una idea, y sí también he pensado que cualquier operación me va a tomar valiosos nanosegundos 😅
¿Qué tal usar el RMT? incluso es simple porque pones la secuencia de pulsos por múltiplo de la duración, o sea, en lugar de un "delay" y manejar los pulsos por tu cuenta, le dices directo la duración del pulso en salida y la secuencia que quieres
Hola, ¡Excelente día!, sí, como comentas ayer en la tarde encontré esa misma librería RMT apenas hot voy a ver como intentar utilizarla ya que veo que puede generar pulsos de hasta 12.5 nanosegundos.

Les agradezco Nuyel y Dr. Zoidberg por sus respuestas, si logro hacerlo funcionar ya les estaré colgando mis avances, y si no logro hacerlo funcionar me quedo en silencio 🥹😅.
 
Atrás
Arriba