Zephyr Shell on custom board with nRF54L15

Hi all,

I'm looking at an issue and I can't get my head around it. I clearly do something wrong here but I'm stuck.

On our nRF54L15 DK we have a program that can show a shell terminal on UART21 (pin 1.11 and pin 1.12, no RTS and CTS used).

Now I want to convert that simple program to our own designed Board

I can't seem to get the shell working on our own board. We still use UART21 (but now use Pin 2.7 and 2.8). No RTS and CTS configured.

What I see. 

My "zephyr.dts" file seems similar in the area that maters. This is not completely the same but ...

My ".config" files after build are also relative the same. We use the same baudrate and so on.

On a logic analyzer I see:

For the DK board, a normal behavior of the TX pin.


[00:33:45.115,979] \x1B[0m<inf> main: app running\x1B[0m
\x1B[8D\x1B[J[00:33:45.115,979] <inf> main: app running
uart:~$ \x1B[8D\x1B[Juart:~$

On our own board however we see strange characters that don't seem to follow the Baudrate set. The logging line is fine so My uart is set at the correct baudrate. but anything shell related is not as expected.

[00:00:20.002,637] \x1B[0m<inf> main: app running\x1B[0m
\x1B\xFF\0\xFE\xFD\x01\0\x07\0

So the logging both say "App running" and then we expect the shell but on the own developed board we do not get the correct characters. 

Also typing a command like 'help' does not trigger anything, where I was expecting a reaction on the TX line as the character typed should be echo'd...

Can somebody help me figure out what I've mis configured? 
If needed I can deliver some configuration files.

Thanks for the assistance.

Parents
  • Wen I debug I do have a shell and I can see the logging. When I stop debugging it stops working. 

    I've used the following to investigate further:

    const char c[] = "DEADBEEF\r\n";
    dict_char_out_hex(uart_dev, (uint8_t *)c, sizeof(c) - 1);
    uart_fifo_fill(uart_dev, (const uint8_t *)"UART initialized\r\n", 19);
    where uart_poll_out is used to transmit the first string 'DEADBEEF' and that works while debugging and running solo.
    The fifo fill does not work when not debugging.
    The zephyr shell uses fifo_fill so it seems logic that I get the same reaction on that.
    What do we need to configure to get uart_fifo_fill to work while not debugging?
    It must be a timing issue i think as while debugging It runs slower and works as expected?

    The strange thing is that no config changes can be found between the development kit and My own board.
    Is there something I need to do to configure the DMA correctly or does the uart_fifo_fill not use DMA?
Reply
  • Wen I debug I do have a shell and I can see the logging. When I stop debugging it stops working. 

    I've used the following to investigate further:

    const char c[] = "DEADBEEF\r\n";
    dict_char_out_hex(uart_dev, (uint8_t *)c, sizeof(c) - 1);
    uart_fifo_fill(uart_dev, (const uint8_t *)"UART initialized\r\n", 19);
    where uart_poll_out is used to transmit the first string 'DEADBEEF' and that works while debugging and running solo.
    The fifo fill does not work when not debugging.
    The zephyr shell uses fifo_fill so it seems logic that I get the same reaction on that.
    What do we need to configure to get uart_fifo_fill to work while not debugging?
    It must be a timing issue i think as while debugging It runs slower and works as expected?

    The strange thing is that no config changes can be found between the development kit and My own board.
    Is there something I need to do to configure the DMA correctly or does the uart_fifo_fill not use DMA?
Children
No Data
Related