Índice:

Hackear um CFA735 / CFA835: 4 etapas
Hackear um CFA735 / CFA835: 4 etapas

Vídeo: Hackear um CFA735 / CFA835: 4 etapas

Vídeo: Hackear um CFA735 / CFA835: 4 etapas
Vídeo: 10 FREE Online Courses From Harvard University That Can Pay You US$6,000 A Month With A Side Hustle 2024, Julho
Anonim
Hackear um CFA735 / CFA835
Hackear um CFA735 / CFA835

Você tem um projeto que precisa de um display, um teclado numérico e alguma memória, mas o firmware pré-carregado no módulo Crystalfontz CFA735 ou CFA835 não é exatamente o que você está procurando? Você está com sorte - você pode hackear esses módulos para carregar firmware personalizado.

O CFA735 e o CFA835 são módulos LCD inteligentes versáteis. Tanto o Crystalfontz CFA735 quanto o CFA835 são baseados no módulo de hardware CFA10052, portanto, durante este tutorial, o CFA735 e / ou CFA835 será referido como o CFA10052. O CFA10052 pode ser reprogramado para executar seu próprio firmware personalizado.

  • Microcontrolador STMicroelectronics STM32F401
  • ARM 32-bit Cortex ™ -M4 CPU @ 84 MHz
  • 256K Flash, 64K RAM
  • LCD retroiluminado de 244 x 68 pixels
  • Controlador LCD gráfico Sitronix ST7529 32 em tons de cinza
  • A fonte de comutação Buck-boost permite ampla faixa de tensão de alimentação
  • Controladores de brilho de LED de comutação separados para teclado e luz de fundo de LCD
  • Teclado com luz de fundo de 6 botões
  • 4 LEDs bicolores (vermelho / verde)
  • Interface USB2
  • slot para cartão microSD
  • 5 pinos IO de uso geral (GPIO)
  • Múltiplas interfaces seriais / SPI / I2C / CAN (dependendo do uso de GPIO).

Este tutorial mostrará como substituir o firmware que vem em um CFA10052 por um novo firmware que irá:

  1. Exibir no LCD uma grade alternada, com luz de fundo atual, contraste do LCD e informações de status do teclado;
  2. Controle a luz de fundo e o contraste do LCD usando o teclado.
  3. Altere a cor dos quatro LEDs de vermelho para verde em sequência.
  4. Habilite a porta serial USART nos pinos 1 e 2 do Cabeçalho 1 (115200 baud) e ecoe todos os dados recebidos.
  5. Habilite a porta serial virtual USB e repasse todos os dados recebidos para o host.
  6. Inclui, mas não demonstra, acesso a arquivos de leitura / gravação uSD.

Claro, você pode escrever seu próprio firmware e carregá-lo usando estas etapas.

NOTA IMPORTANTE:

O módulo de hardware Crystalfontz CFA10052 é enviado programado com um bootloader e firmware CFA735 / CFA835. O bootloader e o firmware CFA735 / CFA835 não são de código aberto e não podem ser copiados do CFA10052 pelo usuário, nem podem ser programados no CFA10052 pelo usuário. Se você quiser reverter para o firmware CFA735 / CFA835, terá que enviá-lo de volta à Crystalfontz para que seja reprogramado.

Suprimentos

  • Módulo Crystalfontz CFA10052 (hardware v1.1 ou posterior) (CFA735 / CFA835)
  • PC (Windows / Linux / OSX) com STM32CubeIDE e STM32 ST-LINK Utility instalado
  • Interface de programação STMicroelectronics ST-LINK (V2 ou V3)
  • Cabo de programação CFA10052 (detalhes abaixo)
  • Firmware personalizado (ou use o nosso aqui)
  • Se estiver usando o Windows 7/8 / 8.1 / 10 (ou versões de servidor equivalentes) e quiser testar a porta serial virtual USB, você precisará baixar os drivers aqui. A porta serial USB funcionará sem a necessidade de drivers adicionais no Windows 10+, Linux, OS-X.

Etapa 1: coletar / criar suprimentos

Coletar / criar suprimentos
Coletar / criar suprimentos

Recomendamos usar o STM32CubeIDE para carregar e usar este projeto de firmware de exemplo. STM32CubeIDE é um IDE gratuito baseado no Eclipse que foi modificado pela STMicroelectronics para incluir ferramentas específicas do STM32. O IDE pode ser baixado na página da web STM32CubeIDE.

Para manter a operação correta da ferramenta de configuração do dispositivo STM, você só deve editar o código-fonte criado pela ferramenta de configuração do dispositivo entre os blocos de comentários "USER CODE BEGIN xxx" e "USER CODE END xxx" correspondentes.

Em seguida, decida se deseja nos contatar para obter um cabo de programação CFA10052 ou para fazer o seu próprio. Não vamos falar sobre como fazer o cabo em detalhes neste tutorial, mas se você quiser fazer seu próprio cabo de programação CFA10052, você pode encontrar as conexões na página do GitHub, a melhor maneira de fazer isso é começar com um cabo de fita de dezesseis pinos e emende-o ao cabo para o ST Link.

Etapa 2: Apagar Firmware Existente

Apagar Firmware Existente
Apagar Firmware Existente
Apagar Firmware Existente
Apagar Firmware Existente

Se o seu módulo CFA10052 estiver carregado com o firmware CFA735 ou CFA835 fornecido, você precisará primeiro apagar o firmware existente antes de instalar o novo firmware. A memória flash é protegida contra leitura e gravação e deve ser removida antes que o firmware personalizado possa ser carregado.

Existem dois métodos para remover o firmware instalado:

  1. Desconecte o cabo USB (ou fonte de alimentação) do módulo CFA10052.
  2. Conecte o CFA10052 ao ST-LINK usando o cabo de programação (veja acima) e o ST-LINK ao PC host.
  3. Segure as teclas para cima e para baixo no CFA10052 enquanto conecta o cabo USB ao CFA10052 (ou fonte de alimentação). O CFA10052 agora deve mostrar a tela Crystalfontz Bootloader.
  4. Execute o utilitário STM32 ST-LINK. No menu "Destino", abra a janela "Bytes de opção". Na caixa "Proteção de leitura", selecione "Nível 0". Clique em Aplicar. O firmware Crystalfontz agora foi removido e qualquer firmware personalizado pode agora ser programado.

Método alternativo (se você não puder entrar no Bootloader Crystalfontz segurando as teclas):

  1. Desconecte o cabo USB (ou fonte de alimentação) do módulo CFA10052.
  2. Conecte o ponto de teste BOOT0 (um pequeno bloco na parte traseira do módulo CFA10052, próximo ao conector H1) a 3,3 V ou 5 V.
  3. Conecte o CFA10052 ao ST-LINK usando o cabo de programação (veja acima) e o ST-LINK ao PC host.
  4. Ligue o CFA10052 (ou conecte-o à alimentação USB). O display deve estar em branco.
  5. Execute o utilitário STM32 ST-LINK. No menu "Destino", abra a janela "Bytes de opção". Na caixa "Proteção de leitura", selecione "Nível 0". Clique em Aplicar. O firmware Crystalfontz agora foi removido e qualquer firmware personalizado pode agora ser programado.
  6. A conexão do pino BOOT0 a 3,3 V / 5 V não é mais necessária.

Etapa 3: Compile e carregue seu firmware no CFA10052

Compile e carregue seu firmware no CFA10052
Compile e carregue seu firmware no CFA10052

Uma vez que o firmware fornecido pelo Crystalfontz foi removido, você está pronto para compilar e carregar seu próprio firmware. Para os fins deste tutorial, fornecemos algum firmware alternativo que dá controle do teclado do brilho da luz de fundo e contraste da tela.

Para compilar o firmware:

  1. Abra o STM32CubeIDE
  2. No menu Arquivo, escolha Importar e, em seguida, "Importar Projetos Existentes para o Espaço de Trabalho".
  3. Na caixa do diretório raiz, selecione o diretório deste firmware de exemplo.
  4. Clique no botão Concluir.
  5. No Project Explorer, selecione o projeto cfa10052_example e, a seguir, abra o arquivo Src e "main.c".
  6. No menu Projeto, selecione "Construir Projeto".

Para programar e executar o firmware no CFA10052:

  1. Desconecte o cabo USB (ou fonte de alimentação) do módulo CFA10052.
  2. Conecte o CFA10052 ao ST-LINK usando o cabo de programação (veja acima) e o ST-LINK ao PC host.
  3. Conecte o cabo USB (ou fonte de alimentação) ao CFA10052.
  4. Certifique-se de que o projeto de firmware tenha sido construído (consulte as etapas acima) e que "Binários" apareça em "cfa10052_example" no Project Explorer.
  5. Se "Binários" não estiver visível, clique com o botão direito do mouse no projeto "cfa10052_example" e selecione Atualizar.
  6. Selecione o menu Executar e, em seguida, "Configurações de depuração".
  7. Na caixa de seleção de tipos de destino de depuração à esquerda, clique com o botão direito em "Aplicativo STM32 Cortex-M" e selecione "Nova configuração".
  8. Uma janela de configuração será exibida. As configurações padrão estão OK. Clique em Aplicar e depois no botão Fechar.
  9. No menu Executar, selecione "Depurar como" e, em seguida, "Aplicativo STM32 Cortex". O STM32CubeIDE agora deve se conectar ao ST-LINK, fazer o upload e executar o firmware no CFA10052.

As etapas acima são necessárias apenas ao carregar o projeto pela primeira vez no STM32CubeIDE. Após as alterações do código-fonte do firmware terem sido feitas, apenas reconstruir o projeto (atalho Ctrl-B) e programar o CFA10052 (tecla de atalho F11) são necessários.

O firmware também pode ser carregado por meio de qualquer um dos métodos normais de bootloader STM32 (a depuração só está disponível usando a interface SWD e um ST-LINK). Por exemplo, se estiver usando uma conexão serial, USART1 pode ser usado (RX = H1-Pin1 e TX = H1-Pin2). Para obter informações mais detalhadas sobre o carregador de inicialização STM32 e interfaces, consulte o PDF aqui.

Etapa 4: Licenças

O código-fonte fornecido pela Crystalfontz é fornecido usando The Unlicense, uma licença sem quaisquer condições que dedica as obras ao domínio público. Trabalhos não licenciados, modificações e trabalhos maiores podem ser distribuídos sob diferentes termos e sem código-fonte. Consulte o arquivo UNLICENCE ou unlicense.org para obter detalhes.

STM32CubeIDE criou o código-fonte e as bibliotecas STMicroelectronics são Copyright (c) 2019 STMicroelectronics. Todos os direitos reservados. O componente de software é licenciado pela ST sob a licença BSD de 3 cláusulas, a "Licença"; Você não pode usar esses arquivos, exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em opensource.org/licenses/BSD-3-Clause.

Recomendado: