Pular para o conteúdo principal

FST-01

FST-01 é um pequeno computador USB de 32 bits. Na verdade, FST-01 é uma abreviação e seu nome completo é "Flying Stone Tiny ZERO-ONE".

Ele é projetado pela Flying Stone Technology, uma empresa em Maebashi, Gunma, Japão.

O conceito é "Design Minimalista". Ele é um desenho de hardware livre (no sentido de liberdade). As aplicações previstas são Gnuk (o Token Criptográfico para GnuPG) e NeuG (Gerador de Números Verdadeiramente Aleatórios baseado em ruído de ADC). Essas aplicações são Software Livre.

Flying Stone Technology é um fabricante de segunda origem de "Gnuk", cujo copyright pertence à organização sem fins lucrativos Free Software Initiative of Japan.

Para aqueles que querem recursos mais ricos, por favor considere o Maple Mini.

                        SWD port
(GND, SWD-CLK, SWD-IO)
Power port +---------------------+
Vdd |[] []()() -------+
GND |[] | |
|()() I/O port | USB |
| (PA2, PA3) | |
| -------+
+---------------------+

Use o site de perguntas e respostas do FST-01 para suas dúvidas.

FST-01 sem invólucroFST-01 com tubo termo retrátilFST-01 com caixa (P1A-120704U)

Ele também está disponível na Flying Stone Technology (飛石技術), de pessoa para pessoa. Veja a página Buy FST-01! em gniibe.org (em japonês).

Aplicações


Como explicado na seção acima, pretendemos executar o Gnuk no FST-01. É um software com copyright distribuído sob a licença GPLv3.

Gnuk é uma implementação de Token Criptográfico para GnuPG, e ele roda em STM32F103. O código-fonte está disponível em http://www.gniibe.org/ (https://git.gniibe.org/cgit/chopstx/ttxs.git/)

Para mais informações sobre o Gnuk, visite: Documentação Oficial do Gnuk.

Além disso, pretendemos executar NeuG no FST-01.

NeuG é uma implementação de Gerador de Números Verdadeiramente Aleatórios baseado em erro de quantização de ADC.

Observe que apenas uma aplicação pode ser instalada no FST-01 (Gnuk ou NeuG).

Ambiente de Desenvolvimento

Para Gnuk 1.0.1, usamos GCC ARM Embedded 4.6-2012-q2.

Para o primeiro lote de FST-01

Neste produto, ele contém o software com copyright Gnuk versão 1.0.1, que é licenciado sob a GPLv3. Uma cópia dessa licença está incluída neste WiKi, veja GPLv3. Você pode obter o Código-Fonte Correspondente completo por um período de três anos após o último envio deste produto, que não será anterior a 2016-01-01, no site do fabricante em http://git.gniibe.org/gitweb/?p=gnuk/gnuk.git e colocamos a tag "release/1.0.1" para a versão do produto.

Observe que o binário do Gnuk no primeiro lote de FST-01 foi compilado com a opção "-O3 -Os" pelo GCC ARM Embedded 4.6-2012-q2.

Lista de discussão para Gnuk/NeuG

Temos uma lista de discussão para Gnuk/NeuG: https://lists.alioth.debian.org/mailman/listinfo/gnuk-users

Assim como git.gniibe.org, os repositórios de código-fonte estão disponíveis em: https://anonscm.debian.org/cgit/gnuk/

Gravação da flash ROM do MCU


Usamos a porta SWD para gravar a flash ROM do MCU. Como SWD é algo relativamente novo, ainda não há boas experiências de hardware e software.

Selecionamos o ST-Link/V2 como debugger SWD barato e escrevemos nossa própria ferramenta stlinkv2.py em Python. A ferramenta stlinkv2.py é distribuída junto com o Gnuk. Veja este artigo para a conexão do ST-Link/V2 com o FST-01.

O futuro OpenOCD 0.6.0 suportará ST-Link/V2 e SWD. Você poderá usá-lo também.

Descrição

FST-01 é a placa STM32F103 mínima, adequada para executar aplicações orientadas a computação como o Gnuk.

  • Dimensões: 1,62 x 0,52 polegada (incluindo o conector USB)
  • Alimentado pelo barramento USB
  • MCU: ARM Cortex M3 de 32 bits a 72MHz (STM32F103TBU6), flash ROM: 128KB, - RAM: 20KB
  • Memória Flash SPI: 4MB
  • Porta SWD, Dois pinos de E/S
  • Conteúdo da Flash ROM do MCU: Como efeito colateral do plano de teste, o FST-01 vem com o Gnuk versão 1.0.1 instalado na flash ROM do MCU e ela é protegida. Você precisa desabilitar a proteção antes de gravar a flash ROM.

