Search found 20 matches

by OneTwo
Tue Jun 26, 2018 6:11 pm
Forum: Hardware
Topic: AFE4300 Weight
Replies: 9
Views: 11727

Re: AFE4300 Weight

And just in case you want to see the implementation files
AFE4301V2.cpp
(7.17 KiB) Downloaded 966 times
AFE4301V2.h
(1.49 KiB) Downloaded 901 times
SPIExt.cpp
(8.53 KiB) Downloaded 888 times
by OneTwo
Tue Jun 26, 2018 6:02 pm
Forum: Hardware
Topic: AFE4300 Weight
Replies: 9
Views: 11727

Re: AFE4300 Weight

The capture are made with Sale Logic Application (file extension: logicdata)
esp32_byte_by_byte.txt
(8.24 MiB) Downloaded 926 times
use loboris SPI
esp32_24bits_transfer.txt
(8.92 MiB) Downloaded 932 times
use loboris SPI
esp32_24bits_transfer_no_lobo.txt
(10.63 MiB) Downloaded 858 times
not used
by OneTwo
Tue Jun 26, 2018 11:12 am
Forum: Hardware
Topic: AFE4300 Weight
Replies: 9
Views: 11727

Re: AFE4300 Weight

The RDY signal asserts when a byte is received and de-asserts when a byte has been processed. Can you show me what this signal is doing in the case of arduino and esp-idf? In each case watch the signals STE(CS),SCLK(CLK),SDIN(MOSI),SDOUT(MISO), RDY, RST. I would like to see the signal from startup ...
by OneTwo
Tue Jun 26, 2018 9:11 am
Forum: Hardware
Topic: AFE4300 Weight
Replies: 9
Views: 11727

Re: AFE4300 Weight

What I am noticing is that your command bytes are sent right after each other. Try adding a delay in between them? See page 22 of that datasheet, it states you need to have a delay of 8us in between your commands. It actually tells you exactly how the signal should look. Goodluck! Thanks for the re...
by OneTwo
Tue Jun 26, 2018 8:49 am
Forum: ESP-IDF
Topic: Heap corrupting when using xQueue
Replies: 29
Views: 30366

Re: Heap corrupting when using xQueue

If I understand correctly from the documentation, the pointer is stored inside the queue, but the copied value. Therefore, a pointer is passed to xQueueSend(): the function copies the required number of bytes from the memory by this pointer. The function xQueueReceive() also sends a pointer to the ...
by OneTwo
Tue Jun 26, 2018 8:31 am
Forum: ESP-IDF
Topic: Heap corrupting when using xQueue
Replies: 29
Views: 30366

Re: Heap corrupting when using xQueue

chegewara , the above code is an excerpt from the file queue.h. This is NOT my code :) OneTwo , I looked at the documentation on the freertos.org website: pvItemToQueue A pointer to the item that is to be placed on the queue. The size of the items the queue will hold was defined when the queue was ...
by OneTwo
Tue Jun 26, 2018 6:35 am
Forum: ESP-IDF
Topic: Heap corrupting when using xQueue
Replies: 29
Views: 30366

Re: Heap corrupting when using xQueue

I used xQueue according to the documentation and the official example. uint32_t ulVar = 10UL; void vATask( void *pvParameters ) { QueueHandle_t xQueue1; // Create a queue capable of containing 10 uint32_t values. xQueue1 = xQueueCreate( 10, sizeof( uint32_t ) ); if( xQueue1 != 0 ) { // Send an uint...
by OneTwo
Tue Jun 26, 2018 6:17 am
Forum: ESP-IDF
Topic: Heap corrupting when using xQueue
Replies: 29
Views: 30366

Re: Heap corrupting when using xQueue

I use xQueue to exchange messages between two RTOS tasks. I encountered a problem when using xQueue causes damage to dynamic memory, and sometimes kernel panic. The xQueueCreate(), xQueueSend() and xQueueReceive() functions are used in accordance with the documentation for the RTOS. void app_main()...
by OneTwo
Mon Jun 25, 2018 11:20 am
Forum: Hardware
Topic: AFE4300 Weight
Replies: 9
Views: 11727

Re: AFE4300 Weight

You may drive the CS as a normal GPIO, letting the SPI Driver handle that is possible too. Or just tie it to the ground as the datasheet also mentions(page 21). I would start with trying to read the registers in the AFE4300. The datasheet contains the default values for these registers. If you can ...
by OneTwo
Mon Jun 25, 2018 11:07 am
Forum: ESP-IDF
Topic: Generatig a clock frequency
Replies: 4
Views: 6730

Re: Generatig a clock frequency

Divider has 8-bit fractional part, so you probably need to set it to 80MHz/1.024MHz*256=20000. Bit_num=8 and duty=127 seems to be okay, should generate 50% duty cycle. Thank you, i solved that with the following code: periph_module_enable(PERIPH_LEDC_MODULE); int bit_width = 1; // 1 - 20 bits int d...