Hi Sergio,

Look at the meshbean platform in
tinyos-2.x-contrib/ethz/meshbean900/tos/platforms/meshbean/chips/rf230

I have the attached files there, and I am sure these will be good for
your platform as well.

Best,
Miklos

On Sat, Oct 29, 2011 at 4:27 AM, Sergio Gonzalez <serg...@ece.ubc.ca> wrote:
> Hi Miklos,
>
> Thank you so much for your previous help. I ended up designing new boards
> for my custom zigbit implementation and finally got TinyOS running on them.
> So far I've got LEDs blinking and serial comms (TestSerial & Printf)
> working. However, I have been unable to get the radio working.
>
> The only thing I've noticed so far is what appears to be an incorrect pin
> configuration in /tos/platforms/zigbit/chips/rf320/HplRF230C.nc that does
> not correspond to the presupposed internal pins connections in the zigbit
> module. The original file specifies the following configuration:
>
>    ...
>    HplRF230P.PortCLKM -> IO.PortD6;
>    HplRF230P.PortIRQ -> IO.PortD4;
>    ...
>    SLP_TR = IO.PortB7;
>    RSTN = IO.PortA6;
>    SELN = IO.PortB0;
>    ...
>
> Obviously, this configuration is intended for the IRIS mote, so I changed it
> for zigbit as follows:
>
>    ...
>    HplRF230P.PortCLKM -> IO.PortB0;     // PortB5 <- wrong as per P. Sommer
> (no?) // PortD6;
>    HplRF230P.PortIRQ -> IO.PortE5;        // PortD4;
>    ...
>    SLP_TR = IO.PortB4;                           // PortB7;
>    RSTN = IO.PortA7;                              // PortA6;
>    SELN = IO.PortB0;                              // OK!
>
> I don't know whether I am wrong here, and what else I am missing to get the
> radio working accordingly. I would greatly appreciate your help on this
> matter!
>
> Best regards,
>
> Sergio
>
>
> On 08/24/2011 02:18 PM, Miklos Maroti wrote:
>>
>> Hi Sergio,
>>
>> Just turn on all ports and all pins, just to make sure it is not
>> connected to something else. I do not have a good documentation of
>> zigbit. Also, you can try to send characters over the uart, but that
>> is much harder to do, you have to get the baudrate right, which is
>> hard with an uncalibrated RC oscillator.
>>
>> Miklos
>>
>> On Wed, Aug 24, 2011 at 10:17 PM, Sergio Gonzalez<serg...@ece.ubc.ca>
>>  wrote:
>>>
>>> Hi Miklos,
>>>
>>> I did set the corresponding DDR register accordingly, which assumes that
>>> my
>>> LEDs' cathods are wired to the Zigbit pins, and anodes are connected to
>>> Vcc
>>> through a resistor.
>>>
>>> Thanks for your help!
>>>
>>> Sergio
>>>
>>> -----------------------------------
>>> #include<avr/io.h>
>>> #include<avr/wdt.h>
>>>
>>> int main(void)
>>> {
>>>     while(1)
>>>     {
>>>         MCUSR&= ~_BV(WDRF);
>>>         wdt_disable();
>>>
>>>         DDRG |= _BV(DDG0);        //DDRG |= (1<<DDG0);
>>>         PORTG&= ~_BV(PG0);      //PORTG&= ~(1<<PG0);
>>>         while(1);
>>>         return 0;
>>>     }
>>> }
>>> ------------------------------------
>>>
>>> On 24/08/2011 12:58 PM, Miklos Maroti wrote:
>>>
>>> Well, just read the datasheet carefully. If you can upload the
>>> program, then probably the MCU is working fine. You might need to set
>>> the DDR registers. Best, Miklos
>>>
>>> On Wed, Aug 24, 2011 at 9:10 PM, Sergio Gonzalez<serg...@ece.ubc.ca>
>>>  wrote:
>>>
>>> Hi Milkos,
>>>
>>> Thanks for your reply. I tried a simple "hello world" program to lit an
>>> LED
>>> using AVR studio (no TinyOS). Again, the program loads OK, but neither of
>>> my
>>> two custom Zigbit boards show sign of life. Maybe I screwed them up while
>>> soldering, or maybe there is some trick to getting port G working (which
>>> is
>>> the port I wired my LEDs to). I suppose I'll redesign my board to wire
>>> LEDs
>>> to pins B5-B7 and try again. I'll follow up with another email later on.
>>>
>>> Much thanks!
>>>
>>> Sergio
>>>
>>>
>>> On 23/08/2011 12:10 AM, Miklos Maroti wrote:
>>>
>>> Hi Sergio,
>>>
>>> Write a small C program to test the LEDS and that the Zigbit is
>>> functional. Once you have the LEDS working in C, then you can try the
>>> tinyos distribution.
>>>
>>> Best,
>>> Miklos
>>>
>>> On Tue, Aug 23, 2011 at 2:09 AM, Sergio Gonzalez<serg...@ece.ubc.ca>
>>>  wrote:
>>>
>>> Hello,
>>>
>>> I am hoping someone can provide either pointers or direct advice on
>>> getting
>>> TinyOS 2.x to run over a standalone Atmel Zigbit device. I have been
>>> trying
>>> to do so for the past few days with no success. I designed a simple
>>> breakout
>>> board for this device and followed the steps to implement a new TinyOS
>>> platform as previously documented by Swiss researchers for the Meshbean
>>> 900.
>>> This is my setup:
>>>
>>> OS: Windows (Cygwin)
>>> Device: ATZB-24-A2 (Zigbit)
>>> Programmer: AVRisp MKII
>>> LEDs connected to pins 19-21 (ports G0-G2)
>>>
>>> I am unable to at least get my LEDs lit (yes, I’ve tested the LEDs, they
>>> are
>>> functional). I am able to program the device by first creating the binary
>>> image through TinyOS, and then upload it employing AVR Studio 5.x.
>>> However,
>>> the program shows no sign of life. Building a binary image as if it were
>>> an
>>> Iris mote won’t work either. When programming the device, I have setup
>>> fuses
>>> as: 0xFF (E), 0x99 (H), 0xE2 (L); and 0xFF (E), 0x9C(H), 0x62(L), with no
>>> luck for either case. I’ve worked with TinyOS for years now employing
>>> both
>>> the Micaz and the Telosb platform, but it is my first time working with a
>>> Zigbit. I do not have a JTAG programmer, so I am unable to debug the
>>> program
>>> and verify whether it is even running properly. Any advice?
>>>
>>> Thanks!
>>>
>>> Sergio
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Tinyos-help mailing list
>>> Tinyos-help@millennium.berkeley.edu
>>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>>>
>>>
>>>
>
>

