A família
MK STM8S em relação ao STM8L / 32 possui um arsenal menor de periféricos, mas permite que você compreenda facilmente o básico e obtenha as habilidades necessárias para trabalhar com seus irmãos mais velhos.
0. Para quem o material é orientado, por que e por que
Ao escrever este artigo, presumo que o leitor possa:
- Leia com atenção (o que é raro)
- Um pouco de trabalho com a literatura técnica no idioma inglês (bem, ou a motivação para aprender, porque o primeiro idioma do programador é o inglês)
- Solda (pelo menos habilidades mínimas)
- Programação em C (novamente, nem tudo é tão complicado)
- Google (sem ele em qualquer lugar)
- Use um multímetro e tenha outras habilidades básicas (como “não coloque os dedos no soquete”)
Considero os objetivos do artigo:
- Visão geral para executar todas as etapas do desenvolvimento de um sistema baseado em um microcontrolador
- Faça as notas introdutórias necessárias para uma pessoa que praticamente não é dedicada
- Se possível, o leitor entenderá onde, o que e como encontrar
(Não significativo)Porque e porque?
Eu acho que faz sentido fazer um curso detalhado de programação MK.
Serei uma ocasião para estudar toda a periferia com mais detalhes e, ao longo do caminho, ajudarei os outros.
Sei que já existe um grande número de artigos e até cursos de treinamento, mas tenho uma abordagem um pouco diferente. (Talvez eu receba críticas adequadas, mude de idéia e me junte aos caras do MX Cube).
É triste ver como os controladores stm se transformam em arduino.
Em relação ao arduino:
Existem 3 abordagens (conhecidas por mim, MB, apenas não cresci) para
o desenvolvimento de
software no MK:
- Desenvolvimento Assembler
- Desenvolvimento para um modelo MK específico
- Desenvolvimento usando HAL e bibliotecas similares
1) Sou partidário da opinião de que, se você estiver construindo uma casa, não deve queimar todos os tijolos de barro com suas próprias mãos, porque o montador desaparece (embora tenha começado com isso). Velocidade de desenvolvimento muito baixa.
2) bibliotecas HAL, etc. para um iniciante, muitos momentos “apenas escreva assim” são opacos. Porque - também no lixo.
3) Considero o processo de criação de software para um MK específico a opção mais saudável para um iniciante; as habilidades adquiridas tornarão possível lidar com as séries 8L e 32 (embora dói fazê-lo sozinho, de acordo com a documentação).
Você provavelmente notou que o arduino não aparece nesta lista, porque é uma plataforma
educacional e não se destina ao desenvolvimento de dispositivos compactos com base. Mas a abordagem de programação por algum motivo (não sei) é transferida e se espalha pela Internet. E até usado em projetos comerciais reais. (representa: "Fiz o download da biblioteca no fórum, conectei, funcionou, não sei como funciona").
Sugiro, do meu ponto de vista, uma abordagem academicamente e metodicamente mais significativa.
1. A escolha do microcontrolador
Eu tenho vários STM8S105K6 no pacote LQFP32, é dessa família, então eu o escolho.
Você pode escolher qualquer MK dentro da série.
Existem placas Discovery prontas da ST, você pode comprar dos chineses ou encomendar de outros recursos. Existem placas prontas para o STM8S103F3P6 e similares dos chineses.
Porém, deve-se notar que as placas prontas são projetadas para treinamento.
No site
st.com do fabricante, encontramos nosso MK e fazemos o download de documentos para ele:
Manual de referência: RM0016 - um documento comum para todas as famílias MK STM8S e STM8AF. Em seguida é RM.
Folha de dados: Eu tenho um documento DS5855 para os STM8S105C4 / 6, STM8S105K4 / 6 e STM8S105S4 / 6. O próximo é o DS.
Das coisas deliciosas que ele tem (superficialmente):
- Suporte de 16 MHz
- Flash de 32 KB, EEPROM de 1 KB e RAM de 2 KB
- Potência 2.95-5.5V
- Temporizadores de 8 e 16 bits
- UART, SPI, I2C
- ADC de 10 bits
- até 38 entradas / saídas discretas
2. Equipamento necessário
Vejo duas opções para trabalhar com o MK:
Montando um layout a partir de componentes individuaisÓtimo, legal, eu gosto. Tantas pessoas fazem.
Nesse caso, o MK precisará da chamada cintagem. O plano é simples:
- Pegamos uma placa de ensaio, no meu caso TQFP (32-64PIN) 0.8MM, solda MK nele
- Levamos um pente de duas carreiras PLS-2x40 para os orifícios que levam às conclusões de MK
- Pegamos uma tábua de pão impressa (tenho 9x15 cm) e soldamos o último sanduíche nela
- Olhamos para o ponto 7. da RM. Fonte de alimentação, lemos . Está escrito que você precisa de um capacitor conectando o pino VCAP e nossa fonte de alimentação de 0V. Também está escrito que você precisa procurar mais detalhadamente no DS um MK específico na seção de características elétricas. Para mim, esta é a cláusula 10.3.1 do capasitor externo VCAP com referência à Tabela 18, onde o valor nominal é 470 - 3300 nF. Tomei 1 mF (no circuito C3). (por que você precisa, espero que você leia você mesmo no RM)
- Ibid. No DS, na cláusula 10.3.8. Redefinir as características dos pinos, encontramos a capacidade do capacitor de 0,1 mF (no circuito C4). O resistor R4 com um valor nominal de 10 kOhm é usado em placas de depuração e várias notas de aplicação, embora dentro do MK já exista um resistor de pull-up com um valor nominal de 30 a 80 kOhm (se você acredita no mesmo DS). Paralelamente ao capacitor C4, colocamos nosso botão de reset. Esse padrão de redefinição pode ser visto, por exemplo, na nota Desighn DN0005.
- Além disso, o ST gosta de adicionar capacitores de energia de 100nF às placas de depuração, no número de N pinos conectados à energia +1. O diagrama mostra apenas peças C1, C2 e C5 3, e não as soldei no quadro, mas você entendeu o significado. Ele funcionará na mesa sem eles, mas no desenvolvimento comercial real, é melhor cuidar desse assunto ao criar a placa do dispositivo.
- Solucione o conector de programação SWIM (eu faço do PLS-1x40)
Eu recebi um milagre:

