A la cuestión de los LED y su control a través de MK

Hay toda una línea de dispositivos muy interesantes: LED de tres colores con circuito de control incorporado (ws2811, ws2812, ws2812b, ws2813 ...). Su rasgo característico es el precio, que difícilmente puede calificarse de otra cosa que ridículo, lo que determina su extraordinaria popularidad entre los aficionados. Por alguna razón, a menudo se les llama LED direccionables, lo que, en mi opinión, no es del todo cierto, ya que estos dispositivos no tienen su propia dirección única y son abordados por una posición en la cadena de conexión, pero dejemos las sutilezas de la terminología. fuera de los corchetes.





Nota marginal (PNP): esta familia se produce, lo cual es bastante natural, fuera de nuestra vasta Patria. Como especialista directamente relacionado con este tema, no puedo dejar de expresar mi desconcierto por la ausencia de tales productos en la gama de dispositivos electrónicos producidos por los fabricantes nacionales. Entiendo que la fabricación de microcircuitos de acuerdo con estándares de 90 o menos en la Federación de Rusia es imposible, a pesar de las repetidas declaraciones sobre el desarrollo de estos procesos por parte de Angstrem, pero componentes como los descritos en esta publicación simplemente no pueden requerir el uso de tecnologías tan avanzadas. , por lo que la respuesta a la pregunta radica, probablemente, más económicamente que tecnológicamente. Pero, sin embargo, nuestros vecinos del sur fabrican tales dispositivos y, por supuesto, no están perdidos por sí mismos.





Todos los dispositivos de esta familia brindan al usuario la interfaz de hardware más simple: un cable (de hecho, por supuesto, tres cables, ya que se supone una conexión a tierra común, y no será fácil hacerlo sin fuente de alimentación) y menos los conductores son apenas posibles. Pero por todo en este mundo hay que pagar, en este caso el pago es el protocolo de mensajes, que es un protocolo serial con la codificación de información con la duración del pulso. La solución es bien conocida, si se cumplen ciertos requisitos, es confiable, pero el diablo, como siempre, se esconde en los detalles.





En este caso, los detalles están en las duraciones de los pulsos de codificación - para lograr altas tasas de transmisión, se toman muy, muy pequeños (por supuesto, dependiendo de con qué comparar) - del orden de cientos de nanosegundos, lo haremos ver valores específicos más adelante. En combinación con un formato de transmisión no estándar ("Lord, Inglaterra, entonces lo que no le agradó"), la implementación de dicho protocolo en MCU estándar presenta un cierto problema, y ​​hablaremos sobre posibles soluciones a este problema.





- - () , () . 8 /*3 = 24 ( , 32). n ( N) . , . , ", ".





. , , 150*2=600, , : - 150 , - 150 , - 600 . , , , , " ".





: 400 () 800 () , - 800 . , , ": 2 , (reset time) ", , , . : , / " " - , , .





( /?) , . , , , .





()





WS2811





WS2812





WS2813









T0H





0.22-0.38





0.2-0.5





0.3-0.45





0.375





T1H





0.58-1.0





0.75-1,05





0.75-1.0





0.875





T0L





0.58-1.0





0.75-1,05





0.3-100





0.875





T1L





0.58-1.0





0.2-0,5





0.3-100





0.375





TH+TL









1.1-1.4





0.95-1.55





1.25





Res





>280





>50





>300





>300





: , , 4 1 2 , 1 ). , , , .





, ( , ), , .





, (, ), . 300-380 , 800-900 , 640-760 500-600 . /: (800+380)/380:(900+300)/300 = 3.1:4 10/3:4/1, (640+600)/600:(760+500)/500=2.06:2.5 10/6:10/4. , .





, 1/80 ( ) = 12.5 . , , , . , 8 3 = 375 7 = 875 (" ? - "), - 6 4 . : , , , . , , .





, - .

:





  1. - , ,





  2. , ( , , ).





    :





  3. ,





  4. ,





  5. (, ),





  6. 100% , ,





  7. . , , 2813 . : , - . 64 , 64 * 32/ *1.25/ = 2.56.





( , ) - . , . , . ( 8 ), 3 . , , , , , . , - , 2-3 . : 2-3 80, 12.5 *3=37.5 .





, . :





  1. ( ),





  2. - . - .





. ( AVR, ARM , , ) 4-6 , 4-5 , 6-7 , 4-5 , 4-5 , 4, - 5-6. 38 , , 375 , 1/=1/(37510**-9/38)=38/37510**9~100. , .





, , , , .





( " ") . , , , 51 48 . (PWM), , , . 3 7 ( 10 , 3 , ) ( ), , , . , , , .





, - , , . ( ) , , , (, , ).





- "" , ( , , ) . , - , .





:









  1. .





    :





  2. , ( ),





  3. , . - - 375 , - 1250 , 38/(1250*10**9) = 31 .





- (STM XMEGA), . - . ( 32 , ), . , , , (ping pong round robin) " ". , 32*(5-10)/=160-320 32*1250/, 320/32*125*10*-9 = 10*10/1250=8 , , . , 2*32 , , .





- . , , , , , , 8/*32*50/( 20 )=12.5 ( 40). , , , , . , , , .





. - , , " ". - , ( , , ).





. , , , . , , , ( ). , - , ( ) - ( , ), , ( ) . , , "" . : , , , , .





, , ... . . 32*n( N) , , . , , , =64 32/*64*1/ = 2, , ( - 15 , , ). : , ( 16), , , ( ). , , , 32/*64 *(1/8)/=256 . , ( ).





, . , I2C/TWI ( , ), SPI ( , ) UART ( ).





I2C ( , ) - , , (, , ) ( 8 ) .





SPI, . - ( 1-2 ) , 10- . , 8- (- 10 ), . : ", , " - , 2 , 8 .





UART - , ( ) . ", , ", , , , 1 0 , . , 0b00000011 b00011111, 0 1 8 (, , ). : , UART . - , , . , , .





- . UART, 10 (3/10 6/10), 5 (2/5 3/5), . UART 4 ( ), , .





, 8 32 , (, ) .





, , . , ( ) .





P.S. , - .








All Articles