Aprendendo STM8S Slow Start. Parte 0

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:

  1. Desenvolvimento Assembler
  2. Desenvolvimento para um modelo MK específico
  3. 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:

  1. 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:

    1. Pegamos uma placa de ensaio, no meu caso TQFP (32-64PIN) 0.8MM, solda MK nele
    2. Levamos um pente de duas carreiras PLS-2x40 para os orifícios que levam às conclusões de MK
    3. Pegamos uma tábua de pão impressa (tenho 9x15 cm) e soldamos o último sanduíche nela
    4. 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)
    5. 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.
    6. 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.
    7. Solucione o conector de programação SWIM (eu faço do PLS-1x40)

    Eu recebi um milagre:


  2. 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.

Resultado:
 #include<iostm8s105k6.h> //  int main() { while(1){ //  } return 0; } 


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.

Source: https://habr.com/ru/post/pt465597/


All Articles