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

6 Mbps on SPI.

Hello. I'm working with the nrf52 with s132 loaded. There is a way to have a 6Mbps on the SPI ? I try the value 0x60000000 but this do not work. Thanks. Eric Provost.

Parents
  • Hi,

    Anything over 4 MHz will be greatly influenced by pad and trace capacitance, so I would highly recommend checking the rise and fall time of your signal. You can generate a 5.3 MHz (16M / 3) signal by setting FREQUENCY = 0x48000000;, but not a 6 MHz frequency.

    Cheers, Håkon

  • Hi Tim, The nRF51x22's SPIM is sourced by the 16M clock tree, as most other bus-peripherals, but we've seen that the physical aspects (trace length, capacitance etc) limits the speed to approx 4 MHz, as we have timing requirements to meet on the bus signals. The nRF52 has a bit more special setup wrt. clock sources. QSPI, PWM, and I2S are all sourced from a 32M clock source, while UART/SPIM/I2C/TIMER are sourced from 16M. You'll have to take into account that the peripheral running at F, can provide a maximum output of F/2. A timer running with 16M source will be able to generate a event every 8 MHz for instance.

    No, it's not possible to output the source frequency (16M), as setting '1' in the prescaler will actually be prescaler+1, which will be a divide by two. Cheers, Håkon

Reply
  • Hi Tim, The nRF51x22's SPIM is sourced by the 16M clock tree, as most other bus-peripherals, but we've seen that the physical aspects (trace length, capacitance etc) limits the speed to approx 4 MHz, as we have timing requirements to meet on the bus signals. The nRF52 has a bit more special setup wrt. clock sources. QSPI, PWM, and I2S are all sourced from a 32M clock source, while UART/SPIM/I2C/TIMER are sourced from 16M. You'll have to take into account that the peripheral running at F, can provide a maximum output of F/2. A timer running with 16M source will be able to generate a event every 8 MHz for instance.

    No, it's not possible to output the source frequency (16M), as setting '1' in the prescaler will actually be prescaler+1, which will be a divide by two. Cheers, Håkon

Children
No Data
Related