Page 1 of 1

debug output on uart[1]

Posted: Fri Jul 14, 2017 2:44 pm
by mseerig
Hi,
I am a little bit confused, why I have a debug output on my uart[1].
As far as I know, the generic debug output is at uart[0], right?
Is there a way to disable the debug output only at uart[1]?

Thank you in advance!

Re: debug output on uart[1]

Posted: Sat Jul 15, 2017 3:40 am
by ESP_Sprite
Which SDK/software/... are you referring to?

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 6:36 am
by mseerig
Oh, sorry! :D
I'm using the current esp-idf.

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 6:54 am
by ESP_Sprite
Erm, as far as I'm aware there should be no debug output on UART1, it's not even mapped to GPIOs by default if memory serves. What kinds of messages do you get, and how do you get at the output of that UART?

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 8:11 am
by mseerig
Ok, first of all, my uart routine is something like this: (please, don't be confused about my c++ code)

Code: Select all

UART_InitTypeDef uart_init;
uart_init.num = UART_NUM_1;
uart_init.baud_rate = 57600;
uart_init.data_bits = UART_DATA_8_BITS;
uart_init.parity = UART_PARITY_DISABLE;
uart_init.stop_bits = UART_STOP_BITS_1;
uart_init.flow_ctrl = UART_HW_FLOWCTRL_DISABLE;
uart_init.rx_flow_ctrl_thresh = 122;
uart_init.rts_pin = 0;
uart_init.cts_pin = 0;
uart_init.tx_pin = 16;
uart_init.rx_pin = 17;
uart_init.buffer_size = 1024;
UART uart(&uart_init);
FreeRTOS::sleep(1000); // need a delay for initialisation

ModbusMaster modbus(uart);
uint8_t* dat = new uint8_t[6];
modbus.build_query_basis(0x0001, 0x0004, 0x0003, 0x0001, dat);

uint8_t* inBuffer = (uint8_t*) malloc(1024);
for (;;) {
	modbus.send(dat, modbus.compute_response_length(dat)); // this is my data protocoll, wich I want to send
	while (!uart.available()) {     // waiting for uart interrupt
		FreeRTOS::sleep(100);
	}
	
	int len = uart.getBufferedLength();
	inBuffer = uart.read();	// read data (is correct an validated)
	
	printf("DATA>>"); // I can see this on my uart[1]
	for (int i = 0; i < len; i++)
		printf("%c", inBuffer[i]); // I can see this on my uart[1]
	printf("<<\n");  // I can see this on my uart[1] 
	
	FreeRTOS::sleep(1000);
}
In the attachments is my uart[1] output captured with my oscilloscope.

I hope everything is now clearly discribed, if not, I will try to answer soon! ;)

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 9:46 am
by WiFive
What does UART constructor do?

You see all debug output on UART1 like bootloader, WiFi? Or just your printf?

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 12:37 pm
by mseerig
Yes, I see the whole debug output on my UART[1].
It starts with "(2264) cpu start: starting.)".. That is, what I can trigger. Unforchenetly, I don't know how to trigger more data in single mode...

Here is my UART init code:

Code: Select all

UART::UART(const UART_InitTypeDef* uart_conf) {
	//this->num = DEFAULT_UART_num;
	//this->buffer_size = DEFAULT_UART_buffer_size;

	this->num = uart_conf->num;
	this->buffer_size = uart_conf->buffer_size;
	this->err = ESP_OK;

	receiveBuffer = (uint8_t*) malloc(buffer_size);
	receiveBuffer_len = 0;

	uart_config_t uart_config;
	uart_config.baud_rate = uart_conf->baud_rate;
	uart_config.data_bits = uart_conf->data_bits;
	uart_config.parity = uart_conf->parity;
	uart_config.stop_bits = uart_conf->stop_bits;
	uart_config.flow_ctrl = uart_conf->flow_ctrl;
	uart_config.rx_flow_ctrl_thresh = uart_conf->rx_flow_ctrl_thresh;

	if (!UART_driverInstalled[num]) {

		sprintf(debugTag, "uart[%d]", (uint8_t) num);
		sprintf(_taskName, "%s_eventTask", debugTag);
		esp_log_level_set(debugTag, ESP_LOG_INFO);

		//Configure UART1 parameters
		uart_param_config(num, &uart_config);
		//Set UART pins
		uart_set_pin(num, uart_conf->tx_pin, uart_conf->rx_pin,
				uart_conf->rts_pin, uart_conf->cts_pin);

		uart_driver_install(num, buffer_size * 2, buffer_size * 2, 10,
				&uart_queue, 0);

		//Set uart pattern detect function.
		//uart_enable_pattern_det_intr(num, '+', 3, 10000, 10, 10);
		//Create a task to handler UART event from ISR
		xTaskCreatePinnedToCore(&uart_taskfunwrapper, _taskName, 2048, this, 12,
		NULL, 0);

		UART_driverInstalled[num] = true;
	}
}
I hope, that you can help me! :)

Re: debug output on uart[1]

Posted: Mon Jul 17, 2017 10:22 pm
by WiFive

Re: debug output on uart[1]

Posted: Thu Jul 20, 2017 7:57 am
by mseerig
There is everything in standard settings:

CONFIG_CONSOLE_UART_DEFAULT=y
# CONFIG_CONSOLE_UART_CUSTOM is not set
# CONFIG_CONSOLE_UART_NONE is not set
CONFIG_CONSOLE_UART_NUM=0
CONFIG_CONSOLE_UART_BAUDRATE=115200