Para um projeto, preciso ter alguma memória externa. Eu usei 1 MB de SRAM.

Estou usando um STM32 e descobri o FSMC. Tive muita dificuldade em entender o propósito disso.

O que li sobre isso me levou ao fato de que, ao usá-lo, ele fornece uma localização direta na memória. Assim, você pode gravar na memória sem ter que pilotar os pinos específicos (como CE, OE, WE …). Também permite que você escreva / leia para SRAM sem ter que usar registradores de gravação GPIO, então você é muito mais rápido. (é claro que há muito mais vantagens). Se eu estiver certo, acho uma ideia muito boa usá-lo.

Estou certo em pensar assim? Eu entendi completamente errado?

Comentários

  • O que você leu? Você leu o documento dedicado ?
  • Mais rápido? Não ..
  • Se o FSMC fornece alguma vantagem depende do STM32 que você está usando. Por exemplo, não seria usado em nenhum produto da linha de valor (baseado em M2), mas forneceria valor na alta linha de desempenho com o barramento AHB. Você não fornece detalhes de sua configuração, portanto ' é impossível ajudá-lo.
  • @JackCreasey " Com base em M2 "? Eu ' não tenho certeza do que você ' referindo-se aqui; não existe Cortex-M2. Todos os microcontroladores STM32 têm um AHB, mas nem todos suportam FSMC.
  • @duskwuff Desculpe ..tipo … significava baseado em M3.

Resposta

Estou certo em pensar assim? Eu entendi errado?

O FSMC pode ser usado para armazenar dados em uma configuração volátil. Alguns (não todos) STM32 “s têm FSMC mapeado para um espaço de endereço (em 0x60000000). Usar uma SRAM serial é melhor para armazenar dados aos quais você não precisa de acesso rápido. Se você usá-lo para valores que são comuns na execução, ele pode desacelerar seu programa consideravelmente.

Você ainda precisa configurar os pinos para uso com FSMC e envolver sua cabeça em torno da interface e testá-lo.

Comentários

  • Olá @ laptop2d Claro, só quero armazenar dados de uma câmera para processá-los mais tarde e para algumas imagens para um display TFT. Eu entendi que o FSMC fornece um local de memória para que ele se comporte como uma gravação na RAM MCU interna no lado da programação. Se eu entendi corretamente, deixar o FSMC controlar todos os pinos automaticamente no hardware é muito mais rápido para o MCU do que tentar pilotar cada pino de comando manualmente, certo? Btw i ' m usando um STM32L496ZG MCU e esta SRAM: cypress.com/file/43811/download
  • Você poderia usá-lo como uma rom e contar que seria lento, mas ficaria no espaço de endereço e volátil. Isso significa que se você fosse usá-lo para uma exibição TFT e precisasse buscar a imagem com frequência, teria um atraso toda vez que buscasse a imagem. O FMSC pode ser um pouco mais rápido, mas ainda muito mais lento do que a RAM, pois os dados são enviados em série. meta.stackexchange.com/questions/126180/…

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *