Li on-line que, para iniciar uma transação SPI em um dispositivo suportado por SPI, a linha SS (slave select, também conhecida como chip select) deve ser configurada como baixa para toda a transação e, em seguida, ficar alta na transação de ponta a ponta. Se eu criar um circuito contendo apenas um dispositivo SPI, precisarei baixar o comando SS line send e aumentar a linha ss toda vez ou posso amarrar a linha ss baixa e enviar comandos ilimitados? O dispositivo que estou usando é o chip de som ISD1700 .
8
Respostas:
[@Kevin e @akohlsmith devem postar seus comentários como respostas.
Isso é para expandir seus comentários. ]
O SPI 1 não prescreve o comportamento exato do SS (linha 2 de seleção de escravos ). Esse comportamento depende da implementação de cada dispositivo individual. Eu vi dispositivos que podem operar com o SS permanentemente aserted. Eu também vi dispositivos que exigem arestas caindo e subindo no SS.
Embora não diga isso explicitamente que o SS deve ser alternado,
o guia de design (p.31) diz que o SS inicia e termina a transação SPI. Seria prudente supor que o SS precisa ser alternado para que a transação do SPI seja concluída.
1 SPI é mais um costume do que um padrão.
2 CS (seleção de chip) é outro nome para a seleção de escravos.
fonte
Depende inteiramente do dispositivo escravo.
Se o protocolo para o dispositivo escravo incluir algum tipo de enquadramento, seja com pacotes de comprimento fixo, bytes de início / parada ou um cabeçalho que especifique o tamanho do pacote, o dispositivo escravo poderá operar sem uma seleção de chip. Eu tenho um chip de memória flash SPI na placa em que estou trabalhando no qual parece estar perfeitamente feliz com ou sem o chip selecionado. Pode ser conectado permanentemente a 0V (ativado) sem problemas.
Isso realmente nos causou alguns problemas, porque um contratado havia configurado algumas das E / S de baixo nível, incluindo o SPI, e nós (e eles!) Não percebemos que não tinham o chip select funcionando. Não foi até que eu tive que estender o trabalho de SPI para adicionar outro dispositivo SPI no mesmo barramento que eu descobri que na verdade não tínhamos chips selecionados!
Por outro lado, muitos dispositivos escravos precisam de seleções de chips para enquadrar os dados, e o envio de mais bits / bytes do que o pacote esperado sem liberar a seleção de chips no final será visto como uma transferência inválida e rejeitada. Os DACs geralmente carregam o novo valor na saída do chip, selecione a borda ascendente. Os ADCs da mesma forma costumam usar a transferência SPI para iniciar (e às vezes cronometrar) a conversão; portanto, eles precisam que o chip selecione a borda descendente como seu gatilho.
Sua folha de dados não diz nada sobre como direcionar seu chip em particular sobre o SPI, e não estou motivado o suficiente para pesquisá-lo no Google. Exercício deixado para o leitor ...;)
fonte
Sem saber nada específico sobre o dispositivo escravo SPI, não, você não pode simplesmente amarrar o SS baixo.
Muitos dispositivos usam a ponta principal do SS para redefinir sua lógica interna para o início de uma nova transação. Por exemplo, as memórias podem interpretar os dois primeiros bytes como endereço e os bytes subsequentes como dados. Algumas memórias não executam a gravação física até que a SS seja desassociada.
Para alguns dispositivos com o protocolo certo, você pode se safar dele. No entanto, ele não funcionará com a maioria dos dispositivos por aí.
fonte