[Tinyos-devel] Proposed UART Changes
Eric Decker
cire831 at gmail.com
Thu Jun 18 21:41:40 PDT 2009
So does enableRX/enableTX enable interrupts? Or does it simply set things
up for byte send/receive etc.
So is the intent something like:
call xxx.enableRX()
call UartByte.receive()
call xxx.enableTX()
call UartByte.send(uint8_t byte)
eric
On Thu, Jun 18, 2009 at 6:39 PM, Trevor Pace <trevorpace at gmail.com> wrote:
> Eric,
>
> In this case enabled is referring to whether or not the MCU will be
> listening on the receive line, or will start transmitting data when a byte
> is loaded into the tx data register.
>
> When it comes to interrupts no interrupt will get thrown if you disable
> reception, same goes with any transmission-done interrupts. They won't even
> get called when reception is enabled again because the MCU did not receive
> and buffer the data.
>
> As for what does this abstraction buy you, I would argue that it simply
> provides more tools to users. Someone coming from regular C programming or
> Assembly might be expecting the kind of control over the UART module that
> they were used to. So for them to want to continue to use TinyOS they won't
> want to dive in and start using HPL modules for very simply programs because
> there is no way for them to quickly do half-duplexing.
>
> Trevor Pace
>
>
> On Thu, Jun 18, 2009 at 10:25 PM, Eric Decker <cire831 at gmail.com> wrote:
>
>>
>>
>> On Thu, Jun 18, 2009 at 3:24 PM, Philip Levis <pal at cs.stanford.edu>wrote:
>>
>>>
>>> On Jun 17, 2009, at 12:56 PM, Trevor Pace wrote:
>>>
>>> > Hey Eric,
>>> >
>>> > The problem I am seeing right now is that I am developing a module
>>> > which should in theory work on any mote that supports UART. However,
>>> > there exists no hardware abstraction interface provided by all
>>> > platforms that would allow me to disable/enable communication. It
>>> > does exist at the lower HPL but that is implemented per chip.
>>> >
>>> > So for me to shut-off my reception temporary I must wire a chip-
>>> > specific HPL Uart module removing the possibility of compatibility
>>> > with other chip sets. The Msp430HplUart you mentioned does support
>>> > enabling/disabling for sure, unfortunately by the time it gets to
>>> > the PlatformSerialC abstraction (which is available to all chipsets
>>> > with UART) then I lose that ability.
>>>
>>> It seems we definitely want a UartControl or UartSettings interface.
>>>
>>> One constraint is that we want to catch bad settings at compile-time.
>>> For example, trying to set the UART to a speed the MCU does not
>>> support should be a compile-time error. The standard way to do this is
>>> with enums: if you use an undefined enum you don't compile.
>>>
>>> How about something like
>>>
>>> interface UartControl {
>>> command error_t enableRx();
>>> command error_t disableRx();
>>> command bool rxEnabled();
>>>
>>> command error_t enableTx();
>>> command error_t disableTx();
>>> command bool txEnabled();
>>>
>>
>> Unfortunately this is ambiguos. What does enabled mean? The device can
>> be turned on
>> and capable of doing its function. There is also the issue of interrupts
>> being turned on
>> or off.
>>
>> More detail is needed. Another question is what does the abstraction buy
>> us?
>>
>> eric
>>
>>
>>>
>>> // TOS_UART_2400, TOS_UART_57600, etc.
>>> command error_t setSpeed(uart_speed_t spd);
>>> command uart_speed_t speed();
>>>
>>> // TOS_PARITY_NONE, TOS_PARITY_EVEN, TOS_PARITY_ODD, etc.
>>> command error_t setParity(uart_parity_t par);
>>> command uart_parity_t parity();
>>>
>>> command error_t setStop();
>>> command error_t setNoStop();
>>> command bool stopBits();
>>> }
>>>
>>> Thoughts?
>>>
>>> Phil
>>>
>>> _______________________________________________
>>> Tinyos-devel mailing list
>>> Tinyos-devel at millennium.berkeley.edu
>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel
>>>
>>
>>
>>
>> --
>> Eric B. Decker
>> Senior (over 50 :-) Researcher
>> Autonomous Systems Lab
>> Jack Baskin School of Engineering
>> UCSC
>>
>>
>
--
Eric B. Decker
Senior (over 50 :-) Researcher
Autonomous Systems Lab
Jack Baskin School of Engineering
UCSC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-devel/attachments/20090618/e0cbb7fe/attachment.htm
More information about the Tinyos-devel
mailing list