Avnet M14A2A Arduino integration

Solved
bob1123's picture
bob1123
Junior(0)

I recently purchased the AT&T starter kit to interface with an arduino. I'm building a field data collection device to deliver sensor data to M2X. I have found lots of information online detailing connecting an arduino to M2X with Eithernet shields and Wifi Shields, but none with this particular cell modem. How do I go about interfacing it with the arduino to the Avnet shield and using that to push data to M2X? Are there any libraries that make this process easier?

LightCollector's picture
LightCollector
Moderator(20)

Hi,  The shield is in an Arduino form factor but has electrically been wired to work with the K64F Freedom board.  You will have to decide how you want to control the 14A2A, the K64F is doing so using a serial UART. So you will have to look at the schematics for the 14A2A shield and your own host board and determine if you have a UART to use and then do some make shift re-wiring.

 

As far as software to control the 14A2A, the code is written in C++ and portions can be ported to any platform that can compile C++.  You will of course have to redo the portions of the source that use K64F specifics.

There is a platform independant, advanced and better control library under: https://developer.mbed.org/teams/Avnet/code/WncControllerLibrary/

 

Best Regards

jrecchio's picture
jrecchio
Junior(1)

Make sure not to connect the arduino directly to the 14A2A unless you're using a Due, as all other arduinos work on 5V logic. The 14A2A interfaces with 3.3V logic, so you'll need level translators in-between the arduino and 14A2A

LightCollector's picture
LightCollector
Moderator(20)

Jrecchio has a good point but it is possible for some 5V and 3.3V to logic levels to work at least one way together.  In order to wire this up: you will need to CAREFULLY study the data sheets for both board's logic level circuitry!  The level translators on the shield are TI devices: http://www.ti.com/product/TXS0108E  You can find the max voltages allowed in the datasheet, note only port B is able to handle higher voltages and needs to be current limited.  port B is wired to what you would wire up to to control the shield.  Going from 3.3v to 5v generally works, but going from 5v to 3.3v can bring trouble and may require additional circuitry to safely operate.

 

I haven't looked into this at great detail, the kit was designed to work with the K64F so officially I can't recommend this.  But I'm also not saying that it isn't possible, it actually is but you have to know what you're doing otherwise you could damage the boards and if you do, it wouldn't be a warrantied scenario.

 

Best Regards 

jrecchio's picture
jrecchio
Junior(1)

Level translators (txs0108e) separate 3.3V and 1.8V on the M14A2A. I suppose if you wanted to, you could bring in 5V instead of 3.3V on that node, because the B-ports on the txs0108e can handle up to 5.5V. However, the Humidity/Temperature sensor (HTS221) is also on that node, and it is only rated for 3.3V, so it will probably smoke if you try to put 5V on this rail.  

I believe that means the only possibility to connect to 5V microcontroller logic without additional level translators is if you are allowed to keep the VccB node at 3.3V for the onboard level translator, but bring all its signals for the B-ports in at a 5V scale.  I'm not sure if this is possible, so I think unless you disconnect the HTS221 you have to have a 5V-3.3V level translator interface for this board

LightCollector's picture
LightCollector
Moderator(20)

Yes the level translators are what a host board talks to the M14A2A through in both directions.

 

To be safe, adding additional (proper level translating) circuitry on the 5v to 3.3V pins is the way to go.  For a non optimal solution and it depends on the current sourcing capabilities of the Arduino host board, it's output impedance and the input impedance of the translators and how much current they can sink; for low speed stuff proper resistors might be all that is needed if the resultant slew rate and ringing is acceptable.  Would not advise messing with the power rails on the shield!

 

Again however, it is your board to do what you like and experimenting is fun, well until you let the smoke out :-)

 

Best Regards

drnordstedt's picture
drnordstedt
Junior(1)

I ordered some of these a couple of months ago and haven't tried them out yet, but might be useful in your project. https://smile.amazon.com/XCSOURCE-Converter-Bi-Directional-Module-TE291/dp/B0148BLZGE/

 

LulaNord's picture
LulaNord
Junior(0)

Hi..as per my knowledge it is correct that the shield is in an Arduino form factor but has electrically been wired to work with the K64F Freedom board.  You will have to decide how you want to control the 14A2A, the K64F is doing so using a serial UART. So you will have to look at the schematics for the 14A2A shield and your own host board and determine if you have a UART to use and then do some make shift re-wiring.

bhirsch's picture
bhirsch
Junior(0)

Is it possible to connect to an arduino with the uart interface? Aside from voltage issues the m14a2a uses cts and rts.

Thanks

PeterF's picture
PeterF
Moderator(16)

Note: In the IMA3 (LTE-M) version of the M14A2A module firmware, the use of CTS/RTS hardware flow control can be enabled/disabled using the AT&K command.
AT&K0     // disables CTS/RTS flow control
AT&K3     // enables CTS/RTS flow control
AT&K?     // reports the current CTS/RTS setting

 

Using the modem data interface without hardware flow-control could compromise the modem's ability to send/receive lengthy blocks of data. For short IoT type messages however you should be ok.  

bhirsch's picture
bhirsch
Junior(0)

Hi,

Thanks!  That helps. What standard is the AT&K command from?