Manos con la FPGA Arduino

¡Todas las herramientas que necesita para trabajar con FPGA Arduino, el Vidor, están ahora en la naturaleza!

Anteriormente informamos que una serie de publicaciones de blogs franceses finalmente han mostrado cómo todas las piezas encajan para programar la FPGA en la placa Arduino MKR4000 Vidor. Por supuesto, no me contenté con leer la traducción de Google, tuve que romper el tablero y probarlo yo mismo.

Creé una plantilla inicial muy simple, una herramienta en C para hacer la conversión de flujo de bits necesaria, y puse todo junto en un solo lugar. Así es como puede usar mi kit de herramientas inicial para hacer sus propios proyectos FPGA usando el Vidor. Supongo que conoces los conceptos básicos de FPGA y Verilog. Si no es así, ¿por qué no ver primero los campamentos básicos de FPGA?

Lo primero que querrá hacer es tomar mi repositorio de GitHub. También necesitará el IDE de Arduino (copia nueva) y el programa Quartus de Intel. En el interior, encontrará tres directorios, dos de los cuales contienen copias ligeramente modificadas de archivos Arduino originales. Pero antes de investigar, obtengamos una descripción general de alto nivel del proceso.

Conceptos básicos

La FPGA en el Vidor es un dispositivo Intel / Alter por lo que para configurarlo usaremos Quartus. Por lo general, Quartus se encarga de todo, incluida la programación del dispositivo, pero no podemos usarlo para eso con el Vidor. En su lugar, tendremos que decirle a la CPU cómo queremos configurar la FPGA y lo hará por nosotros como parte de nuestro programa Arduino (realmente odio decir boceto).

Quartus (ver más abajo) tomará nuestros archivos Verilog y creará un archivo ttf que representa el flujo de bits de configuración. Este es solo un archivo de texto ASCII lleno de números decimales. Desafortunadamente, la forma en que está configurado Vidor, necesita los números algo invertidos a nivel de bytes. Es decir, 01 en el archivo ttf debe ser 80 curse enviado a la FPGA.

Arduino entrega un archivo de clase de Java para realizar la tarea, pero me sentí frustrado porque el archivo de clase necesita Java 11 y no quería ponerlo en todas las máquinas que uso, así que lo reescribí en C. Es bastante fácil de llevar el algoritmo, sin embargo. En la subcarpeta de shell, tengo otra implementación de ejemplo con awk.

Una vez que tenga este número, puede incluirlo en un boceto de Arduino con un hervidor para habilitar el FPGA y cargarlo. El programa estándar incluye el archivo app.h, que es solo el resultado del programa de conversión. No hay código C en él, solo números separados por comas que el código principal arreglará en una matriz durante el tiempo de compilación. Aparte de eso, es un programa Arduino normal y puedes hacer lo que quieras. Súbelo y obtendrás la CPU y la FPGA programadas individualmente.

Hay una advertencia. El código FPGA tiene un bloque de nivel superior con muchos pines de E / S definidos y los límites correspondientes. Debe tener mucho cuidado de no cambiar estos o cambiar los límites de los pines. Si coloca un pin, eso ya es una salida, por ejemplo, podría dañar la placa. Debido a que todos los pines son compartidos, también tiene el mismo problema con los pines de Arduino. Si está presionando un pin de salida con la FPGA, tampoco debe intentar operarlo con la CPU. Sin embargo, como verá, está perfectamente bien que la FPGA lea un pin de la CPU o viceversa. Eso es bueno porque nos brinda una forma de enviar datos entre ellos.

Codificar

Quería algo simple y no quería modificar accidentalmente la placa de caldera Arduino Verilog. Podría crear un módulo Verilog, pero esto requeriría pasar todos los pines de E / S al módulo o modificar el código original cada vez, lo cual quería evitar.

