2018-03-23 21:14 GMT+07:00 Peter C. Wallace <p...@mesanet.com>: > On Fri, 23 Mar 2018, Th?ng L? wrote: > > Date: Fri, 23 Mar 2018 16:04:47 +0700 >> From: "[UTF-8] Th?ng L?" <lethang12...@gmail.com> >> Reply-To: EMC developers <emc-developers@lists.sourceforge.net> >> To: EMC developers <emc-developers@lists.sourceforge.net> >> Subject: Re: [Emc-developers] writing new firmware to read yaskawa >> absolute >> encoder >> >> i guess i cant contact UART on mesa 5i25 by linuxcnc, just only can get >> data from FIFO. I found a way to solve this problem without touchich >> uart.c >> source but it's not complete. >> >> in 8 bytes serial, the first data is "P" (80 in hexa) and last bytes is >> "CR" (13 in hexa). >> >> if i read FIFO data every 1 ms ( speed to read 1 bytes at 9600 baudrate >> and >> 10 bit frames), function will stop reading when it sees 80 ( or 13) but i >> get only 1 byte that is 80 (or 13). I guess RX FIFO is cleared everytime i >> read but i didnt find where that function is in: >> > > > When you start looking for the serial data do you clear the FIFO first? > (writing to the FIFO count register clears the FIFO) > No, i didnt, ,the hm2_uart_read doesnt have function to clear RX_FIFO. It doesnt contain function: hm2->llio->write(hm2->llio, inst->rx_fifo_count_addr, &buff, sizeof(u32)); I wonder why do we need to clear it, it already clear in setup function. I will try add this function in HAL component, if it is impossible i probably modify low level read function
> Does the low level read function wait for data? (FIFO count not 0) > Yes, it has a function: hm2->llio->read(hm2->llio, hm2->uart.instance[inst].rx_fifo_count_addr , &buff, sizeof(u32)); If you dont do these things its not likely you will get usable data > Also you should read _all_ characters in the FIFO every ms > (meaning you must read the FIFO count first to determine how many to read) Exactly i got all correct data if the channel A of encoder back idle state after send 8 bytes serial data. 2018-03-23 22:23 GMT+07:00 Gene Heskett <ghesk...@shentel.net>: > On Friday 23 March 2018 05:04:47 Thắng Lê wrote: > > > i guess i cant contact UART on mesa 5i25 by linuxcnc, just only can > > get data from FIFO. I found a way to solve this problem without > > touchich uart.c source but it's not complete. > > > > in 8 bytes serial, the first data is "P" (80 in hexa) and last bytes > > is "CR" (13 in hexa). > > > > if i read FIFO data every 1 ms ( speed to read 1 bytes at 9600 > > baudrate and 10 bit frames), function will stop reading when it sees > > 80 ( or 13) but i get only 1 byte that is 80 (or 13). I guess RX FIFO > > is cleared everytime i read but i didnt find where that function is > > in: > 9600 baud? Run that up to as fast as you can. At 9600, you'll be watching > grass grow. 256k or better. No, i cant change baudrate because it's abs_encoder baudrate > > > -- > > > Lê Thắng > > > Phone: (+84) 1222443855 > > > Email: lethang12...@gmail.com > > > > -- > Cheers, Gene Heskett > -- > "There are four boxes to be used in defense of liberty: > soap, ballot, jury, and ammo. Please use in that order." > -Ed Howdershelt (Author) > Genes Web page <http://geneslinuxbox.net:6309/gene> > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Emc-developers mailing list > Emc-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-developers > I also thank you very much, just a bit more before finish this project -- Lê Thắng Phone: (+84) 1222443855 Email: lethang12...@gmail.com ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers