I would like to share two documentation issues I noticed while I was trying to connect a TFMini lidar via UART1 to a HiFive1 rev b board.
In Table 52 of FE310-G002 Manual (v19p04), IO_FUNC_EN and IO_FUNC_SEL registers are not included, while they are mentioned in Section 17.8.
According to Table 53 GPIO IOF Mapping, UART1_RX is mapped to GPIO18. And, according to the HiFive1 rev b pinout (Figure 5 of HiFive1 rev b getting started guid), the gpio18 is mapped to the board’s pin 2. However, based on my testing, the rx pin is actually mapped to pin 7 (gpio 23) as I can read the lidar’s data from the pin 7, not pin 2.
On the other hand, when I use UART0 instead, I can read the lidar’s data from pin 0 (gpio 16) as described in the documents.
So, I believe either the chip datasheet’s gpio mapping or hifive1 board’s pinmap information is incorrect.