Emulazione dei dispositivi a 1 filo


10

Quello che voglio fare è fare in modo che un IC ATTiny diventi uno slave sul bus a 1 filo, con il proprio S / N e la lista dei comandi per le sue funzioni specifiche.

Quello che voglio sapere è se posso usare la libreria a un filo dal sito di Arduino per inviare dati come slave.

Ad esempio, puoi avere uno slave in una stanza con più tipi di sensori che riferirebbero al master in base alle informazioni richieste, oppure il master può dirgli di controllare qualcosa come i blind.

Domanda Dovrei monitorare la linea del bus e rispondere a una richiesta del master e prendere in considerazione anche il modo in cui un normale sensore invierebbe i dati? Con quale frequenza devo eseguire lo slave per ottenere la migliore funzionalità?

Non userò il potere parassitario, come nota.



@Gerben - L'avevo trovato prima in una ricerca. L'ho sfogliato. Ma ero preoccupato perché c'erano alcuni errori, anche se risolti, non conosco l'affidabilità. Anche cercare i design dei nemici usando gli schiavi personalizzati non sembrava una cosa comune, quindi la domanda sopra.
RSM

Sembra che la biblioteca lo supporti. Ecco una libreria appositamente per questo credo. La velocità sembra essere di circa 15 kbps. Penso che la velocità della CPU non abbia molta importanza, ma dipende dalla libreria. Se non è alimentato a batteria, basta eseguirlo a 8mhz o 16mhz e dovrebbe andare bene.
Gerben,

@Gerben Testerò la libreria per vedere come funziona. Una cosa che ancora non capisco è perché è così raro che alcune cose non utilizzino lo slave a filo singolo?
RSM

@RSM Dovresti controllare questa libreria github.com/MarkusLange/OneWireSlave
Ryu_hayabusa

Risposte:


3

Per quanto ne so, la libreria a 1 filo collegata alla tua domanda consente solo di agire come un maestro, non come uno schiavo.

Ho appena rilasciato una libreria per trasformare una scheda Arduino in uno slave a 1 filo, qui: https://github.com/neuoy/OneWireArduinoSlave (modifica: spostato qui https://gitea.youb.fr/youen/OneWireArduinoSlave ). Lo uso nel mio sistema di automazione domestica personalizzato e funziona perfettamente nella mia configurazione (il master a 1 filo, un DS9490R, è collegato a un laptop tramite USB e fornisce anche alimentazione all'Arduino, che è un Arduino Uno). La libreria gestisce i dettagli di basso livello: abbina rom, byte invia e ricevi (che in realtà è abbastanza difficile da ottenere, per lo più impossibile senza un analizzatore logico). Il resto sta a voi.

È interamente implementato con interruzioni, tutte le comunicazioni vengono eseguite in background, è possibile eseguire altri codici come al solito, in parallelo, e ricevere notifiche da callback quando vengono ricevuti byte ecc. Anche l'invio di byte al master è asincrono.

So anche che esiste almeno un'altra libreria, https://github.com/MarkusLange/OneWireSlave , come commentato sopra da Ryu_hayabusa. Non ha funzionato per me (non so se è a causa della mia configurazione hardware o per un altro motivo), ma sicuramente funziona per gli altri, quindi vale la pena provare. Sembra che questa libreria non sia implementata con gli interrupt, quindi il tuo programma è bloccato mentre aspetti l'attività principale (che è perfettamente accettabile in molti scenari).


Il repository sembra essersi spostato su gitea.youb.fr/youen/OneWireArduinoSlave
Jonas Berlin

1
@JonasBerlin In effetti, ho spostato il repository (ho appena modificato la risposta per riflettere ciò). Lascio il vecchio link come backup per ogni evenienza e come riferimento per trovare forchette di altre persone su GitHub.
Youen

I problemi dovrebbero essere copiati forse?
Jonas Berlin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.