I found an error in the usci.h modification for the 5xxx series. The definitions for UCBxCTL0/1 are swapped. The UCAxCTL are ok.

Here are the versions of the file I'm using:
* 2009-11-20 - modifications by J.M.Gross <[email protected]>
 * - split definitions for 8/11port and 2/4 USCI CPUs
 * - added PMM module
 *
 * $Id: msp430x54xx.h,v 1.5 2009/06/04 21:55:18 cliechti Exp $

and

* 2009-11-20 - modifications by J.M.Gross <[email protected]>
 * - split definitions for 8/11port and 2/4 USCI CPUs
 * - added PMM module
 *
 * $Id: msp430x54xx.h,v 1.5 2009/06/04 21:55:18 cliechti Exp $


Here is an example of the definitions....

#define UCA0CTL0_ __MSP430_USCI5_BASE_0__ + 0x01 // USCI control 0 (sic)
sfrb(UCA0CTL0, UCA0CTL0_);
#define UCA0CTL1_ __MSP430_USCI5_BASE_0__ + 0x00 // USCI control 1 (sic)
sfrb(UCA0CTL1, UCA0CTL1_);
#define UCB0CTL0_ __MSP430_USCI5_BASE_0__ + 0x20 // USCI synchronous control 0
sfrb(UCB0CTL0, UCB0CTL0_);
#define UCB0CTL1_ __MSP430_USCI5_BASE_0__ + 0x21 // USCI synchronous control 1
sfrb(UCB0CTL1, UCB0CTL1_);
#define UCA1CTL0_ __MSP430_USCI5_BASE_1__ + 0x01 // USCI control 0 (sic)
sfrb(UCA1CTL0, UCA1CTL0_);
#define UCA1CTL1_ __MSP430_USCI5_BASE_1__ + 0x00 // USCI control 1 (sic)
sfrb(UCA1CTL1, UCA1CTL1_);
#define UCB1CTL0_ __MSP430_USCI5_BASE_1__ + 0x20 // USCI synchronous control 0
sfrb(UCB1CTL0, UCB1CTL0_);
#define UCB1CTL1_ __MSP430_USCI5_BASE_1__ + 0x21 // USCI sync


Here is the complete patch:

u...@instant-contiki:~/contiki-2.x/platform/castlerock/tools/msp430-gcc-4.4.3/msp430/include/msp430$ diff -crB usci.h.orig usci.h
*** usci.h.orig    2010-03-15 21:34:58.000000000 -0400
--- usci.h    2010-03-15 21:36:32.000000000 -0400
***************
*** 376,384 ****
  #define UCA0IV_H_           __MSP430_USCI5_BASE_0__ + 0x1F
  sfrb(UCA0IV_H, UCA0IV_H_);

! #define UCB0CTL0_ __MSP430_USCI5_BASE_0__ + 0x20 // USCI synchronous control 0
  sfrb(UCB0CTL0, UCB0CTL0_);
! #define UCB0CTL1_ __MSP430_USCI5_BASE_0__ + 0x21 // USCI synchronous control 1
  sfrb(UCB0CTL1, UCB0CTL1_);
#define UCB0BR0_ __MSP430_USCI5_BASE_0__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB0BR0, UCB0BR0_);
--- 376,384 ----
  #define UCA0IV_H_           __MSP430_USCI5_BASE_0__ + 0x1F
  sfrb(UCA0IV_H, UCA0IV_H_);

! #define UCB0CTL0_ __MSP430_USCI5_BASE_0__ + 0x21 // USCI synchronous control 0
  sfrb(UCB0CTL0, UCB0CTL0_);
! #define UCB0CTL1_ __MSP430_USCI5_BASE_0__ + 0x20 // USCI synchronous control 1
  sfrb(UCB0CTL1, UCB0CTL1_);
#define UCB0BR0_ __MSP430_USCI5_BASE_0__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB0BR0, UCB0BR0_);
***************
*** 450,458 ****
  #define UCA1IV_H_           __MSP430_USCI5_BASE_1__ + 0x1F
  sfrb(UCA1IV_H, UCA1IV_H_);

