Live data from Hacker News

HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

sifive.com

31–40 of 97 posts

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#31
post #21

320mhz clock speed but only 16KB of RAM. RISC-V is appealing but if I'm stuck at 32KB or less of RAM I'd stick with the Parallax Propeller which has 8 parallel 100mhz cores.

> Parallax Propeller which has 8 parallel 100mhz cores. According to https://en.wikipedia.org/w/index.php?title=Parallax_Propelle... it is only up to 80 MHz.

Overclocks safely to 100mhz

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#32
post #26
post #23

Earlier quoted context omitted.

I'm not sure that's the whole story - specs read: Memory: 16 KB Instruction Cache, 16 KB Data Scratchpad I'm wondering if it's possible to combine that or dice it in some way? On top of that, the program resides in SPI flash (128 Mbit -> 16 meg). EDIT: ok - the above makes no sense, so yes, on 16K on-board RAM (and the other is for cache). Short of more info, I'd be willing to bet that some of that flash can be set a…

You're correct, you can access the 128MBit SPI Flash as any other read-only memory mapped memory -- you can execute out of it or load data (you can also write to it but need to use a seperate channel, it's not directly memory mapped to write). You're also correct on the sizes of the ICache and Scratchpad. You can execute code which resides in the scratchpad, but can't store data in the I-Cache.

Does the MCU expose address lines to wire in external RAM?

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#33

I looked over the Chisel source code and the barebones datasheet [1]. This chip has a couple of unique features: 1. It doesn't have any onboard NVRAM (same limitation as the open-v). However, it does have a directly memory mapped quad-SPI peripheral and icache, which is a great alternative and might be better for applications that require a large amount of data. Note that an icache would still be required even if it…

I'm worried this leads to the zoo of random hardware that we see on ARM, which makes supporting Linux distros on ARM such a PITA.

It would be better if the basic hardware — serial ports and such — was in a standard location for all RISC-V machines, and all the rest of the hardware was discoverable at runtime (like PCs, mostly).

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#34
post #28

Earlier quoted context omitted.

If you want an arduino compatible device that can do audio processing, go for a Teensy board ( https://www.pjrc.com/teensy/ , http://www.pjrc.com/teensy/td_libs_Audio.html )

72/120MHz isn't really enough to do "decent" audio/signal processing with low distortion. You can probably get it to work with a lot of effort and optimisation, but there'll be very little room to do anything with it afterwards. Afaik AC97 chips run at around 24MHz, are dedicated to the job, and even they stop at 20 bit resolution and sticking the data onto a data bus. Getting better than that is "hard", which is why…

That speed is quite enough to do audio processing - you can run Opus easily on those microcontrollers. Many other audio processing tasks are simpler. AC97 chips are basically DACs/ADCs, and do no audio processing themselves, so are a bad comparison.

However, while most Cortex-M chips have an I2S peripheral to integrate with an external DAC, the HiFive1 doesn't, which might cause some difficulties. Audio out can be implemented with the PWM peripheral, though.

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#35
post #33

I looked over the Chisel source code and the barebones datasheet [1]. This chip has a couple of unique features: 1. It doesn't have any onboard NVRAM (same limitation as the open-v). However, it does have a directly memory mapped quad-SPI peripheral and icache, which is a great alternative and might be better for applications that require a large amount of data. Note that an icache would still be required even if it…

I'm worried this leads to the zoo of random hardware that we see on ARM, which makes supporting Linux distros on ARM such a PITA. It would be better if the basic hardware — serial ports and such — was in a standard location for all RISC-V machines, and all the rest of the hardware was discoverable at runtime (like PCs, mostly).

It looks like we're moving towards a solution (in a slow, jerky, shambling way) with replacing hardcoded boardfiles with device trees.

If RISC-V does this well out of the gate (like with IBM's old school Open Firmware) and has great shiny device tree support, I think we might end up like x86 -- where a single thumbdrive can boot almost any x86 machine under the sun.

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#36

I looked over the Chisel source code and the barebones datasheet [1]. This chip has a couple of unique features: 1. It doesn't have any onboard NVRAM (same limitation as the open-v). However, it does have a directly memory mapped quad-SPI peripheral and icache, which is a great alternative and might be better for applications that require a large amount of data. Note that an icache would still be required even if it…

The ESP8266 and ESP32 have a very similar memory mapped quad-SPI setup. The (older, cheaper, more limited) ESP8266 is probably the most similar in terms of peripheral set etc, though that obviously still has more RAM, WiFi, I2C and I2S which this lacks.

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#37
post #28

Earlier quoted context omitted.

If you want an arduino compatible device that can do audio processing, go for a Teensy board ( https://www.pjrc.com/teensy/ , http://www.pjrc.com/teensy/td_libs_Audio.html )

72/120MHz isn't really enough to do "decent" audio/signal processing with low distortion. You can probably get it to work with a lot of effort and optimisation, but there'll be very little room to do anything with it afterwards. Afaik AC97 chips run at around 24MHz, are dedicated to the job, and even they stop at 20 bit resolution and sticking the data onto a data bus. Getting better than that is "hard", which is why…

The Teensy audio adapter [1] uses a dedicated DAC, the SGTL5000. That frees up the MCU to do more DSP.

[1]: http://pjrc.com/store/teensy3_audio.html

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#39

I looked over the Chisel source code and the barebones datasheet [1]. This chip has a couple of unique features: 1. It doesn't have any onboard NVRAM (same limitation as the open-v). However, it does have a directly memory mapped quad-SPI peripheral and icache, which is a great alternative and might be better for applications that require a large amount of data. Note that an icache would still be required even if it…

You can bit bang a lot with 320Mhz cycle time :-). That said I wonder if we'll see a common standard emerge for an 'open' serial protocol. Sort of PCIe lite which runs at say 250Mhz over a pair of LVDS pins that you make into an AHB bus master in the memory matrix. That would really open up the peripheral market.

Re: HiFive1: A RISC-V-based, Open-Source, Arduino-Compatible Development Kit

#40
post #28

Earlier quoted context omitted.

72/120MHz isn't really enough to do "decent" audio/signal processing with low distortion. You can probably get it to work with a lot of effort and optimisation, but there'll be very little room to do anything with it afterwards. Afaik AC97 chips run at around 24MHz, are dedicated to the job, and even they stop at 20 bit resolution and sticking the data onto a data bus. Getting better than that is "hard", which is why…

That speed is quite enough to do audio processing - you can run Opus easily on those microcontrollers. Many other audio processing tasks are simpler. AC97 chips are basically DACs/ADCs, and do no audio processing themselves, so are a bad comparison. However, while most Cortex-M chips have an I2S peripheral to integrate with an external DAC, the HiFive1 doesn't, which might cause some difficulties. Audio out can be im…

Depends what you mean by "enough".

24MHz is "enough" for 20 bits@96kHz ADC and some post processing.

But 20 bits@96kHz is not decent.

For reasonable SNR, you need at least 24 bits, and even then "the experts" offload to an external CPU http://www.tested.com/tech/pcs/454839-tested-why-high-end-pc...

For signal (less audio are more "controller") with high precision you need micro controllers with the power of at least an early 2000s PC (several hundred MHz and single cycle mul/div).

Raspberry Pi 3 is close, but it needs an external ADC/DAC.

Post reply on HN