Contactos

Brazo. Curso de entrenamiento. IAR EWARM. Creando un proyecto. Creación de una plantilla de proyecto EWARM de IAR (y no solo para ARM) IAR Embedded Workbench BAY Descripción

El entorno de Workbench de IAR es propietario y requiere licencias (si su código supera los 32 KB), pero es suficiente para uso en el hogar.

Directamente el entorno de desarrollo, que incluye el compilador. Después de instalar el IAR, deberá registrarlo completando el cuestionario en el sitio web de la compañía. Especifique el buzón real, le enviará una clave de licencia.

Desde el sitio St Microelectronic, deberá descargar el archivo: contiene:

  • Cmsis (Norma de interfaz de software de microcontrolador de cortex): una biblioteca que determina la operación del kernel, la misma corteza M3 (hablaremos más adelante más tarde);
  • Chillido Startagen biblioteca periférica: la biblioteca periférica estándar, que le ahorrará mucha fuerza en la configuración de una u otra periferia;
  • Ejemplos. - Si necesita aprender cómo funciona los periféricos, entonces esta carpeta se encuentra muchos ejemplos de todas las ocasiones.

Ejecutar el IAR, crea un espacio de trabajo. ArchivoNuevoEspacio de trabajo.. Siguiente proyecto nuevo, menú. Proyecto.CREAR NUEVO PROYECTO ...

El programa se puede escribir en ensamblador, SI o C ++. Usaremos el lenguaje de programación C.

El proyecto creado debe estar configurado, para este abrir el menú. Proyecto.Opciones.. En la pestaña Opciones generales. Elija el microcontrolador de destino - STM32F100X4..


Además, en Configuración de la biblioteca. poner un tilde Usa CMSIS. El entorno de IAR ya incluye esta biblioteca, y la agrega al proyecto es opcional, pero las nuevas versiones pueden emitir una prevención del formulario:

ADVERTENCIA: la etiqueta 'xxxxx' se define en Pubweak en una sección declarada implícitamente

El problema se resuelve reemplazando algunas filas en la biblioteca CMSIS incorporada: en el lugar de referencia a código: reordenar agregar noroot (1). Por ejemplo:

Pubweak nmi_handler
Sección .Text: Código: REGISTRO: NOROOT (1)
Nmi_handler

A continuación, agregue la ruta a la que se almacenarán los archivos * .c y * .H, para esto, vamos a la pestaña Compilar C / C ++r ⇒ Preprocesador. Y Agregar y Projdir & (Variable que contiene la ruta a la carpeta del proyecto).


En la sección del depurador, elija como depurador. ST-LINK.. Pon las casillas de verificación Use el cargador flash. y Verificar En la pestaña Descargar.

Seguimos estudiando la programación de Microcontrollers STM32.



En primer lugar, nos familiarizaremos con la compañía por el fabricante - St Microelectronics.

Ir a la sección Productos -\u003e Microcontroladores. Seleccione la pestaña CORTEX ARM STM32.

ST produce microcontroladores STM32 en tres segmentos principales:

  • Ultra-bajo de constight
  • Propósito general
  • Alto rendimiento.

Este circuito indica la correspondencia del nombre del microcontrolador y el kernel de la corteza del brazo aplicado en ella.

Microcontrolador STM32F303VCT6.Con lo que tenemos que conocerlos más cerca, se encuentra en el centro del esquema especificado y puede trabajar en una frecuencia de reloj a 72 MHz. El rendimiento del microcontrolador se estima en 90 millones de operaciones por segundo.

En las páginas con una descripción de los microcontroladores de cada familia, se indican los módulos periféricos principales, y se indican las alineas básicas de los microcontroladores de esta familia.

El paquete IAR se puede utilizar en dos modos:

  • versión con todas las funciones de modo de 30 días
  • modo con restricción por volumen de código compilado.

Para STM32, este es un código de 32 kilobytes (desde los 256 kilobytes disponibles de la memoria flash). Pero para las tareas de entrenamiento, es suficiente, por lo que usaremos esta opción en particular.

Ejecute el archivo descargado e vaya a la sección Instale IAR Embedded Workbench.


El programa IAR inicia su instalación. Aceptamos el acuerdo de licencia y especifiquemos la carpeta donde se instalará el entorno de desarrollo. Puedes dejar el valor predeterminado.

Además, estamos invitados a elegir los controladores de dispositivos USB que necesitamos. Dado que utilizaremos el programador de ST-Link, recomiendo eliminar los otros controladores, lo que acelerará ligeramente el proceso de instalación.

Establecemos software para microcontroladores STM, y en este programa, IAR completa su instalación.

Ahora establece información con licencia. Ejecutamos el administrador de licencias de HIAR, y estamos invitados a ingresar a la clave de licencia. Para hacer esto, debe registrar un producto en el sitio web de Sistemas de IAR. Si ya tiene una clave de licencia, puede ingresarla. Si no, vaya al sitio. Registro gratis. Y haga clic en el botón Registrarse.

En el formulario apropiado, ingrese el tamaño de la licencia: tamaño de código limitado y llena los campos requeridos. El correo electrónico debe especificarse correctamente, porque una confirmación de confirmación vendrá allí. También se requiere especificar la industria en la que se aplicará el entorno de desarrollo de IAR y especificar el fabricante de microcontroladores para los cuales planeamos aplicar esta microelectrónica miércoles.
Respondemos algunas preguntas y confirmamos el registro. Obtenemos una carta de confirmación correspondiente a la dirección de correo electrónico especificada.

La licencia se activa con éxito, el programa IAR está listo para funcionar. Podemos ejecutar sistemas IAR. Seleccione el idioma de la interfaz y vea la ventana del entorno de desarrollo.


Izquierda - Área de trabajo del proyecto.
A la derecha, el código del programa, y \u200b\u200bla parte inferior de la ventana Estado del proyecto, donde se mostrarán los errores de advertencias y compilación.

Leer críticas locales, ya estaba pensando en comprar un soldador con una parcela de T12. Hace mucho tiempo quería algo portátil en un lado, bastante poderoso en el otro lado, y, por supuesto, normalmente manteniendo la temperatura.
Tengo un relativamente muchos hierro de soldadura comprados en diferentes momentos y para diferentes tareas:

