Skip to main content

DA14531 TINY Module - Confused !

DA14531 SmartBond TINY Module

7 months ago

Posted by Shashialabur 65 points 6 replies
0 upvotes

Hi,

I received my DA14531 Tiny Modules, made my own FT230XS based USB-Serial board, wired up the module and after a fair amount of trial and error, I could program the module !

I am using the CODELESS examples (codeless_531_datapump.bin, set_two_standalone.bin, standalone.bin).

With Module#1, I could download into SysRAM or into SPI Flash, the module was 'Discovered' in the Smart Console App, I could connect to it and I could get the responses to the AT command, like getting board address etc....but, no matter what I tried, I could not put the module into the Binary mode and send data directly between the module and the App. If I typed any AT command in the 'Terminal' window in "SmartSnippets Toolbox", the Module would immediately disconnect in the App. Somewhere during my trials, I think I used the OTP Programmer option and now I am unable to reprogram this module - though it is still running the last program that got burned into its OTP memory, is consistently discoverable in the Smart Console App and responds to AT commands ( I don't remember if I programmed the standalone.bin or datapump.bin into its OTP memory.), but cannot get into "Binary" mode.

With Module#2, I can download programs successfully into SysRAM or SPI Flash, module is 'Discovered' in the App but refuses to connect !

If I launch the codeless_host terminal, I do not get any responses from the Module.

My questions :

1. What is the difference between the datapump, standalone, set-two-standalone bin files ?

2. The examples shown in the webpage "http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/smart…" for the SmartConsole App, show a Command Mode / Binary Mode selection being available (Section 8.4, Figure 50 and Section 8.4.2, Figure 57), but I do not see these options in the App on my Android phone (App Version is 3.530.4).

3. When should I use the Smart Console App and when the DSPS App ?

4. Why is the Module#2 refusing to get connected ?

5. I am using the P0_5 as the single wire UART TX/RX pin for downloading the programs. Does the codeless_host terminal need separate RX/TX pins on the UART or the single pin P0_5 is ok for this ?

I will experiment some more ....but, a little confused at this point !

All I want to do is send some data via the UART of the Module and this should be received in the APP.

7 months ago

PM_Dialog

Hi Shashialaburm,

Thanks for your question online and for you interest in our TINY module solution.

Regarding the Module #1, you mentioned that :

