We have a new project using QN9021. We bought QN9020 miniDK as initial step. We successfully test the RF of QN9020 miniDK using this suggestion by one of your engineers "To perform RF PHY tests for the QN9020, you can use the "controller.bin" file in the QN9020's SDK. This binary will set the device in UART HCI at 9600, N, 8, 1."
But not the QN9021. Can you advice us on our problem?
We wanted to know if NXP have datasheets for QN9021 detailing DUT connection (HCI or 2 Wire), software use in testing DUTs Power (dBm), frequency offsets (khz) and sensitivity. We are trying to send units for CE and FCC.
Hi Lucien, I hope you're doing well!
Depending on the hardware revision you're using, you might need to follow a procedure to migrate from an earlier version to a new one. If you're using version QN902x/E you'll have to perform this migration, and for the process, we provide the following guide.
We performed the test using the Test Tool 12 that our products are compatible with, after changing the required defines for our hardware revision and for the QN9021 DK, and enabling the correct lib file, the test ran successfully, after a reset. If you want to use UART1, you have to remap the pins in the SystemIOCfg function, as P20_UART1_RXD_PIN_CTRL and P21_UART1_TXD_PIN_CTRL, or you could just leave UART0 as the debug UART.
Could you please try following that?
Please let me know of your findings.
Thank you very much for your reply. Now we successfully perform the RF test of QN9021. Is there a way to change the output power of the chip? Is there a so-called "power table" to edit in NVDS Configurator? And also, How can we trim the crystal of QN9021? Is there a software or a tool to be used aside from the ble tester?
We will let you know if we encounter another problem. Thank you very much of your help.
The NVDS has no TX power value or table included in it. However, you could try setting the TX power by using the "rf_tx_power_level_set" function included in the qnrf.h library. This library should already be included in the controller_mode project, and it receives as a parameter an enumeration value (which is also described in the qnrf.h file).
The test tools we have available are the ones included in the QN902x SDK, and the Test Tool 12, both of which have tools for different test types.
What do you mean by crystal trimming?
Thank you for your reply. We will surely test today all about the TX power. By using "controller.bin", we have 0 dBm average Output Power measured by Rohde & Schwarz CBT32.
"What do you mean by crystal trimming?"
QN9021 Crystal Trimming Calibration by changing XCSEL on NVDS Configurator. Is there a tool or software that does automatic crystal trimming calibration by using BLE Tester such as R&S CBT32?
How to access NVDS Configurator data via "COMMAND LINE"? We plan to have automation for mass production (e.g. bluetooth address and crystal trim calibration - XCSEL)
What is the default transmit power when "rf_tx_power_level_set" function not set?
The QN902x SDK has a library which could be useful to read NVDS values, it's called "nvds.h", and it contains some functions to set and get values from NVDS, among other useful definitions.
There is a calibration process performed on chip initialization.
You could automatize the test by changing the frequency and ppm value of the chip and then performing a reset, after which, the program will initialize again and perform the calibrations with the new values considered. There are these functions to perform the frequency and ppm changes:
Maybe these could help you automate the test with your test device.
Please let me know if you need further information.
Thank you for the information you provided. By now, we are discussing the automation we will do. It may take sometime to do some experiment and test. We will inform you if we need more info.
By the way, may we know what is the default transmit power when "rf_tx_power_level_set" function not set?
The default TX Power value varies depending on the exmaple being used, but if you want to determine the default configuration, you could call the rf_tx_power_level_get() function included in qnrf.h library before changing it.
Please let me know if you have any further questions.