EHS8 ASC0 problem | Telit Cinterion IoT Developer Community
February 11, 2018 - 2:43am, 2477 views
Hi there,
Just building a new design with an EHS8 and I'm having issues with getting any communications to it. It is connected to a simple microcontroller, running at 1.8V (the EHS8 is at 4V). I apply power to the module and drive the transmit line high. I then see SYSLOADING and SYSSTART from the module (at 115K baud) and send it 'at' at 9600 baud for it to autobaud. However I get no response from the module at all. I've tries sending 'ATE1' to make sure echo is on but also had no reply.
I'm using Auto On (which is permanently tied to ground) and power ramps up to the module in well under 1ms (I note that for a permanently grounded auto-on power ***** to be ramped in less than 10ms according top the datasheet).
This is the second module I am trying and both are behaving the same way. Any ideas? They couldn't have been programmed to ignore the ASC0 lines could they?
And just for note, CTS0 and RTS0 are open. Schematic attached. Note that I've not added any or the sim hardware yet.
Hello,
ASC0 interface should always be available. However by default the power saving on serial interfaces is active. Please see AT^SPOW command in the AT Commands Specification. In this mode you should be using hardware flow control. Which also is active by default - please see AT\Q command.
If you see SYSLOADING and SYSSTART it seems that the module starts correctly. Please also remember that UART interface belongs to 1.8V domain while MCU's usually use 3.3V. So level shifters may be needed. Please see also the reference design document here: https://iot-developer.thalesgroup.com/documentation/example-schematic-eh...
Regards,
Bartłomiej
Hi there,
Thanks for that. I was under the impression that RTS0 was internally pulled down so I wouldn't need to use flow control?
You say that 'by default the power saving on serial interfaces is active'. So does this mean I can't send commands through ASC0 or I can? How do I 'wake' the ASC0 so I can send it commands (to stop it going into power saving modes)?
I will implement level shifting but at the moment I am just running the MCU at 1.8V to avoid any issues in communications.
Thanks
Mark
Hello,
RTS0 has an internal pull down resistor causing a low level signal, if the line is not used and open.
The default SPOW setting is:
^SPOW: 2, 1000, 3
where the parameter names are as follows: <mode>, <timeout>, <awake>.
Here's the description of sleep mode:
If SLEEP mode is enabled (<mode>=2), CTS0 and CTS1 are periodically activated for the time set with <awake> (in ms) enabling the ME to listen to paging messages from the base station. The AT interface is enabled during the active periods of CTS0/CTS1.
The inactive periods of CTS0/CTS1 (when power saving is effective) depend on the paging cycle of the base station and may vary between 0.47 - 2.12 seconds in GSM networks and 0.64 - 5.12 seconds in UMTS networks.
This means that the TE should provide an equivalent timeout for trying to access the AT command interface. SLEEP mode requires that CTS/RTS flow control be configured both on ME side (see AT\Q) and TE side.
The meaning of <timeout> value (in ms) for SLEEP mode (<mode>=2) is the time in milliseconds the ME remains awake after the last sent character.
To stop the power saving mode you need to send AT^SPOW=1,0,0 command.
The default baudrate setting is 115200. To enable autobauding you need to send AT+IPR=0 and reboot the module.
Best regards,
Bartłomiej
Hi Bartłomiej,
Success! I was unaware that the autobauding would need to be activated by a command at a default baud rate (seems to defeat the point of autobauding really?). So I am now running at 115200 on the transmit (which is tricky with an 8 bit uP!) and I can now communicate with the device. I know ***** have moved on but it would have been nice to have the default baud come up as something a bit slower (9600?) for the lower spec systems and then the high spec systems could have made it run faster.
But at least I don't need to redesign the board!
Thanks for all your help,
Mark
Hello,
Great that it finally working!
I might have checked earlier that autobauding is not the default setting of the factory fresh module.
As far as I remember 115200 was always (or at least for a long time) the most default baudrate value for the Gemalto modules.
Best regards,
Bartłomiej
Aha, I see. I’ve only used the BGS2 before which defaults to 1200. All good now though.
Cheers!
Mark