nRF5340DK arduino serial port doesn't work

I am porting an application from a nrf52840DK -> nrf5340DK and can't make the Arduino serial port work. I am using sdk v2.6.0.

My working development environment uses two 52840DKs and connects the arduino serial ports on the two boards (arduino pins D0/D1/D2) swapping D0/D1 (Tx/Rx) in the cable. I swapped one of the nrf52DKs for a nrf5340DK and the boards wouldn't talk. I am monitoring the communications with a data scope & notice that when I use a nrf53DK,  polling messages from the other DK stop (like the signal was shorted). When I switch power off on the nrf53DK, the polling resumes.

Also I notice that the control signal (arduino D2) is asserted for nrf52DK, but deasserted for nrf53.

I am using a minimal overlay file which assigns some flash0 partitions in the external flash and creates an alias "{ z9io-serial = &arduino-serial; };"

In the nrf53 overlay I added "&i2c1 { status="disabled" };" based on a warning in the device tree viewer.

My interface cable connects to the dual 0.1 header I soldered into P15. I can make new cables if the arduino serial port is unavailable on the nrf53DK.

Thanks for your help. Normally device tree changes just work -- so I'm not sure how to debug this.

And BTW: I couldn't find the nrf5340DK schematic. A pointer to that would also be appreciated.

Kent

Parents
  • Hi,

    My working development environment uses two 52840DKs and connects the arduino serial ports on the two boards (arduino pins D0/D1/D2) swapping D0/D1 (Tx/Rx) in the cable. I swapped one of the nrf52DKs for a nrf5340DK and the boards wouldn't talk. I am monitoring the communications with a data scope & notice that when I use a nrf53DK,  polling messages from the other DK stop (like the signal was shorted). When I switch power off on the nrf53DK, the polling resumes.

    Also I notice that the control signal (arduino D2) is asserted for nrf52DK, but deasserted for nrf53.

    It is possible that the pins are assigned to the serial port on the network core, if you are building a sample that uses a child image (for instance a Bluetooth sample). By default, P1.00/P1.01 are used for one of the UART ports on the DK, and these pins are assigned both to UART0 on network core and UART1/arduino_serial on application core. Can you try different pins?

    And BTW: I couldn't find the nrf5340DK schematic. A pointer to that would also be appreciated.

    Hardware files are available for download here: https://www.nordicsemi.com/Products/Development-hardware/nRF5340-DK/Download?lang=en#infotabs 

    Best regards,
    Jørgen

  • Thank you for your reply. My application does include bluetooth functionality so I imagine the network core is also activated. (which I think should be expected for a nRF53 application). So is it expected that the network core will always take the "arduino-serial" port and not leave it available for the application core?

    While this particular application is using the nrf-DK  "ardiuino-serial" ports for board-to-board communications (which means I can reassign the nrf53DK port), I also use the nrf-DKs  to develop drivers for chips which have "arduino-format" development kits for the chips. While most of these part DKs use SPI or I2C interfaces, some use the arduino-serial port. Are these DKs just not compatible with the "arduino connector" on the nrf5340DK because the network core has claimed the serial port first?

     One other question I had was why the device-tree viewer for the nrf5340DK application-core shows a conflict between the "i2c1" and the arduino serial port that required me to disable the i2c1 in my application overlay? In fact the device tree overlay showed several conflicts with an overlay that just referenced the arduino port via an alias. I am new the the nrf53, but don't recall any conflicts in the nrf52840DK device trees.

    And thank you for your answer and the link to the schematic.  

Reply
  • Thank you for your reply. My application does include bluetooth functionality so I imagine the network core is also activated. (which I think should be expected for a nRF53 application). So is it expected that the network core will always take the "arduino-serial" port and not leave it available for the application core?

    While this particular application is using the nrf-DK  "ardiuino-serial" ports for board-to-board communications (which means I can reassign the nrf53DK port), I also use the nrf-DKs  to develop drivers for chips which have "arduino-format" development kits for the chips. While most of these part DKs use SPI or I2C interfaces, some use the arduino-serial port. Are these DKs just not compatible with the "arduino connector" on the nrf5340DK because the network core has claimed the serial port first?

     One other question I had was why the device-tree viewer for the nrf5340DK application-core shows a conflict between the "i2c1" and the arduino serial port that required me to disable the i2c1 in my application overlay? In fact the device tree overlay showed several conflicts with an overlay that just referenced the arduino port via an alias. I am new the the nrf53, but don't recall any conflicts in the nrf52840DK device trees.

    And thank you for your answer and the link to the schematic.  

Children
No Data
Related