Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Xbee I/O line passing

Status
Not open for further replies.

o_0

Member level 3
Member level 3
Joined
Sep 30, 2009
Messages
58
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,288
Activity points
1,873
Hi,

I have a pair of Xbees that work when sending from one terminal to another, but I'm trying to do I/O line passing on a breadboard. I only need 4 i/o pairs but I might as well get all of them to work. I'm doing digital inputs on the remote unit by setting all the DIO values to 3, and digital outputs on the coordinator by setting all the DIO values to 4. Except DIO5 on both of them was left at 1, for the association indicator.

For now, all I want is to see the DIO output LEDs change when the DIO inputs change. What I actually see is on the coordinator (receiver), none of the output LEDs are lit (regardless of what the inputs are) but the association light is solid for about 5 seconds after powerup and then starts blinking (that means it's associated) but if I try to put an LED on the remote (transmitter)'s association pin, it does not light. After I try this, ATAI has the value 2 for the remote xbee, but 0 for the coordinator. (After serial communication, both are 0.)
I'm following this Digi webpage:
Knowledge Base Article - XBee 802.15.4 Digital Input/Output Line Passing - Support - Digi International

They give the following example:

Code:
Remote

DL = 0x1234
MY = 0x5678
D3 = 0x3
D4 = 0x3
IC = 0x18
IT = 0x2
IR = 0x32

Base
   DL = 0x5678
   MY = 0x1234
   D3 = 0x4
   D4 = 0x4
   T3 = 0x64
   T4 = 0x64
   IA = 0x5678 (or FFFF)

In addition to following this example, I adjusted the following parameters:

Remote (transmitter):

*A1-End Device Association was put at 7 (0b0111), so it should be able to talk to any xbee, the addresses and stuff shouldn't matter.


Coordinator (receiver):

*CE-Coordinator Enable is 1

*A2-Coordinator Association is set to 7 (0b111) again so it could talk to any xbee.

Both of them:


*R0-Packetization Timeout was set to 0, I don't want packets, I just want output LED to change when input LED does.

*As mentioned before, not just D3 and D4 were set to 3 for the remote and 4 for the coordinator, also D0, D1, D2, D3, D4, D6, and D7 were set that way. D5 is 1 for both of them, so I can see the association indicator.

*IT-Samples before TX is 1

*IC-DIO Change Detect is set to FF. I want to monitor all pins for changes.

*IA-I/O Input Address is set to FFFF FFFF FFFF FFFF (with no spaces.) I definitely wouldn't want packets changing outputs.

*Also for both of them, NI-Node Identifier has the value ROUTER, and IU-I/O Output Enable is 0 because I don't want the output coming out the UART, I want it coming from DIO0, DIO1, etc.

---------- Post added at 19:42 ---------- Previous post was at 19:38 ----------

Or maybe the problem is the connections I'm putting on the breadboard. I tested the breakout boards to make sure they were working. Here are my connections:

Vcc to +3.3V (note: right now I'm not using a regulator, just direct 3.3V)
(RESET)' high (though I've tried it both ways with no luck)
GND to ground
DIO1 through DIO7: (for the inputs) connected to either Vcc or GND, except for DIO5 which is unconnected except when I put an LED on it
(for the outputs) all have an LED and resistor to ground.

I can take pictures and/or video if requested.

I hope someone can help. Thanks in advance.

They're Series 1, and firmware 10E6.
 

Seems you forgot to set IU=0: have a look at page 15 on manual.
Hope this helps
 

Thanks for your response, but I don't want the data to come through the UART. I'm hoping the data will come through the corresponding pin on the other module.
From the webpage I linked:

There are two methods for reading the DO data as it comes into the XBee. By default , when the appropriate DI pin is toggled, the module will toggle the corresponding DO pin on the base module. The other method for reading the digital data is through the UART. To enable the module to output UART data simply set ATIU=1 on the base (this is the default setting).

I've also heard it suggested that I should enable the input pullups (PR) for pins that are not used, and disable them for pins that are being used. I'll keep playing with them.
 

Fact is, IU=1 is the default. If you DON'T want data thru UART (you want pin pairs instead) you have to set IU=0. I don't know if you tried this, I wasn't able to find this specific instruction in your settings
 

I did mention this setting in my original message:
and IU-I/O Output Enable is 0 because I don't want the output coming out the UART, I want it coming from DIO0, DIO1, etc.


I don't think I'm going to convince anyone, but here goes.
From page 15 of the manual:

The default setup is for outputs not to be updated, which results in the I/O data being sent out the UART (refer to the IU (Enable I/O Output) command).

So I refer to page 47:
AT Command: ATIU
Parameter Range:0 - 1
Parameter Configuration
0
Disabled -
Received I/O line data
packets will be NOT
sent out UART.
1
Enabled -
Received I/O line data
will be sent out UART
Default Parameter Value:1
Minimum Firmware Version Required: 1.xA0

But anyway, no sense going back and forth, I'll just have to play with them further. I see different configurations on some other sites, I just thought I'd go with the one actually from Digi first. Thanks again.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top