Hi All,
I have used openembedded for flashing images on to the
imote2. Openembedded uses the linux zigbee kernel. Imote2 is a sensor board
with cc2420 radio chip. I have written a transmit and receive program using
header files
from the user space applications provided in the linux-zigbee project. I
am able to transmit and receive data.
I have used one imote as the transmitter. The transmit program works fine with
the data being transmitted at regular intervals.
The
problem is with the receiving. It works fine for a few duration but due
to some reason,there is an overflow and the data is no more received.
This happens when the receiver receives data from another source and not
from the node (imote) that I am using.
I guess its due to
interference from other wireless devices. Have anyone of you faced this
problem. Can anyone offer any suggestions for this problem?
Also I am trying to understand the lower layers and its working.
The debug message looks like this:
root@imote2:~# dmesg
[ 1189.220754] parse_frame_start(): dst SHORT address 8001
[ 1189.228991] parse_frame_start(): got src non-NONE address
[ 1189.236880] parse_frame_start(): src IEEE802154_ADDR_SHORT
[ 1189.242466] ieee802154_wpans_rx() frame 1
[ 1189.251480] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 1189.258940] net wpan0: ACK requested, however AACK not supported.
[ 1189.265134] got frame, type 804, dev c1e67800
[ 1189.269504] ieee802154_rcv 33 30 35 30 30 0a
30500.
[ 1199.164224] cc2420 spi3.0: fifop interrupt received
[ 1199.170253] ieee802154_subif_rx()
[ 1199.178503] cc2420 spi3.0: RXFIFO: 0 17 68
[ 1199.185445] parse_frame_start: 8861 dsnbe
[ 1199.189527] parse_frame_start(): ACKNOWLEDGE required
[ 1199.200026] cc2420 spi3.0: sfd interrupt received
[ 1199.207219] parse_frame_start(): src IEEE802154_FC_INTRA_PAN
[ 1199.212974] parse_frame_start(): src PAN address 0777
[ 1199.223032] parse_frame_start(): dst PAN address 0777
[ 1199.230570] parse_frame_start(): dst SHORT address 8001
[ 1199.238817] parse_frame_start(): got src non-NONE address
[ 1199.246705] parse_frame_start(): src IEEE802154_ADDR_SHORT
[ 1199.252290] ieee802154_wpans_rx() frame 1
[ 1199.261310] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 1199.268762] net wpan0: ACK requested, however AACK not supported.
[ 1199.274964] got frame, type 804, dev c1e67800
[ 1199.279339] ieee802154_rcv 33 30 35 30 30 0a
30500.
[ 1239.204127] cc2420 spi3.0: fifop interrupt received
[ 1302.889393] cc2420 spi3.0: fifop interrupt received
[ 1302.898177] ieee802154_subif_rx()
[ 1302.901623] parse_frame_start: da13 dsna4
[ 1302.909981] cc2420 spi3.0: RXFIFO: 0 84 1f
[ 1302.917697] cc2420 spi3.0: sfd interrupt received
[ 1302.922548] parse_frame_start(): dst PAN address f906
[ 1302.930458] parse_frame_start(): dst SHORT address 5216
[ 1302.939484] parse_frame_start(): got src non-NONE address
[ 1302.947382] parse_frame_start(): src IEEE802154_FC_INTRA_PAN
[ 1302.956095] parse_frame_start(): src hardware addr
[ 1302.960988] ieee802154_wpans_rx() frame 3
[ 1302.967850] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 1302.975336] Command 56 on device wpan0
[ 1302.979074] Frame type is not supported yet
[ 1470.533561] cc2420 spi3.0: fifop interrupt received
[ 1470.539622] ieee802154_subif_rx()
[ 1470.547845] cc2420 spi3.0: RXFIFO: 0 69 1b
[ 1470.554382] parse_frame_start: 6622 dsn52
[ 1470.558468] parse_frame_start(): ACKNOWLEDGE required
[ 1470.569095] cc2420 spi3.0: sfd interrupt received
[ 1470.576289] ieee802154_wpans_rx(): Got invalid frame
[ 1509.673935] cc2420 spi3.0: fifop interrupt received
[ 1509.679996] ieee802154_subif_rx()
[ 1509.688186] cc2420 spi3.0: RXFIFO: 0 67 1b
[ 1509.694729] parse_frame_start: 496e dsn1d
[ 1509.698821] parse_frame_start(): ACKNOWLEDGE required
[ 1509.709436] cc2420 spi3.0: sfd interrupt received
[ 1509.716604] security support is not implemented
[ 1509.721250] ieee802154_wpans_rx(): Got invalid frame
[ 1603.652760] cc2420 spi3.0: fifop interrupt received
[ 1603.658822] ieee802154_subif_rx()
[ 1603.667041] cc2420 spi3.0: RXFIFO: 0 164 0
[ 1603.671701] parse_frame_start: 8f3c dsn4f
[ 1603.679023] cc2420 spi3.0: sfd interrupt received
[ 1603.686660] parse_frame_start(): ACKNOWLEDGE required
[ 1603.691807] security support is not implemented
[ 1603.699195] ieee802154_wpans_rx(): Got invalid frame
[ 1799.274796] cc2420 spi3.0: fifop interrupt received
[ 1799.280825] ieee802154_subif_rx()
[ 1799.289063] cc2420 spi3.0: RXFIFO: 0 51 24
[ 1799.295603] parse_frame_start: ebf5 dsnca
[ 1799.299689] parse_frame_start(): ACKNOWLEDGE required
[ 1799.310314] cc2420 spi3.0: sfd interrupt received
[ 1799.317517] parse_frame_start(): src IEEE802154_FC_INTRA_PAN
[ 1799.326252] parse_frame_start(): src PAN address 2b4e
[ 1799.333771] parse_frame_start(): dst PAN address 2b4e
[ 1799.338898] parse_frame_start(): dst SHORT address 3dc4
[ 1799.349073] parse_frame_start(): got src non-NONE address
[ 1799.356960] parse_frame_start(): src hardware addr
[ 1799.364807] ieee802154_wpans_rx() frame 5
[ 1799.368933] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 1799.376280] ieee802154: Bad frame received (type = 5)
[ 2004.991461] cc2420 spi3.0: fifop interrupt received
[ 2005.000206] ieee802154_subif_rx()
[ 2005.006287] cc2420 spi3.0: RXFIFO: 0 169 2a
[ 2005.011019] parse_frame_start: 5214 dsn46
[ 2005.018352] cc2420 spi3.0: sfd interrupt received
[ 2005.025979] parse_frame_start(): dst addr_type is NONE
[ 2005.031197] parse_frame_start(): got src non-NONE address
[ 2005.039481] parse_frame_start(): src IEEE802154_FC_INTRA_PAN
[ 2005.048200] parse_frame_start(): src hardware addr
[ 2005.055479] ieee802154_wpans_rx() frame 4
[ 2005.059600] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 2005.066962] ieee802154: Bad frame received (type = 4)
[ 2081.833363] cc2420 spi3.0: fifop interrupt received
[ 2081.839417] ieee802154_subif_rx()
[ 2081.847724] cc2420 spi3.0: RXFIFO: 0 17 6b
[ 2081.854268] parse_frame_start: 8861 dsnc5
[ 2081.858355] parse_frame_start(): ACKNOWLEDGE required
[ 2081.869080] cc2420 spi3.0: sfd interrupt received
[ 2081.876249] ------------[ cut here ]------------
[ 2081.881115] WARNING: at kernel/irq/manage.c:274 enable_irq+0x4c/0x74()
[ 2081.887621] Unbalanced enable for IRQ 112
[ 2081.891611] Modules linked in: af_802154 cc2420 mac802154 ieee802154
crc_ccitt ipv6 lm75
[ 2081.900007] [<c002c750>] (unwind_backtrace+0x0/0xe0) from [<c003e29c>]
(warn_slowpath_common+0x48/0x60)
[ 2081.909394] [<c003e29c>] (warn_slowpath_common+0x48/0x60) from [<c003e2ec>]
(warn_slowpath_fmt+0x24/0x30)
[ 2081.918941] [<c003e2ec>] (warn_slowpath_fmt+0x24/0x30) from [<c007193c>]
(enable_irq+0x4c/0x74)
[ 2081.927685] [<c007193c>] (enable_irq+0x4c/0x74) from [<bf07ba24>]
(cc2420_sfd_irqwork+0x90/0xa4 [cc2420])
[ 2081.937293] [<bf07ba24>] (cc2420_sfd_irqwork+0x90/0xa4 [cc2420]) from
[<c004fb54>] (worker_thread+0x1d4/0x2ec)
[ 2081.947315] [<c004fb54>] (worker_thread+0x1d4/0x2ec) from [<c00531fc>]
(kthread+0x78/0x80)
[ 2081.955567] [<c00531fc>] (kthread+0x78/0x80) from [<c0027fec>]
(kernel_thread_exit+0x0/0x8)
[ 2081.963888] ---[ end trace 3582d4bbbd9023b5 ]---
[ 2082.083807] cc2420 spi3.0: fifop interrupt received
[ 2082.088777] cc2420 spi3.0: rxfifo overflow
[ 2082.098587] cc2420 spi3.0: sfd interrupt received
[ 2082.109270] cc2420 spi3.0: fifop interrupt received
[ 2082.118208] ieee802154_subif_rx()
[ 2082.124290] cc2420 spi3.0: RXFIFO: 0 17 6b
[ 2082.128946] parse_frame_start: 8861 dsnff
[ 2082.136366] cc2420 spi3.0: sfd interrupt received
[ 2082.144022] parse_frame_start(): ACKNOWLEDGE required
[ 2082.149180] parse_frame_start(): src IEEE802154_FC_INTRA_PAN
[ 2082.157946] cc2420 spi3.0: fifop interrupt received
[ 2082.166833] cc2420 spi3.0: RXFIFO: 0 17 6c
[ 2082.173351] parse_frame_start(): src PAN address 0777
[ 2082.178474] parse_frame_start(): dst PAN address 0777
[ 2082.189207] cc2420 spi3.0: sfd interrupt received
[ 2082.196689] cc2420 spi3.0: fifop interrupt received
[ 2082.204528] parse_frame_start(): dst SHORT address 8001
[ 2082.209816] parse_frame_start(): got src non-NONE address
[ 2082.219068] cc2420 spi3.0: RXFIFO: 0 17 6a
[ 2082.226787] cc2420 spi3.0: sfd interrupt received
[ 2082.233959] parse_frame_start(): src IEEE802154_ADDR_SHORT
[ 2082.239543] ieee802154_wpans_rx() frame 1
[ 2082.248774] cc2420 spi3.0: fifop interrupt received
[ 2082.256093] cc2420 spi3.0: rxfifo overflow
[ 2082.263597] ieee802154_subif_frame Getting packet via slave interface wpan0
[ 2082.271058] net wpan0: ACK requested, however AACK not supported.
[ 2082.277208] got frame, type 804, dev c1e67800
[ 2082.281624] ieee802154_rcv 33 30 35 30 30 0a
30500.
[ 2082.298571] cc2420 spi3.0: sfd interrupt received
[ 2089.842309] cc2420 spi3.0: sfd interrupt received
[ 2099.860344] cc2420 spi3.0: sfd interrupt received
[ 2109.875439] cc2420 spi3.0: sfd interrupt received
[ 2119.887820] cc2420 spi3.0: sfd interrupt received
[ 2129.895835] cc2420 spi3.0: sfd interrupt received
[ 2139.904004] cc2420 spi3.0: sfd interrupt received
[ 2149.912152] cc2420 spi3.0: sfd interrupt received
[ 2159.928636] cc2420 spi3.0: sfd interrupt received
root@imote2:~#
As
seen from the debug message, I am using a source address of 0001,
destination address of 8001 and PAN adress 777. When the radio chip
detects transmission from other PAN addresses, there is an RXFIFO
overflow and the reception halts.
Awaiting your reply,
Bala Krishna S
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel