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

Reply via email to