Hay un EPSN-40 y Moskabel 90W, un poco más nuevo, un poco más nuevo, EMF-100 (Toporik), un TLW chino completamente nuevo 500W. Los dos últimos están especialmente bien conservados la temperatura (incluso cuando se soldan tubos de cobre), pero no son muy convenientes para soldar las fichas :). No se ha liberado un intento de usar el ZD-80 (una pistola con un botón), sin poder, sin mantenimiento normal de la temperatura. Otro tipo "electrónico" como Antex CS18 / XS25 es adecuado solo para cosas muy pequeñas, y no hay un ajuste incorporado. Hace 15 años, se usó Den-on "Ovsky SS-8200, pero punzó allí bastante pequeño, el sensor térmico estaba lejos y el gradiente de temperatura es enorme, a pesar de los 80W declarados, no habrá desafío en el estilo.
Como versión estacionaria, he estado usando Lukey 868 durante años (es casi 702, solo calentador de cerámica y algunas cosas más pequeñas). Pero no hay portabilidad en él, con usted en su bolsillo o una bolsa pequeña no puede tomar.
Porque En el momento de la compra, aún no estaba seguro "y si la necesito", la opción de presupuesto mínimo se tomó con K-Ranco y un asa, lo más posible al hierro de soldadura habitual de Lukey. Es posible que parezca que no sea muy cómodo con alguien, pero es más importante para mí que los mangos de ambos soldados utilizados son familiares y la misma mentira en su mano.
Una revisión adicional se puede dividir en dos partes: "Cómo hacer un dispositivo" y un intento de analizar "como dispositivo y el firmware del controlador".
Desafortunadamente, el vendedor eliminó este SKU en particular, por lo que solo puedo dar un enlace a una instantánea del registro de pedidos. Sin embargo, no hay problema para encontrar un producto similar.

Parte 1 - diseño

Después de la inspección de Macate, surgió la pregunta sobre la elección de un diseño.
Hubo una fuente de alimentación casi apropiada (24V 65W), casi 1: 1 altura con una tabla de control, un poco ya, y alrededor de 100 mm. Teniendo en cuenta que esta unidad de suministro de energía tiene algún tipo de conducción (¡no por su culpa!) SVYAZNOY y no es un hardware barato de Lucent-OSKA, y en su rectificador de salida hay dos conjuntos de diodos en el total de 40a, decidí que no es mucho peor que peor aquí chino en 6a. Al mismo tiempo y Wallow no lo hará.
La verificación de prueba en el equivalente de carga probado (PEV-100, se desenrosca por unos 8 ohmios)

mostró que la BP prácticamente no se calienta, en 5 minutos, funciona el transistor clave, a pesar de su cuerpo aislado, grados calentados de hasta 40 (un poco cálidos), diodos de calentamiento (pero la mano no se quema, es bastante cómoda) y El voltaje sigue siendo 24 voltios con kopecks. Las emisiones aumentaron a cientos de milivolt, pero para este voltaje y este uso es bastante normal. En realidad, detuve la experiencia debido a una resistencia de carga, aproximadamente 50W se distinguió en su mitad inferior y la temperatura pasó por cien.
Como resultado, se identificaron las dimensiones mínimas (BP + Tablero de control), el siguiente paso fue el caso.
Dado que uno de los requisitos fue la portabilidad, hasta la capacidad de romper los bolsillos, la opción con edificios confeccionados desaparecieron. Los casos de plástico universales disponibles no fueron en absoluto de tamaño adecuado, las carcasas de aluminio chino debajo de T12 para los bolsillos de la chaqueta también son vigorosos, y ya no quieren esperar. La opción con el caso "impreso" no se pasó, sin fuerza, sin resistencia al calor. Addobo la oportunidad y recordé a la juventud pionera, decidí hacer de una antigua fibra de vidrio de un lado, mentir desde el momento del CSSP. Foil Tolstin (¡Micrómetro en una pieza cuidadosamente alisada mostrada 0.2mm!) De todos modos, no permitió que las pistas más delgadas con más delgada del milímetro debido a las subcoluciones laterales, y para el casco es el más.
Pero la pereza junto con la renuencia del polvo no aprobó categóricamente la sierra con una sierra de hacks o cortador. Después de los ejes de las capacidades tecnológicas existentes, decidí probar la opción de aserrar textolite en la baldosa eléctrica. Como resultó, una opción muy conveniente. El disco corta el sello de vidrio sin ningún esfuerzo, el borde es casi perfecto (con un cortador, sierra para metales o un rompecabezas, ni siquiera comparar), el ancho de la longitud del corte también es el mismo. Y, que es importante, todo el polvo permanece en el agua. Está claro que si necesita espolvorear una pieza pequeña, luego despliegue las baldosas durante demasiado tiempo. Pero incluso en este pequeño cuerpo fue necesario bajo el medidor del corte.
A continuación, la carcasa con dos compartimentos está conectada, una debajo de la fuente de alimentación, la segunda para la placa de control. Inicialmente, no planeé dividir. Pero, como la soldadura, se soldó a la esquina de la placa cuando se enfría, busca reducir el ángulo y la membrana adicional es muy útil.
El panel frontal se dobla de aluminio en forma de la letra P. En la flexión superior e inferior, se corta la rosca para la fijación en la caja.
Como resultado, resultó (con el dispositivo todavía "jugar", por lo que la pintura sigue siendo muy caliente, de los restos del antiguo Balonchik y sin moler):

Las dimensiones generales de la propia carcasa - 73 (ancho) x 120 (longitud) x 29 (altura). Es imposible hacer un ancho y altura, porque El tamaño de la placa de control es de 69 x 25, y tampoco es fácil encontrar una fuente de alimentación más corta.
El conector se instala en la parte posterior con el conductor eléctrico y el interruptor estándar:


Desafortunadamente, el micro interruptor negro en los escombros no resultó, será necesario ordenar. Por otro lado, el blanco es notable. Pero el conector establecí específicamente el estándar, esto permite que en la mayoría de los casos no lo tome con usted un cable adicional. A diferencia de la opción con una toma de portátil.
Vista desde abajo:

El aislador negro del material similar al caucho se mantuvo de la fuente de alimentación de origen. Es bastante grueso (un poco menos de un milímetro), resistente al calor y muy mal cortada (por lo tanto, el recorte aproximado para un puntal de plástico, un poco más cerca). Se siente como el asbesto, el caucho empapado.
A la izquierda de la fuente de alimentación, el radiador rectificador, a la derecha, el transistor clave. En el BP original, el radiador era una fina franja de aluminio. Decidí "exacerbar" por si acaso. Ambos radiadores están aislados de la electrónica, por lo que pueden establecer libremente a las superficies de cobre del caso.
Se monta un radiador adicional para la placa de control en la membrana, el contacto con los recintos de D-Pak se proporciona por grapa térmica. No hay mucho beneficio, pero mejor aire. Para excluir el cierre, tuve que sentarme un poco de los contactos del conector "Aviación".
Para la claridad: soldadura de hierro al lado del caso:

Resultado:
1) El hierro de soldadura funciona aproximadamente como se indica y se ajusta a los bolsillos de la chaqueta.
2) En la antigua basura, no se recicla y ya no está mintiendo: una fuente de alimentación, una pieza de fibra de vidrio de 40 años de edad, un empleado con un nitroemal de lanzamiento de 1987, microinterruptor y una pequeña pieza de aluminio.

Por supuesto, desde el punto de vista de la conveniencia económica, es mucho más fácil comprar un cuerpo confeccionado. Deje que los materiales estén y prácticamente libres, pero "tiempo-dinero". Justo en mi lista, las tareas no aparecieron en absoluto, pensó la tarea "hacer más barata".

Parte 2 - Notas sobre el funcionamiento

Como puedes ver, en la primera parte, no mencioné cómo funciona todo. Me pareció apropiado para no mezclar la descripción de mi diseño personal (en general, "en mi opinión, en mi opinión) y el funcionamiento del controlador, que es idéntico o similar a muchos.

Como cierta advertencia previa, quiero decir:
1) Los diferentes controladores tienen varias ingeniería de esquemas diferentes. Incluso en las placas de circuito de idénticas externas pueden ser un poco diferentes de componentes. Porque Solo tengo uno de mis dispositivos específicos, no puedo garantizar una coincidencia con los demás.
2) El firmware del controlador, que analizé, no es el único disponible. Es común, pero puede soportar otro firmware que está funcionando de una manera diferente.
3) No se aplico a la laurel del descubridor en absoluto. Muchos puntos ya han sido previamente iluminados por otros observadores.
4) Luego habrá muchas letras aburridas y una sola imagen alegre. Si el dispositivo interno no le interesa, deténgase aquí.

Revisión de la construcción

Los cálculos adicionales se relacionarán en gran medida con los circuitos del controlador. Para comprender su trabajo, el esquema exacto no es necesariamente, es suficiente tener en cuenta los componentes principales:
1) Microcontrolador STC15F204EA. Ningún chip especialmente excepcional del 8051 Family Chip es notablemente más rápido que el original (original hace 35 años, sí). Está alimentado por 5V, tiene un ADC de 10 bits con un interruptor, 2x512 o NVRAM, 4KB de memoria de software.
2) Estabilizador en + 5V, que consta de 7805 y una resistencia poderosa para reducir la disipación de calor (?) A 7805, resistencia 120-330 ohmios (diferentes tarifas). La solución es altamente presupuestaria y más rápida.
3) Transistor de potencia STD10PF06 con flejado. Funciona en modo clave a baja frecuencia. Nada excepcional, viejo.
4) Amplificador de voltaje de termopar. La rápida resistencia regula su ganancia. Tiene protección en la entrada (desde 24V) y conectada a una de las entradas del ADC MK.
5) Fuente de voltaje de referencia en TL431. Conectado a una de las entradas del ADC MK.
6) Sensor de temperatura de la tabla. También conectado al ADC.
7) Indicador. Conectado a MK, funciona en el modo de visualización dinámica. Sospecho que uno de los principales consumidores + 5V.
8) Mando de control. La rotación ajusta la temperatura (y otros parámetros). La línea de los botones en muchos modelos no está publicada ni cortada. Si se conecta, le permite ajustar los parámetros adicionales.

¿Qué tan fácil es notar, todo el funcionamiento está determinado por un microcontrolador? ¿Por qué los chinos ponen exactamente esto? Es desconocido para mí, no es mucho más barato (alrededor de $ 1, si toma algunas piezas) y a granel a través de los recursos. En un firmware chino típico, hay libremente, literalmente, una docena de bytes de software de programas. El firmware en sí está escrito con o algo similar (hay colas claras de la biblioteca).

Funcionamiento del firmware del controlador.

No tengo los textos de origen, pero IDA no está haciendo ninguna parte :). El mecanismo de trabajo es bastante simple.
Cuando inicia el firmware:
1) Inicializa el dispositivo
2) Parámetros de descarga de NVRAM
3) Comprueba el clic del botón, si se presiona, está esperando a un prensado y inicia la configuración de los parámetros extendidos (PXX), existen muchos parámetros, si no hay comprensión, entonces es mejor no tocarlos. Puedo poner el diseño, pero tengo miedo de provocar problemas.
4) muestra "mar" a la pantalla, esperando y lanza el ciclo de trabajo principal

Hay varios modos de operación:
1) Mantenimiento normal, normal de la temperatura.
2) Ahorro de energía parcial, temperatura 200 grados
3) Apagado completo
4) Modo de configuración P10 (paso de ajuste de temperatura) y P4 (fortalecimiento del termopar OU)
5) Modo de gestión alternativa

Después de comenzar, el modo se está ejecutando 1.
Con una presión corta del botón, puede ir al modo 5. Allí puede girar la perilla izquierda a la izquierda y entrar en el modo 2 o hacia la derecha: aumentar la temperatura en 10 grados.
Con una prensa prolongada, se realiza la transición a 4 MODE.

En las revisiones anteriores había muchas disputas, cómo instalar correctamente el vibrador. Según mi firmware puedo decir inequívocamente, no hay diferencia. Se realiza el cuidado del modo de ahorro de energía parcial. enmiendas El estado del vibrador, la falta de cambios significativos en la temperatura de la picadura y la ausencia de señales del asa, todo esto durante 3 minutos. Cierre un vibrador o abierto: completamente sin importancia, el firmware analiza solo cambios en un estado. La segunda parte del criterio también es interesante: si soldadura, la temperatura de la picadura está inevitablemente flotando. Y si la desviación se fija en más de 5 grados de la salida especificada, la salida al modo de ahorro de energía no será.
Si el modo de ahorro de energía dura más especificado, el hierro de soldadura se apagará por completo, el indicador se cero.
Salida de los modos de ahorro de energía: vibración o por perilla de control. No hay reembolso de todo el ahorro de energía a parcial.

La temperatura MK se dedica a una de las interrupciones del temporizador (dos están involucradas dos, el segundo se dedica a la pantalla y de lo contrario. ¿Por qué no está claro? El intervalo de interrupción y otras configuraciones se seleccionan de la misma manera, era bastante posible hacer con una sola interrupción). El ciclo de control consta de 200 interrupciones de temporizador. En la interrupción del 200º, la calefacción se desconecta necesariamente (- 0.5% de potencia), se retrasa un retraso, después de lo cual el voltaje se mide desde el termopar, el sensor térmico y la tensión de referencia con TL431. Además, todas las fórmulas y coeficientes (parcialmente especificados en NVRAM) se recalculan a la temperatura.
Aquí me permitiré un pequeño retiro. ¿Por qué en tal configuración, el sensor térmico no es bastante comprensible? Con la organización derecha, debe dar una corrección de temperatura en un termopar de spiem frío. Pero en este diseño, mide la temperatura de la placa que no tiene ninguna relación con la deseada. Es necesario que se transfiera al asa, lo más cerca posible del cartucho T12 (y otra pregunta) en la que el cartucho es un termopar frío de esterilización), o tirar en absoluto. Tal vez no entiendo algo, pero parece que los desarrolladores chinos desestimaron estúpidamente el esquema de compensación con algún otro dispositivo, sin comprender los principios del trabajo.

Después de medir la temperatura, se calcula la diferencia entre la temperatura especificada y del flujo. Dependiendo de si es grande o pequeño, dos fórmulas funcionan, una grande, con un montón de coeficientes y acumulación del Delta (aquellos que desean leer sobre la construcción de los reguladores PID), el segundo es más fácil, en grandes diferencias, Necesidad de calentar el máximo, o deshabilitar completamente (dependiendo del signo). La variable PWM puede ser de 0 (deshabilitada) a 200 (completamente incluida), por el número de interrupciones en el ciclo de control.
Cuando solo me encendí el dispositivo (y no se metió en el firmware), estaba interesado en un punto: no había un batido de ± grados. Esos. La temperatura se mantiene de forma estable ni se controla a la vez 5-10 grados. Después de analizar el firmware, resultó que siempre debería temblar. Pero con la desviación de una temperatura determinada, menos de 2 grados firmware no se mide, sino una temperatura específica. Esto no es bueno y no está mal, la descarga más joven de temblores también es muy molesta, solo necesitas tener en cuenta.

Completando la conversación sobre el firmware, quiero mencionar algunos puntos más.
1) Con los termopojos, no he trabajado durante 20 años. Tal vez durante este tiempo se hayan vuelto lineales;), pero anteriormente para cualquier medida precisa y, si es posible, siempre se ha introducido la función de ajustar la no linealidad, una fórmula o tabla. Aquí esto no es de la palabra en absoluto. Solo puede configurar el desplazamiento de cero y el ángulo de inclinación. Mayo en todos los cartuchos use termopares de alta línea. O la dispersión individual en diferentes cartuchos es mayor que el posible grupo no linealidad. Me gustaría esperar la primera opción, pero la experiencia insinúa en la segunda ...
2) Por la razón para mí, la temperatura se establece en el firmware con un punto fijo y una resolución de 0.1 grados. Está claro que debido al comentario anterior, ADC de 10 bits, la corrección incorrecta del extremo frío, el alambre sin blindaje, etc. La exactitud real de las mediciones y 1 grado no será de ninguna manera. Esos. Parece que otra vez sodalmente con algún otro dispositivo. Y la complejidad de la computación aumentó ligeramente (repetidamente tiene que dividir / multiplicar diez números de 16 bits).
3) En la pizarra hay almohadillas de contacto RX / TX / GND / + 5V. Por lo que entiendo, los chinos estaban especialfirmware y un programa especial chino que le permite recibir datos directamente de los tres canales ADC y configurar los parámetros PID. Pero en el firmware estándar no hay nada de eso, las conclusiones están diseñadas exclusivamente para llenar el firmware en el controlador. El programa de llenado está disponible, funciona a través de un puerto serie simple, solo se necesitan niveles TTL.
4) Los puntos en el indicador tienen su propia funcionalidad: la izquierda indica el modo 5, el promedio: la presencia de vibración, la derecha: el tipo de salida de temperatura (exhibida o actual).
5) Se asignan 512 bytes para registrar la temperatura seleccionada. La grabación en sí está hecha de manera competente: cada cambio se escribe en la próxima celda gratuita. Tan pronto como se alcanza el final, el bloque se borra completamente, y la grabación se realiza en la primera celda. Cuando se enciende, se toma el valor registrado más lejano. Esto le permite aumentar el recurso un par de cientos de veces.
Propietario, recuerde: rotando la perilla de ajuste de temperatura, usted pasa el recurso insustituible de la NVRAM incorporada!
6) Para los ajustes restantes, se utiliza la segunda unidad NVRAM.

Con el firmware, todo, si surge una pregunta adicional, pregunte.

Energía

Una de las características importantes del soldador de hierro es la potencia máxima del calentador. Es posible estimarlo de la siguiente manera:
1) Tenemos un voltaje de 24V
2) Tenemos Sting T12. Medido por la resistencia de la picadura en el estado frío es poco más de 8 ohmios. Hice 8.4, pero no asumo que el error de medición es inferior a 0,1 ohmios. Supongamos que la resistencia real es de al menos 8,3 ohmios.
3) la resistencia de la clave STD10PF06 en estado abierto (por hoja de datos), no más de 0,2 ohmios, típicos - 0.18
4) Además, es necesario tener en cuenta la resistencia de 3 metros de alambre (2x1.5) y el conector.

La resistencia final de la cadena en el estado frío es de al menos 8,7 ohmios, lo que da una corriente límite en 2.76a. Teniendo en cuenta la caída en la llave, los cables y el conector, el voltaje en el calentador en sí será de aproximadamente 23V, lo que le dará el poder de aproximadamente 64 W. Y esta es la capacidad límite en la condición fría y excluyendo el deber. Pero no debes estar especialmente molesto: 64 W es bastante. Y considerando el diseño de la picadura, suficiente para la mayoría de los casos. Revise el rendimiento en el modo de calefacción constante, coloqué la punta de la punta en una taza con agua: el agua alrededor de la picadura estaba hirviendo y paris muy alegremente.

Pero el intento de ahorrar usando BP de una computadora portátil tiene una eficiencia muy dudosa: una reducción de estrés externamente menor conduce a un tercio de poder: en lugar de 64 W, habrá aproximadamente 40. ¿Vale la pena ahorrar $ 6?

Si, por el contrario, intente apretar los 70W declarados desde el soldador, hay dos formas:
1) Poco para aumentar el voltaje de BP. Es suficiente para aumentar solo 1b.
2) Reducir la resistencia a la cadena.
Casi la única opción, cómo reducir ligeramente la resistencia a la cadena, reemplace el transistor clave. Desafortunadamente, casi todos los transistores de canales P en el cuerpo utilizados y para el voltaje requerido (para 30V no me arriesgaría a poner, la acción sea mínima) tener RDSON similar. Y sería doblemente maravilloso, al mismo tiempo, la tarifa del controlador sería peor. Ahora, en el modo de calentamiento máximo en el transistor de llaves se distingue cerca de vatios.

Precisión / Estabilidad de Mantenimiento de Temperatura

Además del poder, la estabilidad del mantenimiento de la temperatura es igualmente importante. Y personalmente para mí, la estabilidad es aún más importante que la precisión, porque si el valor en el indicador también se puede capacitar, generalmente lo hago (y no es muy importante que en la exposición 300 grados realmente en el estado - 290), por lo que que la inestabilidad no supera. Sin embargo, en las sensaciones, la estabilidad de mantener la temperatura en T12 es notablemente mejor que en los sales de la serie 900.

Lo que tiene sentido rehacer en el controlador.

1) El controlador se calienta. No fatalmente, sino más deseado. Además, ni siquiera lo calentará, y el estabilizador es 5V. Las mediciones mostraron que la corriente de 5B es de aproximadamente 30 mA. 19V de cayendo a 30 mA proporciona una calefacción constante de aproximadamente 0,6 km. De estos, en la resistencia (120Ω), aproximadamente 0.1W y otros 0.5W se asignan, en el estabilizador en sí. Se puede ignorar el consumo del resto del esquema, solo 0.15W, desde donde se gasta la parte notable en el indicador. Pero la tarifa es pequeña y se ensayó simplemente en ninguna parte, si solo en una bufanda separada.

2) Tecla de encendido con gran resistencia (¡relativamente grande!). El uso de una clave de resistencia a 12 de 0.05 ohmios eliminaría todos los problemas de su calefacción y agregaría la potencia del calentador del cartucho cerca del vatio. Pero el cuerpo ya no sería 2x milímetro DPAK, y el mínimo es mayor. O generalmente rehecho el control en el N-Channel.

3) Transferencia NTC al asa. Pero entonces tiene sentido moverse allí y un microcontrolador, y la llave de potencia y el voltaje de referencia.

4) Expansión de la funcionalidad del firmware (varios conjuntos de parámetros PID para persianas diferentes, etc.). Teóricamente, es posible, pero personalmente es más fácil para mí (¡y más barato!) Para volver a cerrar un STM32 más joven, que para ingresar a la memoria existente.

Como resultado, tenemos una situación maravillosa: puede rehacer muchas cosas, pero casi cualquier alteración requiere lanzar la tarifa antigua y hacer una nueva. O no toque lo que estoy inclinado por ahora.

Conclusión

¿Tiene sentido ir a T12? No lo sé. Mientras trabajo solo con una parcela de T12-K. Para mí, es uno de los más versátiles, y el polígono caluroso cálido, y las conclusiones del peine de las Erzats-Wave, puede robar / excavar, y es posible calentar la salida separada al extremo afilado.
Por otro lado, el controlador existente y la falta de medios de identificación automática para un tipo particular de picadura complican el trabajo con T12. ¿Qué le impedía que Hakko empujara alguna resistencia / diodo / chip de identificación dentro del cartucho? Sería ideal si hubiera varias ranuras debajo de la configuración individual del sello (al menos 4) y cuando lo mostraba, cargaba la máquina deseada. Y en el sistema existente puede hacer un máximo de hacer una elección de la picícula de mano. Pretendiendo el volumen de trabajo, entiende que la piel de oveja no vale la pena. Y los cartuchos son acordes con toda una estación de soldadura (si no lleva a China $ 5). Sí, por supuesto, es posible mostrar experimentalmente la tabla de corrección de temperatura y pegue la placa en la tapa. Pero con los coeficientes PID (la estabilidad depende directamente de) no se realiza. De pendientes a la sugerencia, están obligados a ser diferentes.

Si sueltas pensamientos, sueña, resulta lo siguiente:
1) Si no hay una estación de soldadura, pero quiero ser mejor olvidarse de 900 y tomar T12.
2) Si no se necesita necesidad de modos de soldadura baratos y precisos, es mejor tomar un simple hierro de soldadura con ajuste de potencia.
3) Si la estación de soldadura ya está disponible a 900x, entonces la versatilidad de T12-K y la portabilidad de T12-K resultó ser una altura.

Ejecutar IAR AVR. Se abre la ventana Embedded Workbench Startup, puede crear un proyecto usándolo, pero iremos a otra forma, por lo que hacemos clic en Cancelar. La ventana se cerrará y antes de nosotros, IAR aparecerá en toda su gloria inexperial.

Seleccione en el Proyecto Menú superior\u003e Crear nuevo proyecto ...

IAR se propondrá elegir el tipo de plantilla del proyecto (plantillas de proyectos). Seleccione C\u003e Main y haga clic en Aceptar.

En el cuadro de diálogo Guardar estándar, encontramos o creamos una carpeta y guardemos el proyecto. El proyecto está listo. Miro a IAR.

Fila superior - Barra de menú casi estándar. Barra de herramientas debajo de los botones.

En el lado derecho está el editor de código. Ahora hay un archivo principal.c allí, pero es solo una función principal () vacía.

En el lado izquierdo hay una ventana de espacio de trabajo (espacio de trabajo), que muestra la estructura del proyecto. Cualquier proyecto de IAR debe estar en al menos un espacio de trabajo.

En la parte superior del espacio de trabajo hay un menú desplegable. Estas son las llamadas configuraciones de proyectos. De forma predeterminada, son dos - depuración y liberación. Se diferencian entre sí en la configuración del proyecto. Puedes crear tus propias configuraciones.

Guardar espacio de trabajo. Si no lo haces ahora, tienes que hacerlo en la etapa de compilación. Seleccione en el archivo\u003e Guardar menú de espacio de trabajo

Permítanos configurar la configuración del proyecto para la configuración de depuración. Seleccione en el menú Proyecto\u003e Opciones

O haga clic con el botón derecho en la marca de verificación opuesta al nombre del proyecto.

Se abrirá un cuadro de diálogo con múltiples configuraciones.

Elija un tipo de microcontrolador
Opciones generales\u003e Target\u003e Configuración del procesador
Tengo este ambiente ATMEGA8535.

Permítanme usar los nombres de los bits definidos en el archivo HEDER
En general Opciones\u003e Sistema Ponga una garrapata En habilitación Definiciones de bits en archivos de I / O-Include

Aunque no necesitaremos esta configuración ahora, es útil saber dónde está.

Encienda la generación de listado de ensambladores.. Opción opcional, pero generalmente me enciendo para ver lo que ha hecho el compilador.
Compilador C / C ++\u003e LISTA\u003e Fichero de lista de salida de garrapatas

Cambiar el formato del archivo de salida.
Enlazador\u003e Salida.
La tabla de archivos de salida de campo B anula la casilla de verificación predeterminada y reemplace la extensión D90 en Hex
En el campo Formato, seleccione Otro y en el menú desplegable Formato de salida, seleccione el tipo de archivo Intel-Standart

Haga clic en Aceptar.
Ahora copie e inserte el texto de nuestro programa en main.c

#Incluir.
#Incluir.

en t. Principal ( vacío. )
{
Char no firmado. LED \u003d 1;
DDRC \u003d 255;

Tiempo (1)
{
PORTC \u003d ~ LED;
__delay_cycles. (400000);
LED \u003d LED.<<1;
Si (LED \u003d\u003d 0)
LED \u003d 1;
}
Regreso. 0;
}

Haga clic en Hacer botón.

Si todo se realiza correctamente, IAR se compila y recopilará el proyecto, y la ventana Mensajes se abrirá en la parte inferior.

Antes de que el brazo haya comprado Keil, los mejores indicadores prácticamente en todos los indicadores fueron compiladores de Sistemas de IAR. Ahora la situación se niveló y en algunas pruebas, el compilador de Keil incluso excede el compilador de IAR. Pero aquellos que están acostumbrados a trabajar en IAR no tienen mucho sentido dominar el nuevo entorno.

Milandr proporciona archivos de apoyo para sus microcontroladores para el entorno de IAR, pero la conexión de estas bibliotecas no es tan obvia, como en el caso de Pack para Keil. Este artículo se dedicará a cómo comenzar a trabajar con Milandber Microcontrollers en el entorno de IAR. Escribimos el "Helloworld" habitual, es decir, me fusioné LEDs.

Se creará un proyecto con una implementación vacía de la función principal. Abra las opciones del proyecto y configúrela para un microcontrolador específico, seleccione el elemento del menú o haga clic en Alt + F7. A continuación, solo daré las opciones que necesita para cambiar, todo lo demás permanece predeterminado. Por pestañas:

OPCIONES GENERALES.

Elegimos nuestro microcontrolador, 1986v92u se refiere al grupo 1986v9x.

Convertidor de salida.

Si necesita un archivo de firmware hexagonal, puede habilitarlo en esta pestaña.

Enlazador

Aquí debe seleccionar el archivo que solicita el diseño de la memoria para MK. Este archivo MDR32F1.SI. Hemos copiado anteriormente al instalar SPL. La definición de $ Toolkit_DIR $ solo contiene la ruta al directorio de instalación, en la que copiamos las carpetas Milandr.

C: \\ Archivos de programa (X86) \\ IIR Systems \\ Workbench Embedded 8.0 \\ ARM \\ Config \\ FlashLoader \\ Milandr \\ MDR1986VE9X \\ MDR32F1.ICF

El área de memoria se puede ajustar presionando Editar, pero luego es mejor guardar la versión modificada en un nuevo nombre para dejar la opción inicial de trabajo.

Depurador.

En la pestaña Configuración, debe seleccionar nuestro depurador, J-Link ya está presente en la lista, elíjalo. El depurador de ULINK2 no está en la lista, aparentemente debe ser instalado adicionalmente. Además, debe seleccionar los archivos a continuación. Flashmdr32f1x.mac y jbr_1986be9x.ddf.que también copiamos al instalar SPL.

C: \\ Archivos de programa (X86) \\ IIR Systems \\ Workbench Embedded 8.0 \\ ARM \\ Config \\ FlashLoader \\ Milandr \\ MDR1986VE9X \\ FLOFMDR32F1X.MAC
C: \\ Archivos de programa (X86) \\ IIR SISTEMAS \\ Workbench Embedded 8.0 \\ Arm \\ Config \\ Debugger \\ Milandr \\ MDR1986VE9X \\ JBB_1986BE9X.DDF

En las siguientes opciones de descarga de marcadores "Verifique la descarga" y elija el archivo de cargador de arranque Flashmdr32f1x.boardque descarga nuestro programa al microcontrolador. Este es un análogo del archivo FMM en el entorno Keil.

C: \\ Archivos de programa (x86) \\ IIR SISTEMAS \\ Workbench Embedded 8.0 \\ ARM \\ Config \\ FlashLoader \\ Milandr \\ MDR1986VE9X \\ FLOFMDR32F1X.BOARD

J-link / j-rastreo

En esta ventana, establezca las opciones similares al hecho de que estamos exhibiendo para este depurador en el entorno Keil. Especificaremos la frecuencia de inicio del microcontrolador del PIN de 8 MHz y reinicio de exhibición. A continuación, puede seleccionar el uso de JTAG o SWD, así como aumentar la velocidad de conexión, pero ahora no es crítica, así que dejé el valor predeterminado.

Después de realizar cambios, y en general, periódicamente, es útil presionar el botón Guardar todo. Cuando guarde primero el IAR, ofrecerá guardar el área de trabajo del proyecto actual, ahorramos bajo el mismo "helloword". Con los siguientes entornos de lanzamiento, elija Archivo - Espacios de trabajo recientes Y el IDE se abre en el estado en el que lo dejamos.

Organización de carpetas de proyectos y SPL.

Al organizar el proyecto, fui guiado por este artículo, IAR EWARM. Creación de un proyecto Parte 2. CMSIS y biblioteca de periféricos estándar.

Confiando en la recomendación del artículo para diseñar el código fuente de DIFERS, inicié el grupo de manera similar a la puesta en marcha de Keil y el controlador predeterminados. Daré inmediatamente la vista final del árbol de proyectos y el menú desplegable que muestre cómo crear un grupo.

Según el artículo, también creé una carpeta SRC separada y pongo el archivo principal.c.. Por un ejemplo tan pequeño y simple, esto no es tan importante, pero produciremos el estilo correcto.

Ahora necesitas conectar las bibliotecas de SPL para trabajar con la periferia del microcontrolador. En muchos artículos en Internet, los archivos de la biblioteca necesarios se copian en la carpeta del proyecto en el disco y luego se conectan a IAR. No busqué una decisión tan conveniente para mí, así que decidí colocar una biblioteca en una dirección estacionaria y conectar archivos de una sola fuente en todos los proyectos. Además, esta solución es que al corregir errores en fuentes comunes, el cambio se manifestará en todos los proyectos relacionados con la biblioteca. Solo se requerirá la recompilación. Si tiene que copiar la selección de fuentes necesarias en cada proyecto, tendrá que hacer correcciones a cada proyecto. Pero aquí todos deciden por sí mismo cómo es más conveniente para organizar el código. A menudo, el cambio en el Código General se puede tocar sobre un proyecto antiguo, listo y de trabajo. En este caso, el proyecto "Fui a la producción" es mejor para "congelar" en el estado actual, recolectando todas las fuentes para él por separado.

Como resultado, organizé el directorio en el disco de la siguiente manera, hay una carpeta General IIAR_CODE en la que la carpeta SPL está mintiendo y en la carpeta para cada microcontrolador, dentro de las cuales se crean proyectos individuales. Los proyectos utilizan fuentes de SPL que están conectadas por rutas relativas desde la carpeta del proyecto. El uso de caminos absolutos hará que el proyecto sea intolerable a otro lugar, por lo que los caminos son mejores para usar parientes. Al transferir o copiar un proyecto en algún lugar, deberá copiar el proyecto y la carpeta SPL, manteniendo su ubicación relativa. Luego, el proyecto se reunirá con éxito de otro lugar.

Aquí hay directorios y archivos que se utilizarán en nuestro proyecto.

IAR_CODE \\ - Carpeta compartida con proyectos en IAR 1986VE9X \\ - Carpeta de proyectos en 1986VE9X MDR32F9QX_BOARD.H - Helloworld MK y FILO DE REVISIÓN - FOLECTOR DE PROYECTO DE SPL - Folder SPL MDR32F9QX_CONFIG.H - Archivo de otras configuraciones de CMSIS \\ CM3 \\ CORESUPPORT - DESPORTAMENTOSPPORT KERNEL SOPORTE \\ MDR32F9QX \\ - Startup Files Inc Startup \\ IIR MDR32F9QX_STDPERIPH_DRIVER \\ - Archivos de controladores inc SRC

Para obtener un diseño de este tipo, esto es lo que debe ser copiado del archivo SPL:

La carpeta IAR_CODE \\ SPL: SPL Fuente Archivos lib \\ mdr32f9_1986ve4_2015 \\ bibliotecas \\ contenidos de todos los archivos con la configuración de un microcontrolador de SPL específico LIB \\ MDR32F9_1986VE4_2015 \\ Config \\ Mdr32f9qx_config.ha Folder IAR_CODE \\ 1986BE9X: lib \\ mdr32f9_1986ve4_2015 \\ ejemplos \\ mdr1986ve9x \\ mdr32f9q3_eval \\ Mdr32f9qx_board .h.

En el archivo MDR32F9QX_BOARD.H, se selecciona un microcontrolador utilizando definiciones de macros, por lo que se encuentra en la carpeta con proyectos para un MK específico.

El archivo MDR32F9QX_CONFIG.H en el archivo está configurado para Microcontroller 1986v4, debe abrir este archivo en el bloc de notas y hacer una pequeña edición. Debería trabajar así:

// !!! Bloque de descompento: / * El archivo de encabezado para el microcontrolador de destino * / #if define (use_mdr1986ve9x) #include "mdr32fx.h" #elif definido (use_mdr1986ve1t) #include "mdr1986ve1t.h" #elif definido (use_mdr1986ve3) #include "mdr1986ve3 .h "#elif, definido" Mdr1986be4.h "#endif // # incluye" MDR1986BE4.H "-! Cometer la cadena, o eliminar.

Ahora que el entorno de IAR puede encontrar los archivos SPL en nuestro diseño, debe especificar la ruta para buscar cuando se ensamblan. En el árbol del proyecto, elija el punto más alto "Helloworld - depuración": simplemente haga clic en él con un mouse izquierdo para que esté activo y abra las opciones del proyecto (Alt + F7). Si no selecciona el elemento superior del proyecto, y un archivo estará activo de grupos en el árbol del proyecto, entonces cuando se presiona Alt + F7, se abrirá las opciones para que este grupo se abrirá. También necesitamos especificar rutas para todos los grupos en el proyecto, por lo que elegimos el nudo más alto en el árbol.

Ir a la categoría " Compilador C / C ++", elige un marcador Preprocesador.. Aquí, en el campo "Directorios de inclusión adicional", debe agregar los caminos que formamos. Aquí están estas formas, agreguelos uno por uno con la ayuda de un diálogo que se llama por un botón DILL, o puede copiar las rutas directamente desde aquí:

$ Proj_dir $ \\ .. \\ .. \\ spl \\ cmsis \\ cm3 \\ coresupport $ proj_dir $ \\ .. \\ .. \\ spl \\ cmsis \\ cm3 \\ dispositivosupport \\ mdr32f9qx \\ inc $ Proj_dir $ \\ .. \\ \\ spl \\ CMSIS \\ CM3 \\ DeviceUpport \\ MDR32F9QX \\ Startup \\ IAR $ Proj_DIR $ \\ .. \\ .. \\ SPL \\ MDR32F9QX_STDPERIPH_DRIVER \\ INC $ PROJ_DIR $ \\ .. \\ \\ SPL \\ MDR32F9QX_STDPERIPH_DRIVER \\ SRC $ PROJ_DIR $ \\ .. $ PROJ_DIR $ \\ .. \\ \\ \\ spl spl

Esta es nuestra manera sobre la carpeta del proyecto. En la ubicación de otros proyectos en este diseño, estos caminos seguirán siendo válidos.

Al agregar rutas a través del cuadro de diálogo, la siguiente es la siguiente imagen:

    Formas de añadir a la forma relativa.

    Al agregar una ruta a través de un cuadro de diálogo,

    Se puede ver que los caminos se obtienen absolutos.

    Haga clic en un botón con un triángulo.

    Elegimos la opción con la ruta en relación con el proyecto.

Recopilamos un proyecto en blanco.

Para compilar el proyecto mínimo al archivo principal.c ya existente, debe conectar archivos de inicio con una tabla de vectores de interrupción, etc.

Antes de conectar los archivos al proyecto, obtenga una variable en el entorno de IAR, que especificará la ruta a nuestra carpeta con el código IAR_CODE. En el menú principal, elige Herramientas - Configurar variables de argumento personalizado.

En la ventana que se abre, cree un grupo MDR_LIB y una variable MDR_CODE que especificará la ruta a nuestro cabezal.

Si el proyecto no se ha guardado, y cuando guarda la primera vez que se guarda, se guarda el espacio de trabajo, luego los botones de este formulario estarán inactivos. En este caso, debe hacer clic en Guardar todo antes de ingresar este formulario.

Ahora conecte los archivos de nuestro directorio IRE_CODE, las rutas en el proyecto se especificarán en relación con la variable $ MDR_CODE $, por lo tanto, al transferir un proyecto a otro lugar, es suficiente para reasignar una nueva ruta en la variable MDR_CODE.

Vamos a conectar los archivos necesarios para compilar un proyecto vacío. Para conectar archivos con el botón derecho del mouse en el grupo de inicio creado por nosotros, seleccione Agregar archivos, y conecte los siguientes archivos:

Agregar archivos: IAR_CODE \\ SPL \\ CMSIS \\ CM3 \\ DevicesUpport \\ MDR32F9QX \\ Startup \\ IIR \\ Startup_MDR32F9QX.S SYSTEM_MDR32F9QX.C SYSTEM_MDR32F9QX.H

Es conveniente seleccionar todos los archivos y agregar a la vez.

Después de eso, el proyecto debe ser recopilado - Menú Proyecto - Reconstruir todo. Observamos los errores 0, no prestas atención a los veinte. La biblioteca no es fuerte para el entorno de IAR.

Para verificar que los archivos conectados a través de la variable $ MDR_CODE $ con el botón derecho del mouse en el encabezado en el proyecto "HelloWorld - Depuración" y seleccione en el menú desplegable Carpeta que contiene abierto.. Se abre una ventana de Windows Explorer con un archivo HelloWorld.Ewp dedicado. Abre el bloc de notas y las hojas en la parte inferior donde encontramos cómo están conectados los nuestros, acaba de agregar archivos:

.... Puesta en marcha. $ MDR_CODE $ \\ SPL \\ CMSIS \\ CM3 \\ DeviceUPPORT \\ MDR32F9QX \\ Startup \\ IIR \\ StartUP_MDR32F9QX.S $ MDR_CODE $ \\ SPL \\ CMSIS \\ CM3 \\ DeviceUpPort \\ MDR32F9QX \\ Startup \\ IIR \\ System_MDR32F9QX.C $ MDR_CODE $ \\ SPL \\ CMSIS \\ CM3 \\ DeviceUpport \\ MDR32F9QX \\ Startup \\ IIR \\ System_MDR32F9QX.H ....

Se puede ver que los caminos se indican a través de la variable $ MDR_CODE $. Espero que este enfoque ayude, si es necesario, para transferir todo el repositorio con proyectos, entonces hay una carpeta IAR_CODE, a una nueva ubicación u otra computadora con un esfuerzo mínimo.

Recoge "HelloWorld"

Copie a nuestro archivo Main.c del proyecto Hello World Project - LED. Este código utiliza archivos de administración de puertos de la biblioteca y frecuencia de reloj. Vamos a agregarlos tanto al proyecto.

Añadir archivos: IAR_CODE \\ SPL \\ MDR32F9QX_STDPERIPH_DRIVER \\ SRC \\ MDR32F9QX_PORT.C MDR32F9QX_RST_CLK.C

Connect * .h Los archivos no lo hará, las rutas se detallan y se encontrarán. Complete el proyecto a través del botón en el menú o F7. El proyecto debe ser compilado con éxito.

Para flashear el programa resultante en un microcontrolador, seleccione en el menú Proyecto - Descargar - Descargar Aplicación activa. En el registro de depuración, algunos "Cornualles" aparecen en la ventana, ¡pero el firmware termina con éxito y el microcontrolador da la bienvenida al mundo!

En el caso de usar los programadores de Segger, al cargar en el dispositivo está conectado por primera vez, el controlador SEGGER solicita qué kernel Cortex está conectado.

La elección debe ser:

    1986v9h - "Cortex-M3 no especificado".

    1986v1t, 1986v3t - "Cortex-M1 no especificado",

    1986v4u - "Cortex-M0 no especificado"

SPL y ejemplo en GitHub

Este ejemplo de LED parpadeante se puede descargar desde GitHub - IAR_CODE, así como implementaciones similares para 1986V1T y 1986V3T. El repositorio contiene la biblioteca SPL en la que se implementan los ejemplos. Esta biblioteca se recopila a partir de la versión oficial, solo los archivos no están relacionados con IAR y corrigieron algunos errores.



¿Te gustó el artículo? Compártelo