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ólucro | FST-01 com tubo termo retrátil | FST-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
| Peça # | Nome | Detalhe | Encapsulamento | Fabricante | Distribuidor | referência do distribuidor |
|---|---|---|---|---|---|---|
| C1 | Capacitor | 27pF | C0402 | |||
| C2 | Capacitor | 27pF | C0402 | |||
| C3 | Capacitor | 0.1uF | C0402 | |||
| C4 | Capacitor | 0.1uF | C0402 | |||
| C5 | Capacitor | 0.1uF | C0402 | |||
| C6 | Capacitor | 0.1uF | C0402 | |||
| C7 | Capacitor | 0.1uF | C0402 | |||
| C8 | Capacitor | 4.7uF | C0603 | |||
| C9 | Capacitor | 0.01uF | C0402 | |||
| C10 | Capacitor | 4.7uF | C0603 | |||
| C11 | Capacitor | 0.1uF | C0402 | |||
| R1 | Resistor | 510R | R0402 | |||
| D1 | LED | Azul | LED0603 | |||
| J1 | Conector | USB 2.0, 1002-015-01001 | Plug USB A Macho | CNC Tech | Digikey | 1175-1020-ND |
| U1 | MCU | STM32F103TBU6 | QFN36 | STMicroelectronics | AVNET | STM32F103TBU6 |
| U2 | Regulador LDO V | CAT6217-330TDGT3 +3.3V | TSOT23-5 | ON Semiconductor | Mouser | 698-CAT6217330TD-G |
| U3 | Terminador USB | NUF2221W1 | SOT363 | ON Semiconductor | Digikey | NUF2221W1T2GOSTR-ND |
| U4 | Memória Flash SPI | SST25VF032B-80-4I-QAE-T | WSON8 | Silicon Storage Technology | Digikey | SST25VF032B-80-4I-QAE-T-ND |
| X1 | Cristal | ABM8G-12.000MHZ-18-D2Y-T | 3.2mmx2.5mm | Abracon Corporation | Digikey | 535-10261-2-ND |
| Gabinete | P1A-120704U White | 1.2 x .71 x .40 polegada | New 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
- Verificar ID do MCU
- Gravar na flash ROM do MCU
- Verificar o piscar do LED
- Verificar acesso à Flash ROM SPI
- Executar um aplicativo que use USB e ver se funciona (Hub atribuindo endereço)
- Na energização (ou reset), o LED acende.
- 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.)
- 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.
