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

Why not defined I2S MCKFREQ_32MDIV6-2 on nrfx for nrf52840?

nrfx/nrf52840_bitfields.h not define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6-2.

But nrf52_bitfields.h is defined this.

nrf52840's datasheet is written,MCKFREQ 32MDIV2-32MDIV125.

Why?

Parents
  • Hi.

    What is I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6-2? Where did you find it?

    I cant fint 32MDIV6-2 in the datasheet.

    Best regards,

    Andreas

  • Sorry,
    Additional follow.

    NordicSemiconductor/nrfx repository Tag.v1.6.2

    nrfx/mdk/nrf52_bitfields.h
    line:2442
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV11 (0x16000000UL) /*!< 32 MHz / 11 = 2.9090909 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV10 (0x18000000UL) /*!< 32 MHz / 10 = 3.2 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV8 (0x20000000UL) /*!< 32 MHz / 8 = 4.0 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6 (0x28000000UL) /*!< 32 MHz / 6 = 5.3333333 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV5 (0x30000000UL) /*!< 32 MHz / 5 = 6.4 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV4 (0x40000000UL) /*!< 32 MHz / 4 = 8.0 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV3 (0x50000000UL) /*!< 32 MHz / 3 = 10.6666667 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV2 (0x80000000UL) /*!< 32 MHz / 2 = 16.0 MHz */

    nrfx/mdk/nrf52840_bitfields.h
    line:2306
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV11 (0x16000000UL) /*!< 32 MHz / 11 = 2.9090909 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV10 (0x18000000UL) /*!< 32 MHz / 10 = 3.2 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV8 (0x20000000UL) /*!< 32 MHz / 8 = 4.0 MHz */

    Why not define in nrf52840_bitfields.h follows?
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV5
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV4
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV3
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV2

Reply
  • Sorry,
    Additional follow.

    NordicSemiconductor/nrfx repository Tag.v1.6.2

    nrfx/mdk/nrf52_bitfields.h
    line:2442
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV11 (0x16000000UL) /*!< 32 MHz / 11 = 2.9090909 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV10 (0x18000000UL) /*!< 32 MHz / 10 = 3.2 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV8 (0x20000000UL) /*!< 32 MHz / 8 = 4.0 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6 (0x28000000UL) /*!< 32 MHz / 6 = 5.3333333 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV5 (0x30000000UL) /*!< 32 MHz / 5 = 6.4 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV4 (0x40000000UL) /*!< 32 MHz / 4 = 8.0 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV3 (0x50000000UL) /*!< 32 MHz / 3 = 10.6666667 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV2 (0x80000000UL) /*!< 32 MHz / 2 = 16.0 MHz */

    nrfx/mdk/nrf52840_bitfields.h
    line:2306
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV11 (0x16000000UL) /*!< 32 MHz / 11 = 2.9090909 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV10 (0x18000000UL) /*!< 32 MHz / 10 = 3.2 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV8 (0x20000000UL) /*!< 32 MHz / 8 = 4.0 MHz */

    Why not define in nrf52840_bitfields.h follows?
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV5
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV4
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV3
    I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV2

Children
  • Hi.

    I understand your question now, and I have found an answer as well :-)

    The defines:

    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV6 (0x28000000UL) /*!< 32 MHz / 6 = 5.3333333 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV5 (0x30000000UL) /*!< 32 MHz / 5 = 6.4 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV4 (0x40000000UL) /*!< 32 MHz / 4 = 8.0 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV3 (0x50000000UL) /*!< 32 MHz / 3 = 10.6666667 MHz */
    #define I2S_CONFIG_MCKFREQ_MCKFREQ_32MDIV2 (0x80000000UL) /*!< 32 MHz / 2 = 16.0 MHz */

    Are out of spec, as you can read on this GitHub link.

    The documentation will soon be updated, and they will also be removed from the documentation. I have reported to our development team that these 5 defines still exist in nrfx/mdk/nrf52_bitfields.h and they will be removed.

    Thanks for noticing this.

    Best regards,

    Andreas

Related