Projet capteurs : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Enseignants)
(Environnement de développement GNU pour les MSP430)
Ligne 28 : Ligne 28 :
  
 
== Environnement de développement GNU pour les MSP430 ==
 
== Environnement de développement GNU pour les MSP430 ==
 +
 +
Aujourd'hui ces outils sont disponibles en package sur la plupart des distributions Linux et via homebrew pour macOS.
 +
Il peut être intéressant de les compiler pour avoir la dernière version.
  
 
=== Installation de MSPGCC ===
 
=== Installation de MSPGCC ===
Ligne 37 : Ligne 40 :
  
 
=== Utilisation du lien série ===
 
=== Utilisation du lien série ===
Normalement les cartes doivent apparaitre sous /dev/ttyACM0 une fois branchées, vous pouvez ensuite vous y connecter en utilisant [http://help.ubuntu.com/community/Minicom minicom].
+
Normalement les cartes doivent apparaitre sous <code>/dev/ttyACM0</code> une fois branchées, vous pouvez ensuite vous y connecter en utilisant [http://help.ubuntu.com/community/Minicom minicom].
  
 
== Protocole ==
 
== Protocole ==

Version du 29 novembre 2017 à 17:31

AttentionCette page est maintenue par les enseignants et utilisée par les élèves de la matière concernée. Vos contributions sont les bienvenues, mais merci d'en discuter avant de faire des modifications non triviales de la page, pour être sûr de ne pas perturber le déroulement du cours.

Mycomputer.png  Deuxième Année  CDROM.png  Informatique 

Enseignants

Franck Rousseau

Informations pratiques

Code de démarrage

Lisez la partie Lab 2, qui contient les crash courses sur le MSP, le CC2500 et présente la carte eZ430-RF2500

  • Programmer avec `mspdebug rf2500 "prog led_steady"`

Environnement de développement GNU pour les MSP430

Aujourd'hui ces outils sont disponibles en package sur la plupart des distributions Linux et via homebrew pour macOS. Il peut être intéressant de les compiler pour avoir la dernière version.

Installation de MSPGCC

Le lien suivant indique la marche à suivre pour compiler et installer la version de gcc nécessaire pour faire la cross-compilation vers les micro-contrôleurs MSP. Installing MSPGCC4 and MSPDEBUG on Kubuntu 10.04.

Installation de MSPDebug

Le plus simple est de cloner le dépôt git de MSPDebug puis le compiler.

Utilisation du lien série

Normalement les cartes doivent apparaitre sous /dev/ttyACM0 une fois branchées, vous pouvez ensuite vous y connecter en utilisant minicom.

Protocole

Protocol eZ430-RF2500.png

Plus d'infos sur l'intranet : KIOSK

Format de trames

Pistes de réflexion sur le format des trames. L'idée est de partir du format donné par MRFI :

mrfiPacket_t.frame
Length (1B) Source (4B) Destination (4B) Payload (Length - 8B)

Avec payload de taille maximale 53 Bytes.

On ajoute un octet de flags.

mrfiPacket_t.frame
Length (1B) Source (4B) Destination (4B) Flags (1B) Payload (Length - 8B)

Flags

  • 0x1 = BEACON BIT : Si à 1 il s'agit d'une trame beacon.
  • ...

Beacon frame

Les trames dont le BEACON BIT est positionné à 1 auront un format strict et spécial. La trame devra contenir :

  • 8 bits : Un numéro de réseau
  • 8 bits : Le numéro du slot actuel
mrfiPacket_t.frame
11 (Length 1B) Source (4B) 0xFF (4B) Flags & 0x01 (1B) Network id (1B) Slot num (1B)

Remarques

Il est important que la durée de scan soit importante (minimum 2 duty cycles) afin d'être sûr de ne manquer aucun beacon.

Header Commun

#ifndef __COMMON_DEFINES_H__
#define __COMMON_DEFINES_H__
#include <mrfi.h>
// Definition des adresses
#define ET_1 0x1
#define ET_2 0x2
#define ET_3 0x3
#define ET_4 0x4
#define ET_5 0x5
#define ET_6 0x6
#define KH_1 0x7
#define KH_2 0x8
#define KH_3 0x9
#define KH_4 0xA
#define VB_1 0xB
#define VB_2 0xC
#define VB_3 0xD
#define VB_4 0xE

// Definition des flags
#define FDATA 0x0
#define FBEACON 0x1

// en ms
#define DUREE_CYCLE 500
// en ms
#define DUREE_SCAN 1000
// en ms
#define DUREE_ACTIVE 200
// en ms
#define DUREE_SLOT 2
// 32 slots ?
#define N_SLOT 32

typedef struct
{
	uint8_t length;
	uint8_t src[4];
	uint8_t dst[4];
	uint8_t flags;
	uint8_t data[MRFI_MAX_FRAME_SIZE-10];
} mPacket;

typedef struct
{
	uint8_t network_num;
	uint8_t slot_num;
	uint8_t slot_total;
} mBeacon;

#endif


Groupes 2011