Visite esta página para mais detalhes.

FST-01 sem invólucro

Esta é uma placa nua para avaliação, desenvolvimento ou para aqueles que querem seus próprios invólucros.

Você pode acessar a porta SWD e alterar o conteúdo da flash ROM.

FST-01 com tubo termo retrátil

A placa é coberta por um tubo termo retrátil transparente. Portanto, não é possível acessar a porta SWD. Isto pode ser usado diariamente como um Token Gnuk.

FST-01 com caixa (P1A-120704U)

A placa vem com a caixa. Observe que são os usuários que colocam a placa na caixa. Isto é melhor se o tubo transparente não combinar com o seu gosto ou se você quiser alterar o conteúdo da flash ROM do MCU. Embora a PCB do FST-01 seja projetada seguindo a recomendação da especificação da P1A-120704U, a caixa pode ser um pouco maior e você precisará de um pouco de cola para ajustar a placa e a caixa. Caso contrário, a placa poderá se mover um pouco (< 1mm ou algo assim).

Histórico


  • 2011-08-06: Ideia

  • 2011-08-08: Commit inicial no repositório Git do FST-01

  • 2011-08-23: Pedido Fusion PCB para PCB de protótipo: #33163

  • 2011-08-26: Wish for FST-01

  • 2011-09-06: Pedido Fusion PCB para PCB de protótipo: #34012

  • 2011-09-13: Pedido Fusion PCB para PCB de protótipo: #34217

  • 2011-09-30: Pedido Fusion PCB para PCB de protótipo: #35421

  • 2011-10-27: Pedido Fusion PCB para PCB de protótipo: #37126

  • 2011-11-14: Versão 1.0 do Design da PCB do FST-01 lançada

  • 2012-07-10: Enviado para Propagete

  • 2012-08-??: Feito o pedido para produção

  • 2012-09-27: Produção finalizada para o primeiro lote

    • Para o primeiro lote, o cristal (XTAL) é alterado para um com capacitância de carga de 20pF. (Por causa da disponibilidade da peça.)

      • Para o primeiro lote, o conteúdo da flash ROM do MCU é Gnuk 1.0.1 e está protegido.
  • 2012-10-08: Início das vendas no Seeed Bazaar

  • 2015-04-01: Início das vendas na FSF Shop, com NeuG instalado: http://shop.fsf.org/product/usb/

Design da Placa Livre (no sentido de liberdade)

Fst-01-schematic.png

O design da placa está disponível no formato KiCAD. Visite http://git.gniibe.org/gitweb?p=gnuk/fst-01.git.

O esquema elétrico é distribuído sob a licença Creative Commons Attribution 3.0 Unported (CC BY 3.0).

O design da PCB é distribuído sob a licença Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0).

BOM do FST-01


BoM do FST-01
Peça #NomeDetalheEncapsulamentoFabricanteDistribuidorreferência do distribuidor
C1Capacitor27pFC0402
C2Capacitor27pFC0402
C3Capacitor0.1uFC0402
C4Capacitor0.1uFC0402
C5Capacitor0.1uFC0402
C6Capacitor0.1uFC0402
C7Capacitor0.1uFC0402
C8Capacitor4.7uFC0603
C9Capacitor0.01uFC0402
C10Capacitor4.7uFC0603
C11Capacitor0.1uFC0402
R1Resistor510RR0402
D1LEDAzulLED0603
J1ConectorUSB 2.0, 1002-015-01001Plug USB A MachoCNC TechDigikey1175-1020-ND
U1MCUSTM32F103TBU6QFN36STMicroelectronicsAVNETSTM32F103TBU6
U2Regulador LDO VCAT6217-330TDGT3 +3.3VTSOT23-5ON SemiconductorMouser698-CAT6217330TD-G
U3Terminador USBNUF2221W1SOT363ON SemiconductorDigikeyNUF2221W1T2GOSTR-ND
U4Memória Flash SPISST25VF032B-80-4I-QAE-TWSON8Silicon Storage TechnologyDigikeySST25VF032B-80-4I-QAE-T-ND
X1CristalABM8G-12.000MHZ-18-D2Y-T3.2mmx2.5mmAbracon CorporationDigikey535-10261-2-ND
GabineteP1A-120704U White1.2 x .71 x .40 polegadaNew Age Enclosures

