OpenZB demo e daughter board
Posted: Tue Jun 07, 2011 11:01 pm
Salve,
mi trovo a lavorare in un laboratorio che dispone di 3 schede Erika flex FULL, 2 equipaggiate con la demo board e una con una daughter board costruita per permettere il solo collegamento dell'antenna zigBee e della UART 1.
Ho iniziato il lavoro equipaggiando le 2 schede dotate di demo board con il software "simple openZB demo" disponibile in Eclipse (una scheda NODO e l'altra COORDINATORE), e, visto che la comunicazione funzionava correttamente, ho modificato il software escludendo led, lcd e tutto ciò che riguardava la demo board, dirottando ogni messaggio e comunicazione sulla porta UART 2. A questo punto ho creato un software NODO che quando riceve un carattere dal coordinatore glielo re-invia, e un software COORDINATORE che quando legge un carattere inviato tramite UART 2 lo invia tramite zigBee al NODO, mentre quando riceve un pacchetto da zigBee (dal NODO) invia il carattere via UART 2. Tutto funzionava correttamente, perciò, dovendo utilizzare 3 nodi, ho montato il software COORDINATORE sulla terza scheda, cambiato UART 1 con UART 2, e le seguenti righe di codice nel file conf.oil
BOARD_DATA = EE_FLEX {
TYPE = DEMO {
OPTIONS = LCD;
OPTIONS = LEDS;
OPTIONS = BUTTONS;
};
};
sostituendole con
BOARD_DATA = EE_FLEX {
USELEDS = TRUE;
};
Il nuovo programma compila correttamente, ma, con mia sorpresa, sulla scheda non dotata di demo board non funziona la ricezione di dati tramite ZigBee, ma solo l'invio (il software NODO montato sulla scheda con la demo board riceve i dati dal coordinatore e glieli rimanda, ma il coordinatore non restituisce niente tramite UART). Ho controllato le connessioni e sono ben fissate e uguali a quelle della demo board, inoltre altri colleghi del laboratorio sono riusciti a far funzionare la medesima sia in invio che in ricezione, anche se usando un software diveso. Non è un problema di UART perchè alla ricezione ho abbinato un lampeggio del led.
Per prova ho anche ri-montato lo stesso software sulla scheda dotata di demo board lasciando invariato il file conf.oil (la versione modificata) e cambiando solo UART 1 in UART 2. Il risultato è stato anche in questo caso il funzionamento del solo invio dati, la ricezione rimaneva non funzionante. Risostituendo le righe originali nel file conf.oil anche la ricezione ha ripreso a funzionare.
La mia domanda è: con questo software servono delle particolari risorse della demoboard per far sì che il nodo gestisca la ricezione dei pacchetti arrivati tramite lo stack ZigBee oppure se si sostituisce all'utilizzo della demo board quello di una daughter board generica è necessario solamente cambiare qualche riga di codice? Se eventualmente fosse vera la seconda ipotesi, quali modifiche sarebbe necessario apportare?
Grazie
mi trovo a lavorare in un laboratorio che dispone di 3 schede Erika flex FULL, 2 equipaggiate con la demo board e una con una daughter board costruita per permettere il solo collegamento dell'antenna zigBee e della UART 1.
Ho iniziato il lavoro equipaggiando le 2 schede dotate di demo board con il software "simple openZB demo" disponibile in Eclipse (una scheda NODO e l'altra COORDINATORE), e, visto che la comunicazione funzionava correttamente, ho modificato il software escludendo led, lcd e tutto ciò che riguardava la demo board, dirottando ogni messaggio e comunicazione sulla porta UART 2. A questo punto ho creato un software NODO che quando riceve un carattere dal coordinatore glielo re-invia, e un software COORDINATORE che quando legge un carattere inviato tramite UART 2 lo invia tramite zigBee al NODO, mentre quando riceve un pacchetto da zigBee (dal NODO) invia il carattere via UART 2. Tutto funzionava correttamente, perciò, dovendo utilizzare 3 nodi, ho montato il software COORDINATORE sulla terza scheda, cambiato UART 1 con UART 2, e le seguenti righe di codice nel file conf.oil
BOARD_DATA = EE_FLEX {
TYPE = DEMO {
OPTIONS = LCD;
OPTIONS = LEDS;
OPTIONS = BUTTONS;
};
};
sostituendole con
BOARD_DATA = EE_FLEX {
USELEDS = TRUE;
};
Il nuovo programma compila correttamente, ma, con mia sorpresa, sulla scheda non dotata di demo board non funziona la ricezione di dati tramite ZigBee, ma solo l'invio (il software NODO montato sulla scheda con la demo board riceve i dati dal coordinatore e glieli rimanda, ma il coordinatore non restituisce niente tramite UART). Ho controllato le connessioni e sono ben fissate e uguali a quelle della demo board, inoltre altri colleghi del laboratorio sono riusciti a far funzionare la medesima sia in invio che in ricezione, anche se usando un software diveso. Non è un problema di UART perchè alla ricezione ho abbinato un lampeggio del led.
Per prova ho anche ri-montato lo stesso software sulla scheda dotata di demo board lasciando invariato il file conf.oil (la versione modificata) e cambiando solo UART 1 in UART 2. Il risultato è stato anche in questo caso il funzionamento del solo invio dati, la ricezione rimaneva non funzionante. Risostituendo le righe originali nel file conf.oil anche la ricezione ha ripreso a funzionare.
La mia domanda è: con questo software servono delle particolari risorse della demoboard per far sì che il nodo gestisca la ricezione dei pacchetti arrivati tramite lo stack ZigBee oppure se si sostituisce all'utilizzo della demo board quello di una daughter board generica è necessario solamente cambiare qualche riga di codice? Se eventualmente fosse vera la seconda ipotesi, quali modifiche sarebbe necessario apportare?
Grazie