[Tinyos-devel] Problem with serial communication on Micaz

Philip Levis pal at cs.stanford.edu
Wed Oct 18 10:38:21 PDT 2006


On Oct 18, 2006, at 10:14 AM, Rodrigo Fonseca wrote:

> Thanks Phil.
>
>
>
>> The major difference that I can see is that your code does not
>> include MeasureClockC, which calibrates the atm128 UART clock.
>
> I think it does include this file. In line 1925 it has an enum that
> comes from MeasureClockC.nc:
>
> # 33 "/home/m_ajnn71afimxip5myrg97438heo/opt/tinyos-2.x/tos/ 
> platforms/mica/MeasureClockC.nc"
> enum MeasureClockC$__nesc_unnamed4310 {
>
>
>  MeasureClockC$MAGIC = 488 / (16 / PLATFORM_MHZ)
> };
>
> uint16_t MeasureClockC$cycles;
>
> static inline  error_t MeasureClockC$Init$init(void);
>
> To verify, I introduced a typo in MeasureClockC.nc and surely enough
> the compilation broke.
>
>> This
>> is wired by platform/mica/PlatformC.nc; are you sure you are up to
>> date in the entire tree?
>
> The tree is up to date as I checked it out fresh before compiling
> this. The tools (compilers, etc) are the newest versions (all compiled
> from source, as I can't install rpms in mirage).
> As far as I know there is no other version of T1 or T2 that could be
> polluting the compilation,
> but I might be wrong.
>
> Thanks,
> Rodrigo

OK, here are the differences I see. + means working version, - means  
not working.

+PLATFORM_BAUDRATE = 57600L
-PLATFORM_BAUDRATE = 57600UL

The other big difference (and I think this might be it) is that your  
version is not wiring Main.SoftwareInit to HplAtm128UartP.Uart0Init.  
That is, it's not initializing the UART.

This wiring normally occurs in HplAtm128UartC. HplAtm128UartC is  
included by Atm128Uart0C. Atm128Uart0C is included by mica/ 
PlatformSerialC. Can you track down your wiring and see where it's  
going wrong?

Phil


More information about the Tinyos-devel mailing list