Compra de uma placa acabada (que não impede que você trabalhe com um ferro de soldar)Ótimo, legal, eu gosto. Tantas pessoas fazem.
Vale a pena familiarizar-se com a configuração da placa, se for uma placa da ST, será imediatamente enviada ao programador e conectada a um cabo USB tipo B. O site do ST terá um diagrama na página do produto. No quadro, haverá botões, LEDs, tweeters, botões capacitivos e outros encantos com os quais você pode jogar.
Se o quadro for chinês, muitas vezes, sem um programador, você precisará de um programador.
Serigrafia dos nomes das conclusões é melhor não acreditar e checar duas vezes em comparação com o DS.
Não considero trabalhar com tábuas de pão de contato porque não a uso.
Além disso, preciso de um programador, tenho um ST-Link V2 chinês. Capaz de programar e STM8 e STM32.
3. Escolhendo um IDE
Para mim, a questão da escolha ainda não é relevante, trabalho no IAR para o STM8, porque ele fez um projeto no qual estou trabalhando atualmente, pela mesma razão que a versão antiga.
Vamos ao site
iar.com , na busca
digitamos o modelo do nosso MK.
Faça o download do IAR Embedded Workbench para STM8, selecione a avaliação de tamanho limitado ao instalar e atenda a um limite de 8 KB de código. Ou compre. Existem versões hackeadas de recursos proibidos no território da Federação Russa, mas não é adequado para projetos comerciais.
As instruções de instalação estão no instalador ou no Google.
Estou usando a versão 6.5.3.2581.
Instale o ambiente, juntamente com o driver do programador.
4. Criando um Projeto
Vá para o IDE, vá para Projeto -> Criar novo projeto -> C ++
Clique em OK, selecione o diretório (de preferência sem cirílico e espaços), selecione o nome (sem espaços e cirílico).
Vamos para a pasta raiz do nosso IDE e encontramos a pasta inc, para mim, o caminho:
C:\Program Files (x86)\IAR Systems\Embedded Workbench 6.5\stm8\inc
Entre os arquivos de cabeçalho iostm8, encontramos nosso modelo MK, para mim:
iostm8s105k6.h
Nós o conectamos no início e adicionamos um loop infinito.
No menu Projeto -> Opções -> Opções gerais na coluna Dispositivo, selecione seu MK.
Em Projeto -> Opções -> Depurador na coluna Driver, selecione ST-LINK.
Encontre o botão Baixar e depurar na barra de ferramentas.
Na primeira compilação, o ambiente solicitará que você selecione o nome do arquivo .eww. (Eu nomeio o mesmo que o projeto.)
Na parte inferior da janela Debug Log, deve haver mensagens que:
- Pré-processador para STM8 - pré-processador iniciado
- Depurador para STM8 - depurador iniciado
- Conectado ao sistema STM8 SWIM Debugging - conectado ao MK
- Debugado carregado - ocorreu o download do firmware
- Redefinição de destino - ocorreu uma redefinição
Estamos no modo de depuração, mas o programa está em pausa.
No mesmo local da barra de ferramentas, encontramos e pressionamos o botão Ir.
Lançamos o MK no modo de depuração.
Clique em Parar depuração, a depuração é interrompida, mas o MK é alimentado pelo programador e, em seguida, executa o programa, ou seja, gera um loop sem fim e não faz nada.
Sumário
O resultado foi uma breve visão geral e uma introdução à programação da série STM8S de MKs sem se programar. Descobriu-se apenas a base para o trabalho, a partir disso geralmente tudo começa - com a montagem do layout.
Não vejo o ponto em mais detalhes.
Em muitos artigos, após a introdução, literalmente após algumas linhas, os LEDs piscam, o que eu não entendo.
Até que ponto os objetivos podem ser alcançados, se o iniciante conseguiu fazer algo por conta própria, usando as informações que propus. (janela do indicador Log de depuração)
Obrigado pela atenção.