“ Somewhere during my trials, I think I used the OTP Programmer option and now I am unable to reprogram this module - though it is still running the last program that got burned into its OTP memory, is consistently discoverable in the Smart Console App and responds to AT commands ( I don't remember if I programmed the standalone.bin or datapump.bin into its OTP memory.), but cannot get into "Binary" mode.”

A.      So, the module is booting from OTP? Did you program the application flags in the OTP Header? Keep in mind that OTP stands for One Time Programmable, thus you can’t erase and re-write the OTP multiple times.

B.      Did you use the pre-built binaries from the Codeless directory, or did you use the Keil IDE to build the project?

C.      The “Binary mode” is supported only in the datapump project. So, if you sent the AT+BINREQ via UART, what is the response? If the respond is OK, then the module is running the datapump project.

Regarding the Module #2 :

1.       Please check section 9.1 in CodeLess user manual (UM-B-140). The DA14531 datapump configuration which is optimized for making binary data transfers supports 30 commands, including all binary data commands, So, the difference in the AT commands that the different projects support – see Table 8. You can also verify it in the CodeLess application code.

2.       Make sure that the module is running the datapump application – just checked this in my mobile phone and I can see this button.

3.       CodeLess and DSPS are two different projects. SmartConsole should be used in the case of CodeLess. If the module is running the DSPS firmware, then you should use the DSPS application. Here you can find all the DSPS documentation: https://www.dialog-semiconductor.com/products/dialog-serial-port-service-dsps#tab-field_tab_content_resources

4.       Can you please try to connect with a BLE generic application (such as BLE Scanner)? When you are trying to connect from the SmartConsole App, what is the behavior? Can you detect the device over the air?

5.       The module can be programmed either via JTAG or via single-wire UART on P05. The default UART pins are shown in Figure 10 in the user guide. After programming via P05 is finished, the P05 can be used for UART.

Thanks, PM_Dialog

7 months ago

Shashialabur 65 points

I am working with my Module #2.

I am using P0_5 as a single pin UART during programming and I can download to SysRAM or SPI Flash successfully.

I am using the pre-built binaries from the Codeless directory only.

I have a jumper selection to use P0_5 (J14) as a single pin UART while programming and then switch over to the 2 pin UART with P0_2 (J10) to receive data and P0_5  (J14) to transmit data out.

If I download the "datapump.bin' file to SPI Flash, the Smart Console as well as the Generic BLE Scanner do not detect this Module.

If I download the "datapump.bin" to SysRAM, then the Smart Console and the BLE Scanner detect this module - but refuse to connect.

The jumper selection for the single pin UART or 2 pin UART makes no difference in this case.

There is no response to any AT commands - the Terminal stops responding when I send any AT command.

 

The Module#1 was very consistent at least - I could always connect and even get responses to the AT commands !

So, is this a defective Module or am I doing something wrong ?

Thanks !

7 months ago

Shashialabur 65 points

I removed Module#2 and wired #1 back and it is detected consistently in the Smart Console App, responds to the AT commands.

But, if I try the AT+PRINT=<text>, it immediately disconnects and I have to cycle the power to the board for it to be discovered and connected again (right now it is powered by the FT230XS based USB to serial board).

AT+BINREQ returns "Invalid command" response.

I am assuming I burned the "standalone.bin" into it ?

I didn't do any changes to the application flags in the OTP programming.....in fact, I saw it only now after seeing your response !

The "Terminal" in the Smart Snippets Toolbox does not give me any response - why ? How do I use this terminal ?

7 months ago

PM_Dialog

Hi Shashialabur,

I would suggest to use the Keil project and run the code in debug mode so you can check what might be wrong.

Probably the module resets upon connection. Do you have any of our DKs? If yes, you can use them for the JTAG interface – please see this tutorial :

http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/debug_probe.html

You can also use the Keil project to build any of the CodeLess projects.

I am not able to replicate this with the DA145xx_CODELESS\6.380.12.6\binaries\codeless_531_datapump.hex.

Regarding the module #1, since the response on when sending the AT+BINREQ returns "Invalid command", this means that the module is running the standalone.bin.

>>>I didn't do any changes to the application flags in the OTP programming.....in fact, I saw it only now after seeing your response !

Can you please read the OTP contents from the SmartSnippets Toolbox and share a screenshot?

>>>The "Terminal" in the Smart Snippets Toolbox does not give me any response - why ? How do I use this terminal ?

Check if you are using the correct UART configuration from the “Board Setup”.

https://s3.eu-west-2.amazonaws.com/lpccs-docs.dialog-semiconductor.com/UM-B-083/tools/Board_Setup.html

Otherwise you can use any other Serial Terminal – see this section :

http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/howToUse.html

Thanks, PM_Dialog

7 months ago

Shashialabur 65 points

Hi,

I do not have the PRO or the USB DK and hence I am unable to debug the problems !

Anyway, now I have made all my 5 modules into removable daughter boards which can be plugged into my prototype board one by one for testing.

My set up is : FT230XS based USB to Serial module, also supplies power to the DA14531 Modules for testing.

Module# 1 - OTP programmed, probably the Standalone.bin is programmed, hence responds with an ERROR to the AT+BINREQ command

Modules #2, #3, #4 : All of them get programmed successfully every time when I download the "datapump.bin" to SysRAM or SPI Flash, are discovered in the SmartConsole App, but 'Disconnect' when I try to connect.

Module #5 gets connected and I can run most of the commands. I can see the orange circle with the Command Mode option, AT+BINREQ returns OK.

Now, how do I send random data between the Module and the SmartConsole App ? (the AT+Print=Hello command returns an Invalid command error)

I am using the single pin UART on P0_5 for programming. For this random data exchange, do I still use the single pin UART configuration or separate TX/RX pins ?

If I use the Terminal or with the Terminal Scripting or with the Codeless Host application to send any commands, I don't get any response.

The Smart Console "Peripherals" view shows P0_5 & 6 as RX & TX, but as per the V2.3 Datasheet for the Module, Figure 11 on page 16 shows  P0_2 as TX and P0_5 as RX (for the Module)

How do I send random text or hex characters from the Module to the App ?

 

7 months ago

PM_Dialog

Hi Shashialabur,

Modules #2, #3, #4 :

  1. Program the SPI flash with the datapump project.
  2. Open a Serial Terminal ( such as Teraterm). See the following section for the UART configuration : http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/howToUse.html#hardware-setup
  3. Try to send the “AT” command. Does the CodeLess respond with OK?
  4. Then, try to connect with a mobile app. You should see the following output in the Serial Terminal upon connection.

+AWAKE

+CONNECTED

 

  1. When the module is disconnected, you should see : +DISCONNECTED

Please keep in mind that the CodeLess is using the following UART scheme by default :

#define UARTx_TX_GPIO_PORT  GPIO_PORT_0

#define UARTx_TX_GPIO_PIN   GPIO_PIN_6

 

#define UARTx_RX_GPIO_PORT  GPIO_PORT_0

#define UARTx_RX_GPIO_PIN   GPIO_PIN_5

 

#define GPIO_UARTx_RTS_PORT  GPIO_PORT_0

#define GPIO_UARTx_RTS_PIN   GPIO_PIN_7

 

#define GPIO_UARTx_CTS_PORT  GPIO_PORT_0

#define GPIO_UARTx_CTS_PIN   GPIO_PIN_8

 

Please also see Figure 10 DA145xx 4-wire UART connection overview from the user guide and make sure that you have the correct setup.

 

Module #5

  1. Open a serial Terminal with the correct UART configuration.
  2. Connect with the SmartConsole App.
  3. Set it up into Binary mode from the SmartConsole App.
  4. In the Serial terminal, you should see : +BINREQ
  5. After doing steps 3 and 4, you should send the AT+BINREQACK from the terminal and the CodeLess should respond with OK. See this section for more info : http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/binar…
  6. Then you can write data from the Serial Terminal to the SmartConsole App and vice versa.

Thanks, PM_Dialog