! #define UCB1CTL0_ __MSP430_USCI5_BASE_1__ + 0x20 // USCI synchronous control 0
  sfrb(UCB1CTL0, UCB1CTL0_);
! #define UCB1CTL1_ __MSP430_USCI5_BASE_1__ + 0x21 // USCI synchronous control 1
  sfrb(UCB1CTL1, UCB1CTL1_);
#define UCB1BR0_ __MSP430_USCI5_BASE_1__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB1BR0, UCB1BR0_);
--- 450,458 ----
  #define UCA1IV_H_           __MSP430_USCI5_BASE_1__ + 0x1F
  sfrb(UCA1IV_H, UCA1IV_H_);

! #define UCB1CTL0_ __MSP430_USCI5_BASE_1__ + 0x21 // USCI synchronous control 0
  sfrb(UCB1CTL0, UCB1CTL0_);
! #define UCB1CTL1_ __MSP430_USCI5_BASE_1__ + 0x20 // USCI synchronous control 1
  sfrb(UCB1CTL1, UCB1CTL1_);
#define UCB1BR0_ __MSP430_USCI5_BASE_1__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB1BR0, UCB1BR0_);
***************
*** 524,532 ****
  #define UCA2IV_H_           __MSP430_USCI5_BASE_2__ + 0x1F
  sfrb(UCA2IV_H, UCA2IV_H_);

! #define UCB2CTL0_ __MSP430_USCI5_BASE_2__ + 0x20 // USCI synchronous control 0
  sfrb(UCB2CTL0, UCB2CTL0_);
! #define UCB2CTL1_ __MSP430_USCI5_BASE_2__ + 0x21 // USCI synchronous control 1
  sfrb(UCB2CTL1, UCB2CTL1_);
#define UCB2BR0_ __MSP430_USCI5_BASE_2__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB2BR0, UCB2BR0_);
--- 524,532 ----
  #define UCA2IV_H_           __MSP430_USCI5_BASE_2__ + 0x1F
  sfrb(UCA2IV_H, UCA2IV_H_);

! #define UCB2CTL0_ __MSP430_USCI5_BASE_2__ + 0x21 // USCI synchronous control 0
  sfrb(UCB2CTL0, UCB2CTL0_);
! #define UCB2CTL1_ __MSP430_USCI5_BASE_2__ + 0x20 // USCI synchronous control 1
  sfrb(UCB2CTL1, UCB2CTL1_);
#define UCB2BR0_ __MSP430_USCI5_BASE_2__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB2BR0, UCB2BR0_);
***************
*** 598,606 ****
  #define UCA3IV_H_           __MSP430_USCI5_BASE_3__ + 0x1F
  sfrb(UCA3IV_H, UCA3IV_H_);

! #define UCB3CTL0_ __MSP430_USCI5_BASE_3__ + 0x20 // USCI synchronous control 0
  sfrb(UCB3CTL0, UCB3CTL0_);
! #define UCB3CTL1_ __MSP430_USCI5_BASE_3__ + 0x21 // USCI synchronous control 1
  sfrb(UCB3CTL1, UCB3CTL1_);
#define UCB3BR0_ __MSP430_USCI5_BASE_3__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB3BR0, UCB3BR0_);
--- 598,606 ----
  #define UCA3IV_H_           __MSP430_USCI5_BASE_3__ + 0x1F
  sfrb(UCA3IV_H, UCA3IV_H_);

! #define UCB3CTL0_ __MSP430_USCI5_BASE_3__ + 0x21 // USCI synchronous control 0
  sfrb(UCB3CTL0, UCB3CTL0_);
! #define UCB3CTL1_ __MSP430_USCI5_BASE_3__ + 0x20 // USCI synchronous control 1
  sfrb(UCB3CTL1, UCB3CTL1_);
#define UCB3BR0_ __MSP430_USCI5_BASE_3__ + 0x26 // USCI synchronous bit rate 0
  sfrb(UCB3BR0, UCB3BR0_);


Reply via email to