Attachment: HplRF230C.nc
Description: Cdf file

Attachment: HplRF230P.nc
Description: Cdf file

/*
 * Copyright (c) 2007, Vanderbilt University
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice, the following
 * two paragraphs and the author appear in all copies of this software.
 * 
 * IN NO EVENT SHALL THE VANDERBILT UNIVERSITY BE LIABLE TO ANY PARTY FOR
 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE VANDERBILT
 * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * THE VANDERBILT UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE VANDERBILT UNIVERSITY HAS NO OBLIGATION TO
 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 *
 * Author: Miklos Maroti
 */

#ifndef __RADIOCONFIG_H__
#define __RADIOCONFIG_H__

#include <MicaTimer.h>
#include <RF230DriverLayer.h>
#include <util/crc16.h>

enum
{
	/**
	 * This is the value of the TRX_CTRL_0 register
	 * which configures the output pin currents and the CLKM clock
	 */
	RF230_TRX_CTRL_0_VALUE = 0,

	/**
	 * This is the default value of the CCA_MODE field in the PHY_CC_CCA register
	 * which is used to configure the default mode of the clear channel assesment
	 */
	RF230_CCA_MODE_VALUE = RF230_CCA_MODE_3,

	/**
	 * This is the value of the CCA_THRES register that controls the
	 * energy levels used for clear channel assesment
	 */
	RF230_CCA_THRES_VALUE = 0xC7,
};

/* This is the default value of the TX_PWR field of the PHY_TX_PWR register. */
#ifndef RF230_DEF_RFPOWER
#define RF230_DEF_RFPOWER	0
#endif

/* This is the default value of the CHANNEL field of the PHY_CC_CCA register. */
#ifndef RF230_DEF_CHANNEL
#define RF230_DEF_CHANNEL	11
#endif

/* The number of microseconds a sending MESHBEAN mote will wait for an acknowledgement */
#ifndef SOFTWAREACK_TIMEOUT
#define SOFTWAREACK_TIMEOUT	1000
#endif

/*
 * This is the command used to calculate the CRC for the RF230 chip. 
 * TODO: Check why the default crcByte implementation is in a different endianness
 */
inline uint16_t RF230_CRCBYTE_COMMAND(uint16_t crc, uint8_t data)
{
	return _crc_ccitt_update(crc, data);
}

/**
 * This is the timer type of the radio alarm interface
 */
typedef TThree TRadio;
typedef uint16_t tradio_size;

/**
 * The number of radio alarm ticks per one microsecond 
 */
#define RADIO_ALARM_MICROSEC	1L

/**
 * The base two logarithm of the number of radio alarm ticks per one millisecond
 */
#define RADIO_ALARM_MILLI_EXP	10

#endif//__RADIOCONFIG_H__
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to