Mi respuesta fue utilizar la directiva Verilog `include dentro del hervidor. De esa manera, su código tiene acceso a todo lo que tiene el módulo principal, pero no tiene que cambiar el módulo principal. El único inconveniente es que Quartus tiene una compilación inteligente que no puede entender cuando solo se cambia un archivo inclusivo. Por lo tanto, no se volvió a compilar cuando hice los cambios. Desactivé esa función en las opciones de Quartus, por lo que si toma mi proyecto de muestra, no tendrá ningún problema.

Aquí está mi ejemplo user.v:

reg [27:0] hadcounter;
assign bMKR_D[6]=bMKR_D[5]?hadcounter[27]:hadcounter[21];

always @(posedge wOSC_CLK)
begin
   if (!rRESETCNT[5])
   begin
      hadcounter<=28'hfffffff;
   end
   else
   begin
      if (hadcounter==28'h0) hadcounter<=28'hffffffff; else hadcounter<=hadcounter-28'h1;
   end
end

En el archivo real, dejé muchos comentarios que explican qué tienen todos los módulos principales que puedes usar. Pero lo anterior es la parte de trabajo. Defino un contador de 28 bits. La matriz bMKR_D son los puertos digitales para Arduino y yo uso los pines 6 y 5 respectivamente como salida y entrada.

La declaración de asignación dice, en inglés, Si D5 es alto, conecte el bit 27 del contador al LED. Si es bajo, conecte el bit 21. El resto del código solo hace el contador. Vuelvo a cargar el contador, aunque naturalmente se volteará si quieres configurarlo en otra frecuencia.

Mientras la calculadora está funcionando, los bits 27 se alternarán relativamente lentamente, pero los bits 21 serán un poco más rápidos, al igual que una calculadora. Entonces, al cambiar D5, puede hacer que el LED parpadee lento o rápido.

Como dice Verilog, esto no es muy complicado ni siquiera útil, pero es simple y muestra que podemos compartir datos con la CPU en ambas direcciones. Si abre el proyecto de muestra en Quartus, solo necesita realizar algunos cambios en user.v que desee, agregar algunos otros archivos que desee usar y hacer doble clic en la tarea Compilar diseño (ver a la izquierda). Si tiene éxito en la compilación, encontrará el archivo ttf en el directorio output_files. Aquí está el archivo que necesita procesar con el programa Java, el programa C o el script awk. De cualquier manera, recopile el resultado como app.hy colóquelo en el mismo directorio que su código Arduino.

Lado de la CPU

En el lado del boceto, debe dejar el código de la plantilla solo, ya que, entre otras cosas, activa el reloj FPGA. Notará que también incluye app.hy usa un archivo llamado jtag.c para comunicarse con la FPGA. No he separado el código Arduino en su propia inclusión, ya que probablemente necesite cambiar la función de configuración y hacer cambios en el espacio global, pero eso podría arreglarse (tal vez establecer cpu_setup y llamar al bucle cpu_loop o similar).

Si desea eliminar las partes de prueba del boceto parpadeante, puede eliminar:

  • Las definiciones y llamadas relacionadas con FPGAVal, SPEED y FPGALED
  • Las llamadas en serie y las definiciones
  • Todo en la función de bucle
  • Dejé el código sin modificar en el directorio EmptySketch. Sin embargo, tenga en cuenta en el código de demostración que SPEED es una salida. Esto está sintonizado en D5, que es una entrada a la FPGA. De la misma manera, FPGALED es igual a D6 y permite que la CPU lea el estado de la salida LED.

    bmd

    Necesitará una resistencia de cuero y caída en el pin 6 a menos que desee ver por amplitud o por metro. Siempre tengo a mano algunos LED con resistencias de caída de 5V insertadas, e incluso a 3.3V era muy brillante. Con uno de estos, simplemente puede insertar los cables directamente en el conector del cabezal de la placa. Sin embargo, ¡no intente esto con un LED normal!

    Después de iniciar el boceto, puede abrir la pantalla de serie o cualquier terminal a 9600 baudios. Aparecerá un mensaje que dice que puede presionar cualquier tecla para cambiar el parpadeo. Por supuesto, dado que el monitor en serie no le permite presionar las teclas correctamente, tendrá que ingresar algo y presionar enter (configure “Sin final de línea” en la parte inferior de la pantalla del monitor), pero en un terminal real, cualquier la prensa de caracteres debe hacerlo.

    El código principal es bastante simple:

void loop() {
static int oldstate=-1;
static int linect=0;
int state;
if (Serial.read()!=-1)
  {
  FPGAVal=FPGAVal==HIGH?LOW:HIGH;
  digitalWrite(SPEED,FPGAVal);
  }
state=digitalRead(FPGALED);
if (state!=oldstate)
  {
  Serial.print(state);
  if (++linect==16)
    {
    Serial.println();
    linect=0;
    }
  oldstate=state;
  }
}

En el bucle, si aparecen datos en serie, simplemente alternamos la salida a la FPGA. También probamos la salida del LED en cada paso. Si ha cambiado desde la última vez, escribimos el nuevo estado en la terminal y luego actualizamos el estado para no inundar la pantalla con caracteres repetidos. Una gran cantidad de código solo rastrea cuando hemos escrito lo suficiente como para comenzar una nueva línea.

Hola Mundo de Vidor

Quería tener todo lo necesario en un solo lugar y un ejemplo fácil de seguir, sin embargo, mostrar los talleres críticos. Sería bastante fácil usar los pines de E / S compartidos para hacer un SPI, por ejemplo, y luego podría intercambiar datos con la FPGA con bastante facilidad. No olvide que también Arduino IP (propiedad intelectual; tipo de software de biblioteca para FPGA) en el directorio IP si desea utilizarlo.

Ahora solo necesita una idea de proyecto que tenga sentido para una FPGA. Nuestro favorito personal sería un analizador lógico. La CPU puede hablar con la computadora, configurar los disparadores y luego dejar que la FPGA haga el trabajo sucio de encontrar el disparador y almacenar los datos lo más rápido posible. Si desea algo menos ambicioso, es muy sencillo crear salidas PWM completamente autónomas en FPGA. Podríamos ver esto útil para robótica o control de máquinas, donde desea una secuencia muy rápida de salidas sin intervención de la CPU o superior.

Por supuesto, no todos los proyectos deben tener sentido. Si solo desea aprender sobre FPGA, hay muchos proyectos que podría hacer con una CPU, pero es bastante fácil de construir en FPGA (el clásico semáforo me viene a la mente). Por supuesto, con el Vidor tienes la opción de usar una combinación de código FPGA y código de CPU, lo cual es una especie de cosa.

  • Ingeniero de Backwoods dice:

    Buena introducción a la pizarra, gracias.

  • dahud dice:

    Habiendo leído todo esto, honestamente no puedo imaginarme por qué me molestaría. Este Vidor parece no haber heredado nada de la simplicidad esperada de Arduino, y en cambio solo capas más BS además del ya extraño kit de herramientas FPGA. Lo del microcontrolador y la FPGA peleando en pines IO me molestó en particular.

    La mayoría de la gente aquí no tiene problemas para necesitar una FPGA. Y si tiene un problema de clase FPGA con solución, ¿hay alguna razón para usar Vidor en lugar de uno de los muchos programadores FPGA que ya existen?

    • Walter dice:

      Así es. Realmente no veo cómo permitirá al usuario actual de Arduino desarrollar cosas a través de FPGA.
      Y para aquellos que ya tienen algo de experiencia en FPGA, ¿por qué realmente usarían ese lío?
      Es un fracaso predecible.

    • Kevin dice:

      Estoy de acuerdo contigo, dahud, no es una buena manera (o una manera barata) de ingresar al mundo fpgan, pero diré que algún día la gente creará controladores para eso (SI es así), será bastante asombroso.

    • Zerg dice:

      De acuerdo, es un mal diseño y el software adicional agregado no es útil para nadie. Sería un oso usarlo en una aplicación real con una E / S tan dañada. En general, me recuerda a las tablas de evaluación descartadas y baratas que vende Arrow.

      Hay placas FPGA mucho mejores y más baratas si solo quieres jugar con FPGA. El que Grant Searle usa para sus proyectos es bastante bueno y se puede comprar en Ebay por $ 20.00.

      • Alex Rossie dice:

        Hace unos años, las placas Max II eran básicamente gastos de envío.

        y el máximo 2 es casi fpga a pesar de que se vende como cpld para la mayoría de los propósitos.

        • Zerg dice:

          Ver. Tengo algunas placas Max II y funciona bien.

          Por cierto, otra opción con la que me he encontrado es el tablero GnarlyGrey. $ 14.00 y basado en Lattice UltraPlus FPGA. Solo necesita un cable micro USB y algunos conectores macho de .01 y está operando.

          Perfecto para panotabulo.

    • ESTOLA dice:

      Otro “estoy de acuerdo”.

      Al menos podrían poner un conector JTAG allí. A aquellos con experiencia en FPGA no les importará, por lo que solo los novatos escribirán “bibliotecas” (HDL) para ello.

      • Al Williams dice:

        Creo que la propuesta valiosa … Si se materializa … ¿Es si los progresistas están escribiendo herramientas para personas que no son FPGA, o si alguien está haciendo un compositor de IP más intuitivo? Pero sí, ya que solo servirá al primer grupo.

    • Al Williams dice:

      Es cierto que cada vez que conecta dos dispositivos, esto podría ser un problema. Especialmente cuando ambos dispositivos se pueden configurar para controlar el pin de lectura.

    • Jr4om3d dice:

      Este es probablemente un diseño de Intel con un logotipo de Arduino. Lo han hecho en el pasado y estos productos existen solo para decir que están explotando un nicho / área no utilizada, el interés desaparecerá después de que los gerentes de proyecto encuentren una nueva cosa inútil que hacer y las cifras de ventas no estén justificadas. tercera o cuarta línea de productos. Intels está bastante desesperado por volver al mercado de MCU, y también les encantaría que más personas compren FPGA. No les importa usar ARM para hacer ambas cosas.

      No me sorprendería demasiado si el próximo Intel con el logotipo de Arduino fuera un competidor indirecto de Raspberry Pi, una placa pequeña ARM SOC + FPGA, coincide con los pinheads Pi, presenta algunos títulos individuales, un gig de ram, salida hdmi, básico ethernet yo wifi y gran confusión solo por la FPGA junto con un precio duro.

  • Vadear dice:

    Impresionante para, gracias. Esta placa es realmente genial, espero que se vuelva lo suficientemente popular como para quedarse. Acabo de usar la placa Arrow MAX1000 y parece una transición fácil.

  • CW dice:

    ¿Cuál es la ventaja aquí sobre la simple obtención del kit de herramientas de desarrollo de Intel? Me equivoco que Arduino empeorará este proceso.

  • Chris dice:

    FPGA de AMD? ¿Qué cosas tiene el ciclón que te preocupan?

  • Dario Pennisi dice:

    Gracias por el bonito artículo. Es genial ver que, incluso si nos tomamos un tiempo para liberar el flujo completo, hay personas como tú a las que les encanta piratear y compartir. Entre nosotros termina el lanzamiento de las herramientas que permitirán recrear las bibliotecas que hemos lanzado y, por lo tanto, permitir que las personas las modifiquen fácilmente. Permítanme recordarles que la razón por la que dura tanto es que realmente queríamos simplificar las cosas y para aquellos que no parecen ver cómo estamos tratando de lograrlo, permítanme recordarles que vidor fpga básicamente se propone como una forma para expandir los periféricos Cortex m0 con una infraestructura que facilita la adición de cualquier acelerador de dispositivo de lujo a su sistema. Si solo es un usuario de Arduino, no necesitará jugar con RTL y simplemente seguir agregando bibliotecas a su código. Para aquellos que quieran usar fpga, proporcionamos una infraestructura que facilita las cosas y algunos bloques de IP de código abierto gratuitos también para cosas que solían costar bastante dinero, como mipi Rx IP. Finalmente, la placa tiene un conector JTAG, pero probablemente no lo necesite, ya que también lanzamos un emulador de blaster USB que se ejecuta en el brazo.

    Sé que no es fácil ver la imagen completa ahora porque estamos lanzando un poco de todo, pero espero que la comunidad aprecie nuestro trabajo y estoy seguro de que una plataforma crecerá también gracias a las contribuciones de entusiastas como Al.

  • Nadie lo sabe dice:

    He trabajado con FPGA en un nivel favorito y no son sencillos debido a la complejidad de los programadores. Esta implementación de Arduino es solo una pesadilla, ya que aún te obliga a usar las mismas herramientas de Quartus difíciles de usar, y luego gira y agrega varias capas para ir del punto A al B.

    La ÚNICA forma en que esto funcionará es si a alguien se le ocurre una herramienta muy fácil. Realmente necesitan un Arduino real para FPGA.

    ¡Bu, siblo Arduino!

    • Dario Pennisi dice:

      No, no obligamos a nadie a usar una moneda de veinticinco centavos. De hecho, incluso evitamos su uso al proporcionar bibliotecas precompiladas y nuestras intenciones, como escribí, son brindar a los usuarios de Arduino la capacidad de expandir los microcontroladores periféricos solo mediante la inclusión de una biblioteca. Es tan fácil. Hoy en día se vuelve complicado solo si desea implementar sus propios bloques de IP, pero nunca dijimos que resolveríamos esto … A lo sumo dijimos y concluimos que proporcionaremos bloques de IP probados de código abierto junto con controladores de programa y ejemplos de cómo usarlo.

      • Mario Cannistrà (@MarioCannistra) dice:

        Hola Darío. ¿Está planeando tener (o ya tiene) bloques IP de conteo FFT? Me pregunto si sería posible transferir búferes de datos a la FPGA para procesar FFT y recuperar la salida. Gracias mario

        • Dario Pennisi dice:

          Sí, se está trabajando en eso. Estamos trabajando en una biblioteca de sonidos que contiene varias cosas, incluido fft, para filtrar, retardar efectos, etc.

          • Mario Cannistrà (@MarioCannistra) dice:

            ¡Genial, gracias! ¿Existe un foro donde se discute este trabajo o se definen / publican especificaciones? Me gustaría suscribirme a noticias sobre este tema …

          • Dario Pennisi dice:

            El foro está aquí: https://forum.arduino.cc/index.php?board=125.0

  • q2dg (@ q2dg) dice:

    El camino fue https://github.com/FPGAwars/icestudio
    Ahora Arduino está perdido

    • Dario Pennisi dice:

      Aquí vamos de nuevo … Icestudio es una buena herramienta y aprecio el esfuerzo que los desarrolladores ponen en ella, pero honestamente, está lejos de ser tan fuerte y poderosa como las herramientas nativas. Intente admitir síntesis de grado azan, cierre de tiempo, fpgas GRANDES y heterogéneos y, de repente, se dará cuenta de que el software se volverá complejo. Hay una razón por la que xilinx e Intel son los únicos dos jugadores reales en este campo y no solo porque tienen grandes dispositivos, sino porque ponen mucho esfuerzo en sus herramientas. Puede que no te guste el hecho de que sean de código cerrado e increíblemente grandes, pero sería intelectualmente deshonesto considerarlos inusualmente complejos para compararlos con un juguete como icestudio que, por cierto, admite solo unos pocos dispositivos, como el tamaño de las uñas, en comparación con otros dispositivos comerciales. Mango de herramientas.
      Aunque me gustaría ver una cadena de herramientas de código abierto para fpgas, sé que esto solo puede provenir de los proveedores, al menos si nos tomamos en serio el problema.

  • malak dice:

    Lo que realmente me emociona es ver todas estas reacciones dispersas, especialmente cuando los comentaristas (tan regulares) claramente no se molestan en considerar muchos aspectos de este tablero y sus problemas, aunque esto se ha discutido principalmente en las secciones de comentarios del blog relacionado anterior de La-Tecnologia. entradas, incluso con representantes e ingenieros de Arduino interviniendo para responder correctamente a varias inquietudes técnicas, lo cual es raro y excelente.

    Sí, se ha repetido y discutido repetidamente, y sin embargo Darius tiene la paciencia de volver a explicarlo, como lo hago yo: esta no es una herramienta diligente para ingenieros electrónicos, sino más que una propuesta de mejora de “hardware programable” al ecosistema Arduino. , con el objetivo de ofrecer una forma para que la mayoría de los usuarios continúen usando bibliotecas y controladores listos para usar utilizando los diferentes (potentes) chips integrados.

    La diferencia con placas similares es que un jugador importante en este mercado, con el poder (probado) para establecer una plataforma de programación y hardware efectiva, parece estar cambiando, realmente comprometido con brindar soporte para el desarrollo de controladores. Incluso si su enfoque principal era algo como “proporcionaremos nuestros propios bloques de IP integrados y pulidos para que los usuarios (finales) no tengan que hacer trampa en HDL para aprovechar el hardware personalizable”, escucharon y escucharon a la comunidad (como Al y las personas interesadas), que querían un enfoque de bajo nivel para hacer su propia programación FPGA bare metal, y están en el proceso de entregar exactamente esto, que también es raro y excelente.

    Dicho esto, quiero decirte esto, Al Williams: si felicito tus esfuerzos por compartir esta investigación en particular, ya que se basa principalmente en el trabajo de otra persona, por favor, al menos NOMBRE a esta persona como de costumbre en este blog, en lugar de esto. algo tan vago y vergonzoso (cito): “Si hablas francés, buenas noticias, hay algo de información … si el francés de tu escuela secundaria no está funcionando bien, aquí está el enlace de Google Translate … pero yo no t contenido solo para leer la traducción de Google “, así que aquí está tu opinión (sobre lo mismo) …

    No lo conozco en absoluto, pero no se puede ignorar el hecho de que este tipo (francés) ha estado muy activo durante algún tiempo para obtener la información y los archivos necesarios en el foro dedicado de Arduino antes de publicar el primero. libros de texto disponibles (en francés) el pasado mes de septiembre. Solo se necesitan unos segundos para encontrar el nombre de Philippe Boudot.
    Un sincero agradecimiento para él por esta participación particularmente útil (y la buena noticia es que incluso pudo dejar varios comentarios, en un inglés perfectamente legible, inmediatamente después de su artículo anterior sobre el tema, si no lo ha notado).

    • Al Williams dice:

      Bueno, lamento que te sientas así. Creo que nadie que lo lea con el enlace y la discusión detallada de lo que se ha cambiado pensaría por un minuto que dije que este es un trabajo original y me sorprende que así sea. Como mencioné en el artículo, lo que hice fue romper la parte del usuario del verilog y crear un ejemplo de fpgan mucho más simple que apoye directamente a las personas que ya conocen hdl. También reemplacé el programa Java para que la gente no tuviera que instalar la última versión de Java solo para ejecutar un script de 5 líneas. Y puse todo en un repositorio de GitHub, para que no tuvieras que descargar desde tres o cuatro enlaces diferentes para que pudieran estar actualizados. Una vez eliminé el código original para asegurarme de que nadie pensara que acababa de producir esto de la nada. De acuerdo, no mencioné a nadie en particular, pero habría pensado que entre los enlaces el comentario y el gitcha eran abundantemente claros. De alguna manera, cómo funcionan las cosas de código abierto.

      • malak dice:

        Gracias por su respuesta, todavía no he estudiado su presentación, ya que lamento que nuevamente no haya podido nombrar al autor de este blog extranjero, uno al que ha aludido antes de la misma manera bastante anónima. Lamento que tiende a justificar tan completamente la simple omisión de una cortesía bastante básica. El código abierto ciertamente funciona mucho mejor cuando se le da crédito a un trabajo similar, y por lo general es una práctica estándar en La-Tecnologia (e históricamente en el campo científico) cuando se trata de un trabajo original, incluso si se trata de mejorarlo, incluso de manera bastante diferente. y presumiblemente mejor, y su mensaje lo resume bien.

        Ahora, sobre las reacciones muy dudosas sobre esta solución “FPGA” y sus problemas, entiendo la mayoría de ellos, pero dado que los diseñadores y el fabricante parecen mostrar interés en nuestros consejos, preferiría una solución más constructiva. enfoque cómo decir de qué manera se podría mejorar.

        • Dario Pennisi dice:

          Hola malak,
          Gracias por sus amables palabras. Estoy totalmente de acuerdo en que la retroalimentación constructiva es la mejor manera de hacerlo y realmente estoy escuchando, como probablemente también te habrás dado cuenta al mirar el foro de Arduine. Desafortunadamente, parece que a algunas personas que leen la-tecnologia simplemente no les gusta Arduino porque es poco convincente, porque es demasiado simple o por cualquier otra razón que simplemente no tenga en cuenta el simple hecho de que estamos tratando de permitir el uso de cosas complejas a las personas. que nunca tendría la oportunidad de contactarlo. Sí, hay capas extra de programas y sí, hay cosas que podrías optimizar más si sabes lo que estás haciendo, pero no, no obligamos a nadie a usar nuestro programa y si realmente quieres, incluso puedes borrar nuestro boot. cargador y programa de metal desnudo en nuestros tableros.
          Habiendo dicho eso, sé que a algunas personas todavía no les gustará lo que hacemos, probablemente ni siquiera ahondar en la filosofía de Arduino, pero está bien. ruedas sobre una pista plana. Quizás tengan razón y algunas personas aprendan más rápido, pero continuaremos nuestro camino mientras veamos que produce buenos resultados en la mayoría de las personas.

          Acerca de su discusión con, creo que cada contribución es buena y, aunque Philippe no fue nombrado explícitamente, su trabajo fue claramente referenciado, por lo que en mi humilde opinión no es una mala intención aquí. Una vez más, puedes decirle a cualquiera que podría hacerlo mejor más tarde, pero lo hizo muy bien y, parafraseando tus palabras, seamos constructivos.

  • hámster dice:

    Viendo que Darius está aquí 🙂

    ¿Hay algún plan para estandarizar una placa adicional para el conector de la mini computadora porque me gustaría hacerlo pronto? Desafortunadamente, el apoyo oficial despreció mi pregunta. Pensando en un adaptador SATA para poder transmitir video desde MIPI a SSD con cosas de CV.

    • Dario Pennisi dice:

      Hola, siento que haya tenido la impresión de que el apoyo oficial fue despectivo mientras trato de abordar todos los problemas en profundidad.
      En este momento no hay un plan terminado para la adición de mini PCIe en las placas. Estamos buscando una solución que nos permita reutilizar también los pines mkr, pero la inserción es un poco difícil. Tenga en cuenta que nuestra interfaz mini-PCIe solo admite USB, por lo que no hay líneas rápidas y un adaptador SATA debe pasar por un controlador USB.
      Si desea discutir estos temas en profundidad, le recomendaría moverlo al foro dedicado de Arduino (https://forum.arduino.cc/index.php?board=125.0) donde capturamos las entradas de los usuarios. y dónde podemos realizar un seguimiento de las discusiones de una manera más estructurada.

  • Iván dice:

    Primero, un gran agradecimiento por este gran artículo. Realmente me gusta la idea, hablando como ex-diseñador de FPGA, actualmente ingeniero de BSP SW.

    A menudo, en mi trabajo reciente como ingeniero de software, encuentro que extraño FPGA honestamente. No tanto por la operación real como por una mayor flexibilidad de prueba, especialmente si estamos hablando de pruebas automáticas. Aquí brillaría Vidor. Creo que podría usarse como un equipo de prueba bastante bueno y también podría usarse para entregas rápidas de “módulo pequeño” de manera bastante eficiente. Por no hablar de la producción. También es relativamente económico … Realmente no veo ningún inconveniente, excepto que el IDE, como con todos los dispositivos FPGA, necesita madurar un poco.

    Ahora no estoy seguro de por qué hay tantos comentarios negativos; supongo que la gente todavía tiene miedo de los FPGA porque parecen mencionar problemas de “IDE funky” con las conversiones de Arduino, diciendo que los diseñadores de FPGA “reales” no afectarían a Vidor. .. Supongo que ninguno de estos chicos ha experimentado FPGA, de lo contrario sabrían cómo funciona con Altera (nunca diré Intel :)). Solo diré esto: debes enviar al menos un ticket de servicio a Altera para que te llamen “diseñador de FPGA”. Aquellos que conocen SOPC Builder y cómo se comportó Qsys al principio sabrán a qué me refiero;) Y creo que sería un dispositivo completamente interesante para los “verdaderos diseñadores de FPGA”.

    Solo mis 2 centavos …

Eva Jiménez
Eva Jiménez

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *