La familia
MK STM8S en relación con el STM8L / 32 tiene un arsenal de periféricos más pequeño, pero le permite comprender fácilmente los conceptos básicos y adquirir las habilidades necesarias para trabajar con sus hermanos mayores.
0. A quién está orientado el material, por qué y por qué
Al escribir este artículo, supongo que el lector puede:
- Lea atentamente (lo cual es raro)
- Un poco de trabajo con literatura técnica en inglés (bueno, o la motivación para aprender, porque el primer idioma del programador es el inglés)
- Soldadura (al menos habilidades mínimas)
- Programación en C (de nuevo, no todo es tan complicado)
- Google (sin él en ningún lado)
- Usa un multímetro y tiene otras habilidades básicas (como "no meta los dedos en la cavidad")
Considero los objetivos del artículo:
- Descripción general para ejecutar todas las etapas del desarrollo de un sistema basado en un microcontrolador
- Dé las notas introductorias necesarias para una persona que prácticamente no está dedicada
- Si es posible, el lector comprenderá dónde, qué y cómo encontrar
(No significativo)¿Por qué y por qué?
Creo que tiene sentido hacer un curso detallado de programación MK.
Seré una ocasión para estudiar toda la periferia con más detalle y en el camino ayudaré a otros.
Sé que ya hay una gran cantidad de artículos e incluso cursos de capacitación, pero tengo un enfoque ligeramente diferente. (Quizás recibiré críticas adecuadas, cambiaré de opinión y me uniré a los chicos de MX Cube).
Es triste ver cómo los controladores stm se convierten en arduino.
En cuanto a arduino:
Existen 3 enfoques (que yo conozco, MB, simplemente no he crecido) para
el desarrollo de
software en MK:
- Desarrollo de ensambladores
- Desarrollo para un modelo MK específico
- Desarrollo utilizando HAL y bibliotecas similares.
1) Soy partidario de la opinión de que si está construyendo una casa, entonces no debe quemar cada ladrillo de arcilla con sus propias manos, porque el ensamblador desaparece (aunque comenzó con esto). Velocidad de desarrollo demasiado baja.
2) bibliotecas HAL, etc. para un principiante, demasiados momentos "solo escribe así" son opacos. Porque también en la basura.
3) Considero que el proceso de creación de software para un MK específico es la opción más saludable para un principiante; las habilidades adquiridas permitirán tratar con las series 8L y 32 (aunque duele hacerlo solo de acuerdo con la documentación).
Probablemente haya notado que Arduino no aparece en esta lista, porque es una plataforma
educativa y no está diseñada para el desarrollo de dispositivos compactos sobre la base. Pero el enfoque para programarlo por alguna razón (no lo sé) se transfiere y se extiende a través de Internet. E incluso utilizado en proyectos comerciales reales. (representa: "Descargué la biblioteca en el foro, me conecté, funcionó, no sé cómo funciona").
Sugiero, desde mi punto de vista, un enfoque académico y metódico más significativo.
1. La elección del microcontrolador
Tengo varios STM8S105K6 en el paquete LQFP32, es de esta familia, así que lo elijo.
Puede elegir cualquier MK dentro de la serie.
Hay placas de Discovery listas de ST, puedes comprarlas a los chinos o pedirlas a otros recursos. Hay tableros confeccionados para el STM8S103F3P6 y similares de los chinos.
Pero, debe tenerse en cuenta que las tablas preparadas están diseñadas para el entrenamiento.
En el sitio web del fabricante
st.com , encontramos nuestro MK y le descargamos documentos:
Manual de referencia: RM0016: un documento común para todas las familias MK STM8S y STM8AF. El siguiente es RM.
Hoja de datos: Tengo un documento DS5855 para STM8S105C4 / 6, STM8S105K4 / 6 y STM8S105S4 / 6. El siguiente es DS.
De las cosas deliciosas que tiene (superficialmente):
- Soporte de 16 MHz
- 32 KB Flash, 1 KB EEPROM y 2 KB RAM
- Potencia 2.95-5.5V
- Temporizadores de 8 y 16 bits.
- UART, SPI, I2C
- ADC de 10 bits
- hasta 38 entradas / salidas discretas
2. Equipo requerido
Veo dos opciones para trabajar con MK:
Ensamblar un diseño a partir de componentes individualesGenial, genial, me gusta. Mucha gente lo hace.
En este caso, el MK necesitará el llamado flejado. El plan es simple:
- Tomamos una placa de prueba, en mi caso TQFP (32-64PIN) 0.8MM, soldar MK a ella
- Llevamos una soldadura PLS-2x40 de doble hilera a los agujeros que conducen a las conclusiones de MK
- Tomamos una placa impresa (tengo 9x15 cm) y soldamos el último sándwich en ella
- Nos fijamos en RM punto 7. Fuente de alimentación, leemos . Está escrito que necesita un condensador que conecte el pin VCAP y nuestra fuente de alimentación de 0V. También está escrito que necesita mirar con más detalle en DS a un MK específico en la sección de características electicas. Para mí, esta es la cláusula 10.3.1 del capaitor externo VCAP con referencia a la Tabla 18, donde el valor nominal es 470 - 3300 nF. Tomé 1 mF (en el circuito C3). (por qué lo necesitas, espero que lo leas tú mismo en RM)
- Ibid. En DS en la cláusula 10.3.8. Restablecer las características del pin nos encontramos con la capacidad del condensador 0.1mF (en el circuito C4). La resistencia R4 con un valor nominal de 10 kOhm se usa en placas de depuración y varias notas de aplicación, aunque dentro del MK ya hay una resistencia pull-up con un valor nominal de 30 a 80 kOhm (si cree en el mismo DS). Paralelamente al condensador C4 ponemos nuestro botón de reinicio. Tal patrón de reinicio se puede ver, por ejemplo, en la nota de Desighn DN0005.
- Además, a ST le gusta agregar capacitores de potencia de 100nF a las placas de depuración, en la cantidad de N pines conectados a +1 de potencia. El diagrama muestra solo las piezas C1, C2 y C5 3, y no las solde en el tablero, pero usted entendió el significado. Funcionará en la mesa sin ellos, pero en el desarrollo comercial real es mejor ocuparse de este asunto al reproducir la placa del dispositivo.
- Solucione el conector de programación SWIM (lo hago desde PLS-1x40)
Tengo un milagro:

Comprar una placa terminada (que no le ahorra trabajar con un soldador)Genial, genial, me gusta. Mucha gente lo hace.
Vale la pena familiarizarse con la configuración de la placa, si es una placa de ST, entonces es inmediatamente con el programador y se conecta con un cable USB tipo B. El sitio ST tendrá un diagrama en la página del producto. En el tablero habrá botones, LED, tweeters, botones capacitivos y otros encantos con los que puedes jugar.
Si el tablero es chino, a menudo los tableros sin un programador, necesitará un programador.
Las pantallas de serigrafía de los nombres de las conclusiones son mejores para no creer y verificar dos veces en comparación con DS.
No considero trabajar con paneles de contactos porque no lo uso.
Además, necesito un programador, tengo un ST-Link V2 chino. Capaz de programar y STM8 y STM32.
3. Elegir un IDE
Para mí, la cuestión de elección aún no es relevante, trabajo en el IAR para STM8, porque hizo un proyecto en el que estoy trabajando actualmente, por la misma razón que la versión anterior.
Vamos al sitio
iar.com , en la búsqueda
tecleamos el modelo de nuestro MK.
Descargue el IAR Embedded Workbench para STM8, seleccione la evaluación de tamaño limitado al instalar y ponga un límite de 8 KB de código. O comprar Hay versiones pirateadas de recursos prohibidos en el territorio de la Federación de Rusia, pero no es adecuado para proyectos comerciales.
Las instrucciones de instalación están en el instalador o en Google.
Estoy usando la versión 6.5.3.2581.
Instale el entorno, junto con el controlador para el programador.
4. Crear un proyecto
Vaya al IDE, vaya a Proyecto -> Crear nuevo proyecto -> C ++
Haga clic en Aceptar, seleccione el directorio (preferiblemente sin cirílico y espacios), seleccione el nombre (sin espacios y cirílico).
Vamos a la carpeta raíz de nuestro IDE y encontramos la carpeta inc, para mí la ruta:
C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc
Entre los archivos de encabezado iostm8 encontramos nuestro modelo MK, para mí:
iostm8s105k6.h
Lo conectamos al principio y agregamos un bucle infinito.
En el menú Proyecto -> Opciones -> Opciones generales en la columna Dispositivo, seleccione su MK.
En Proyecto -> Opciones -> Depurador en la columna Controlador, seleccione ST-LINK.
Busque el botón Descargar y depurar en la barra de herramientas.
En la primera compilación, el entorno le pedirá que seleccione el nombre del archivo .eww. (Nombre lo mismo que el proyecto).
En la parte inferior de la ventana del registro de depuración debe haber mensajes que:
- Preprocesador para STM8: se inició el preprocesador
- Depurador para STM8 - comenzó el depurador
- Conectado al sistema de depuración SWIM STM8 - conectado a MK
- Debugee cargado: se ha producido una descarga de firmware
- Reinicio de destino: se ha producido un reinicio
Estamos en modo de depuración, pero el programa está en pausa.
En el mismo lugar en la barra de herramientas encontramos y presionamos el botón Ir.
Lanzamos MK en modo de depuración.
Haga clic en Detener depuración, la depuración se detiene, pero el programador alimenta el MK y luego ejecuta el programa, es decir, gira un bucle sin fin y no hace nada.
Resumen
El resultado fue una breve descripción general y una introducción a la programación de la serie STM8S de MK sin programarla. Resultó solo la base para el trabajo, a partir de esto generalmente todo comienza, con el ensamblaje del diseño.
No veo el punto con más detalle.
En muchos artículos, después de la introducción, literalmente después de un par de líneas, los LED parpadean, lo que no entiendo.
El cumplimiento de los objetivos se puede juzgar por si el principiante logró hacer algo por su cuenta, utilizando la información que propuse. (ventana de indicador Registro de depuración)
Gracias por su atencion