I used the comments to the original $TOSDIR/chips/atm128/Atm128UartP.nc
to calculate the m_byte_time for 230400.
----------
command error_t Init.init() {
if (PLATFORM_BAUDRATE == 19200UL)
m_byte_time = 200; // 1 TMicor ~= 2.12 us, one byte = 417us ~= 200
else if (PLATFORM_BAUDRATE == 57600UL)
m_byte_time = 68; // 1 TMicor ~= 2.12 us, one byte = 138us ~= 65
----------
For your 1200 bit/s it should be:
else if (PLATFORM_BAUDRATE == 1200UL)
m_byte_time = 3145; // 1 TMicor ~= 2.12 us, one byte = 6667us ~= 3145
Best wishes,
Andrey
Li, Zhen Li wrote:
> Hi Andrey:
>
> Thanks for the help.
>
> But I'm still a little confused about the bard rate setting stuff.
>
> Right now I found 4 files maybe related to bardrate setting as: hardware.h,
> Atm128Uart.h, atm128UartP.nc and HplAtm128UartP.nc.
>
> The "hardware.h" locates in $TOSDIR/tos/platforms/micaz/, with an enum as:
> PLATFORM_BAUDRATE = 57600L . Is it the general baudrate for both Uart0 and
> Uart1? So if I change this value, does it mean that the baudrate for UART1
> will also be changed?
>
> The rest of the files located in $TOSDIR/tos/chips/atm128/. In the
> Atm128Uart.h, there is also an enum which seems to reflect the real baudrate
> regester's readings but I could not find where this values are used. In the
> Atm128UartP.nc, there's a command as Init.init and it seems that the baudrate
> is set roughly there also. And in the HplAtm128UartP.nc, there's a command as
> Atm128Calibrate.baudrateRegister(PLATFORM_BAUDRATE) called with a returened
> value as ubrr0. Then the UBRR0L and UBRR0H was renewed according to ubrr0.
>
> So upon the four areas related to baudrate setting, which should I use? And
> can you give me some wiring example about using UART0 to receive bytes no
> matter what baudrate it is in?
>
> Thanks!
>
> Zhen
>
>
> ________________________________________
> From: Andrey Gursky [EMAIL PROTECTED]
> Sent: Wednesday, October 15, 2008 12:55 PM
> To: Li, Zhen Li
> Cc: Tinyos-Help
> Subject: Re: [Tinyos-help] How to set baud rate on UART0
>
> Li, Zhen Li wrote:
>> Hi
>>
>> Does anyone know how to set the baudrate in TinyOS 2.1 for MicaZ's or IRIS's
>> UART0? I want to set the baudrate to 1200 and I know how to do the baudrate
>> register's calculation but don't know where to put those values. Also, how
>> can I use the UART0 to read some bytes? Can anyone tell me something about
>> the wiring?
>>
>> Thanks!
>
> Hi Zhen!
>
> In $TOSDIR/chips/atm128/HplAtm128UartP.nc there are functions to
> initialize UART0/1. The both use command
> call Atm128Calibrate.baudrateRegister(PLATFORM_BAUDRATE);
> with parameter that is defined in
> $TOSDIR/platforms/micaz/hardware.h
> (I assume IRIS uses also this definition from micaz and not from mica,
> because of the order of includes in $TOSDIR/platforms/iris/.platform)
> So you should alter this parameter only in hardware.h
>
> In
> $TOSDIR/chips/atm128/Atm128UartP.nc
> the command Init.init()
> should be extended with new PLATFORM_BAUDRATE you want to use and the
> appropriate new calculated value m_byte_time.
>
>
> Hope I was not wrong. Best wishes,
> Andrey
>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help