Componentes do FST-01


  • STM32F103TB

  • Memória Flash SPI (32Mbit)

  • Terminador USB

  • Regulador LDO (3.3V)

  • XTAL de 12MHz CL=18pF

  • LED

  • Porta SWD de GND/SWDIO/SWDCLK

  • Porta de extensão de VDD/GND/Port0/Port1

  • Plug USB A

STM32F103TB

O MCU é baseado em Cortex-M3 ARM da STMicroelectronics. Ele roda a 72MHz, possui 128KB de flash ROM e 20KB de RAM.

Memória Flash SPI

Dados sigilosos devem ficar na flash do MCU, mas dados não confidenciais (como backup do chaveiro público) podem ficar na memória flash SPI.

Usamos SST25VF032B (32Mbit = 4MB).

Terminador USB

Usamos o Terminador USB Upstream NUF2221W1.

Isso porque ele possui a funcionalidade de proteção contra descarga eletrostática. Também é melhor por ocupar menos área que dois capacitores e dois resistores.

Regulador LDO

Usamos CAT6217-330 para Regulador de 3.3V (a partir de 5V). Corrente de 150mA é suficiente.

XTAL 12MHz CL=18pF

Usamos XTAL de 12MHz CL=18pF.

Isso porque podemos encontrar XTAL de área menor para 12MHz (do que para 8MHz).

LED

Usamos um LED para mostrar o estado.

Porta SWD

A porta SWD serve para instalar firmware na flash ROM do MCU.

Porta de extensão de VDD/GND/Port0/Port1

Decidimos ter dois pinos de E/S. (Um pino de E/S não é suficiente nem mesmo para um minimalista.)

Com dois pinos de E/S, pode ser:

  • TX e RX de comunicação serial
  • Drive e entrada de sensor de toque
  • Controle da porta SWD de outro MCU

Plug USB A

O uso do FST-01 é apenas conectá-lo à porta USB, como um pendrive USB.

Possíveis alterações no circuito e nas peças


Regulador LDO

MCP1700T-330 seria uma alternativa (a característica elétrica parece pior, mas para o caso de mais corrente). Nesse caso, precisamos mudar um pouco o circuito.

XTAL

É possível simplesmente substituir o XTAL por XTAL de 12MHz CL=20pF. Essa mudança está dentro da margem do projeto.

Seria melhor também substituir C1 e C2 por 33pF juntos nesse caso, se você for fazer isso desde o início.

Veja explicação sobre capacitância de carga na Wikipedia.

GND de blindagem para GND de sinal

O FST-01 é destinado a ser inserido diretamente na porta USB. Se o uso não for direto, mas conectado por cabo de extensão, é melhor conectar o GND de blindagem e o GND de sinal por resistor (e capacitor se quiser).

Referência: http://electronics.stackexchange.com/questions/4515/how-to-connect-usb-connector-shield

USB_EN

USB_EN não é necessário, mas o pino 5 do NUF2221W1 pode ser conectado diretamente a 3.3V (Vdd).

Em muitos projetos de placas com STM32F103, vemos algo assim, mas como é possível controlar o USB D+ para ficar em 0V por software, USB_EN não é necessário.

Sem memória flash SPI por padrão

O tamanho é um tanto pequeno demais para ser útil, então, poderia ser uma opção especial para usuários e nenhum chip seria OK por padrão.

Imagens da PCB


As imagens da PCB são geradas por prettygerbv.

Protótipo de Engenharia do FST-01


FST-01-Prototype-PCB.jpg

Graças ao serviço Fusion PCB, fizemos a PCB do Protótipo de Engenharia do FST-01.

A montagem da PCB foi feita manualmente por User:Gniibe. Veja meu artigo para mais detalhes.

Esboço do plano de testes


  1. Verificar ID do MCU
  2. Gravar na flash ROM do MCU
  3. Verificar o piscar do LED
  4. Verificar acesso à Flash ROM SPI
  5. Executar um aplicativo que use USB e ver se funciona (Hub atribuindo endereço)
    1. Na energização (ou reset), o LED acende.
    2. O aplicativo FST-01 aguarda a atribuição de endereço USB pelo Hub USB. (Leva alguns segundos para o Hub detectar e atribuir endereço ao dispositivo.)
    3. Após a atribuição de endereço USB, o aplicativo FST-01 entra no loop
      • esperando 5 segundos
      • piscar LED (acende por 25ms,desligado por 200ms).

Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...