This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Taiyo Yuden EYAGJNZXX - Softdevice Flashing

I've experienced some struggles programming for Taiyo Yuden's EYAGJNZXX board. According to the user manual provided its chip is nrf51822 (which supposedly works with s210 softdevice). However, I was able to run one of Nordic's sample ADC projects with uVision's device drop down menu showing "nrf51422_xxac_s130".

Although I was able to send data over BLE and read it in one of our Android devices using the nRF Master Control app I have not been able to use Termine to read any logging data. After such hurdles I though that maybe the softdevice neede some configuration. Based on the initial understanding (as seen by uVision) I downloaded Nordic's s130 softdevice (s130-SD version1.0 and s130-23-v2 version 2.0) and did the following steps

  1. Using nRFGO Studio I flashed the 2.0 version of the hex file. Rebuilding my sample project and loading to the board resulted in BLE transmission not showing any data on nRF Master Control app.

  2. I proceeded to install version 1.0 hex file and now after rebuilding the project flashing the program into the board results in a failure.

Taiyo Yuden's CD included in the board's box only has PDFs with some board layout description and very simple/lacking user's guide with no softdevice flash (hex) files. Is there no way to revert this board back to its original programming? I haven't found any other softdevice image (hex file) that restores the board to where I at least can re-flash my sample code.

This other question makes it seem that the correct softdevice for my Taiyo Yuden board is s210 (assuming my board is nrf51422 as shown in uVision). Yet, since Taiyo Yuden's included manual only mentions nrf51822 I'm confused as to 1) did I damange the board by flashing the wrong softdevice 2) what is the correct softdevice s210 (if its 422) or s130 (422 or 822).

I'll appreciate some feedback.

Update:

After updating my RAM/ROM settings, as specified in the linked thread of the answer below, I can load the program again into my board. However, the device is not doing BLE advertising since the board is not showing up as a device in either nRF Master Control or nRF Toobox Android apps. No changes were made to the code before/after installing the various softdevices version.

  • FormerMember
    0 FormerMember

    The last questions first:

    The nRF51422 can use all softdevices, the nRF51822 can use all softdevices except the ones with the ANT protocol. If the chip on your module is the nRF51822, you cannot run ANT on it, and you will not be able to program S210 and S310. If you try to flash a softdevice that doesn't work on your chip, your chip will not be damaged.

    The latest versions of the SDK, SDK 10 and SDK 11.0-alpha, should both be used with S130 v1.0.0. When you say "flashing the program into the board results in a failure", do you mean that the device never enters the main( )? If that is the case, please verify that the Keil settings for ROM/RAM are correct. This tread shows the correct settings.

  • I updated my settings as discussed in the linked thread. It helped in allowing me to load the program into the board. Running through the debugger I can see the main loop getting executed. However, BLE advertising doesn't seem to be working as the board is not showing up as a BLE device in Nordic's nRF Master Control or nRF Toolbox Android apps. I didn't not change the code in my project (just installed different softdevices) so not sure what could be the source of the problem. Any other suggestions?

  • FormerMember
    0 FormerMember in reply to FormerMember

    Does your board have an external 32 kHz crystal? If your board doesn't have an external 32 kHz crystal, you will have to use the internal RC oscillator. You can change the low frequency clock source in SOFTDEVICE_HANLDER_INIT(..) to the following:

    SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION, NULL);

  • We do not have an external clock connected to the board; just using the one provided by the board. We don't have any SOFTDEVICE_HANDLER_INIT() method in our code. To reiterate, our code was working fine before I attempted to load the S130-SD 1.0.0 and S130-SD-v2 2.0 softdevice hex files through the NRFGo application so I would imagine the issue is with the softdevice and not with the code itself.

  • FormerMember
    0 FormerMember in reply to FormerMember

    If you run an example that uses the softdevice, i.e. a BLE example, SOFTDEVICE_HANLDER_INIT(..) has to be called. In our examples is it being called in ble_stack_init(..).

Related