Étape 2: Raccordement entre Hard - et Software
De communiquer via SPI il faut configurer la framboise pour permettre les communications de SPI. La meilleure façon de le faire est de permettre le SPI via à raspi-config.
Comment parler de la MCP23S17 ? Via SPI, mais quelle dose que cela signifie.
SPI est un bus de communication maître-esclave. Bus signifie, nous pouvons nous connecter autant de périphériques que nous voulons, en fonction des possibilités de nos puces et comment beaucoup chipselect a de notre Conseil d’administration. Avec la framboise qui a obtenu le chipselect 2, nous pouvons utiliser deux fois 8 jetons. Pour plus d’informations, veuillez lire cet article.
Dans l’ensemble, nous devons envoyer un code binaire pour communiquer avec nos appareils. premier octet , que nous devons envoyer est toujours notre opcode périphérique qui contient l’adresse matérielle de notre dispositif (0b0100) ainsi que l’adresse de la puce, que nous voulons un accès (0b000 et 0 b 001) et un peu de lecture/écriture (0b00/0b01). Pour faire un octet de ce genre de choses, nous devons utiliser un opérateur de bits ou opérateur.
En javascript, nous pouvons faire cela avec ce code :
var hard_addr = 0b01000000; // we appended 4 zeros to avoid a bit shift var chip_addr = 0b0010; // 0b0000 we also appended one zero to avoid a bit shift var read_code = 0b01; // 0b00 // A = hard_addr, B = chip_addr, C = read_code // AAAABBBC var device_opcode = hard_addr | chip_addr | read_code; // 0b01000011
deuxième octet est la commande que nous voulons que l’esclave de le faire et troisième octet est la valeur que nous souhaitons écrire, si nous voulons écrire. Si nous voulons lire que nous il suffit d’écrire 0 x 00 car cet octet supplémentaire signifie un autre tique et le temps pour l’esclave d’exécuter et de répondre. Il y a beaucoup de différentes commandes que vous pouvez aussi voir dans ce pdf. Parce que la puce peut gérer les entrées et les sorties sur son propre, nous assignons juste tous en tant que sortie.
Pour la communication, j’utilise la bibliothèque mcp23s17 pour nodejs. Voici un court exemple de se connecter, lire et écrire des données :
// load the library MCPLib = require('mcp23s17'); // create new instance width device and chip_adress // needed default settings are set (more options will follow) mcp_1 = new MCPLib.MCP23S17( '/dev/spidev0.0', 0 ); // connect decive mcp_1.connect(); var status = 0b10000000; setInterval( function(){ if( status == 0b00000000 ){ status = 0b10000000; } else { status = 0b00000000; } mcp_1.write( 'B', status ); mcp_1.read( 'B', function( s ){ console.log( s ); }); }, 500);