LINUX.ORG.RU
ФорумTalks

Однокристалки на RISC-V теперь и по $1.27

 


6

3

Наигравшись с клонированием STM32 GigaDevice выпустила линейку однокристалок GD32V с ядром RISC-V

Для Ъ:

  • Core – GD32VF103 RISC-V “Bumblebee Core” @ 108 MHz
  • Memory – 8KB to 32KB SRAM
  • Storage – 16KB to 128KB flash
  • Peripherals – USB OTG and CAN 2.0B
  • I/O – 3.3V, 5V tolerant
  • Supply Voltage – 2.6 to 3.6V
  • Package – QFN36, LQFP48, LQFP64, and LQFP100 packages

Годная замена STM32F103 за вменяемую цену.

Официальная девборда - $11
GD32VF103TBU6 MCU (QFN36, 64 kB Flash) по $1.27 поштучно, $0.95 в заказе >3000шт.
Официальная цена аналогичного STM32F103T8U6 (QFN36, 64kB Flash) - $2.0561 в партии 10000шт, если чо.

Скоро наверно и на алиэкспрессе какой-нибудь вариант девборды в виде BluePill появится.

Подробнее тут: https://hackaday.com/2019/08/27/gigadevice-releasing-risc-v-mcus-and-developm...

Английский datasheet: http://dl.sipeed.com/LONGAN/Nano/DOC/GD32VF103_Datasheet_Rev1.0.pdf

Английский manual: http://dl.sipeed.com/LONGAN/Nano/DOC/GD32VF103_User_Manual_EN_V1.0.pdf

И да, судя по даташиту оно pin-to-pin compatible с STM32F103

UPD: весь тулчейн и всё такое (openocd, newlib, доки ...) они таки выложили на https://github.com/riscv-mcu

UPD2: Хо-хо, а вот и библиотечка с примерами подъехала https://github.com/riscv-mcu/GD32VF103_Firmware_Library

UPD3: Охренеть, они ещё и libopencm3 запилили - https://github.com/riscv-mcu/libopenmcu

★★★★★

Последнее исправление: Stanson (всего исправлений: 10)

Ответ на: комментарий от Stanson

Во дебилы, правда? Делают DMA transfer а потом сравнивают
Ламеры же китайские, понаделали говна, в котором корректность DMA надо руками проверять

Извини, я не эмбеденщик,но это был сарказм или что? Просто ты принёс это всё сюда создав топик, я лишь по ссылкам прошелся, а сарказм что-то не могу задетектить, но опять же я не эмебеднищик, может у вас какой особый юмор?

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 3)
Ответ на: комментарий от foror

В общем и целом - да, это в порядке вещей. Как правило, бесконечные циклы - это нормально, так как всего одна задача, управление передавать некому, а когда случится прерывание - ну, тогда все управление будет отдано ему. Правда нормальные люди ставят не волшебные «200», а все же проверяют регистры, ну или хотя бы флажки в прерываниях ставят.

ruzisufaka
()

Еще один аргумент против клонов

Мы тут прототипчики делаем на блюпилах и им подобных - отладить какую-то мелкую детальку, по быстрому что-то проверить и все такое. Повтыкал проводочки и готово. Сегодня взяли очередную таблетку из ящика, а Кеил, который до этого отлично работал, вдруг заявил «Вы используете неоригинальные чипы, работать не хочу». Этикетка на чипе почти стерта, но под микроскопом можно было прочитать CKS32F103C8T6. Оказалось, что по дурости купили партию таблеток с этим чудом, благо в ящике все же есть и куча оригинальных, а клоны на гирлянды пойдут или еще какую мелочевку.

ruzisufaka
()
Ответ на: комментарий от ruzisufaka

так как всего одна задача

А если мне нужно, чтобы процессор перешел в режим ожидания данных по IO? Тоже в бесконечный цикл загнать, а если я смартчасы (или еще какой IoT на батарейке) делаю?

foror ★★★★★
()
Ответ на: комментарий от foror

Если ты ждешь данные, то читать их можно синхронно и асинхронно. Синхронно - это ты подаешь команду на чтение, а внутри библиотеки (в том числе фирменной) скорее всего будет крутиться такой цикл. Другое дело асинхронно, можно заюзать DMA, и когда тебе что-то придет, ты словишь прерывание. Ресурсы процессора в этот момент не тратятся, всю работу делает переферия, которая и выкинет прерывание. А пока ты его не словил, тебе все равно делать нечего, так что все равно будешь крутить пустой цикл, лол. Или, скорее всего, рисовать какие-то анимации на экране, мигать диодиками и вообще. Чтобы не жрать батарейку, можешь или снизить частоту чипа, отключить часть переферии, перейти на тактирование от внутреннего резонатора, или даже отправить его в спячку (современные чипы поддерживают множество режимов спячки, а порой есть специальные сопроцессоры на том же кристале, которые данные принимают, пока спят основные ядра). ИоТ обычно спит 99% времени, а просыпается по внешнему прерыванию или от таймера на какие-то наносекунды, потом снова спать, в таком режиме оно от одной батарейки несколько лет спокойно проработает.

ruzisufaka
()
Последнее исправление: ruzisufaka (всего исправлений: 2)
Ответ на: комментарий от ruzisufaka

В догонку:

Если делаешь имено часы, то скорее всего тебе захочется многозадачность. В этом случае наверное имеет смысл посмотреть на какие-то RTOS. В этом случае менеджментом времени будет заниматься сама ОС, и вечные циклы крутить уже не нужно.

Если делаешь какую-то охранную систему, которой надо работать годы от одной батарейки, то смотри на специальные чипы с низким потреблением, к примеру у STM32 это серия L. По возможности юзай аппаратные решения, к примеру криптографию на самом чипе, выполненную как переферию, чтобы не нагружать сам процессор, или допаяй отдельные микрухи, которые можно выключать по мере ненадобности.

ruzisufaka
()
Ответ на: комментарий от foror

В симкарте, как и в любых других смарткартах жабобейсик. На жабу он только синтаксисом похож и больше ничего общего с жабой не имеет вообще.

Stanson ★★★★★
() автор топика
10 октября 2019 г.

Скоро наверно и на алиэкспрессе какой-нибудь вариант девборды в виде BluePill появится.

Появилось
Дороговато пока правда - по 4.5$ (и то, если брать десяток), зато с картридером.

arson ★★★★★
()
Ответ на: комментарий от arson

Ну понеслась. :)

Заказал. Потыкаем, посмотрим. :)

Дороговато пока правда - по 4.5$ (и то, если брать десяток), зато с картридером.

Там ещё USB-C и разъёмчик для экранчика. Для совершенно нового девайса нормально.

Я думаю уже очень скоро и BluePill с GD32VF по ≈100 рублей будут.

Stanson ★★★★★
() автор топика

Не понял, а где исходники на процессор?!
Документация на китайском ведет на сайт с «Hummingbird E203», но там ничего нет про «Nuclei N200 Bumblebee».
Подозреваю, что срисовано с него, но где папочка n200_rls_pkg? Опять наипали? Опять блобы суют? ;)

arson ★★★★★
()
Ответ на: комментарий от arson

В проспекте нашел сравнение между «E203 Open Source Version» - «N200 Commerical Version». Не будет значит исходников :(

arson ★★★★★
()

Крутяк!

Вот куда я портирую BuguRTOS!

shkolnick-kun ★★★★★
()
Ответ на: комментарий от arson

А какой смысл в этих исходниках, если ты их в GD32VF никак залить не сможешь, и проверить соответствие начинки GD32VF этим исходникам тоже никак не получится?

Вон, K210 с сырцами есть.

Хочешь гарантированно без блобов - бери E200 и заливай в FPGA, делов-то.

Stanson ★★★★★
() автор топика

Приехали «Red pills» с GD32VF103CBT6 :) Заказывал без экранчика и корпуса.

В общем оно работает, качество сборки получше чем у типовой алиэкспрессовской «Blue pill». В платки залита прошивка моргающая RGB светодиодом и бутлоадер с DFU и Serial интерфейсами. Так что можно в принципе и без JTAG обойтись.

Тулчейн и пр. потыкать пока руки не дошли, но не думаю что будут проблемы.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

dfu-util - работает (загрузчик там встроен, flash не занимает)
openocd - работает. Правда конфиг от openocd надо искать в другом месте
toolchain - компиляет. С usb примерами какой-то затык, разберемся...

arson ★★★★★
()
Ответ на: комментарий от arson

dfu-util - работает (загрузчик там встроен, flash не занимает)

Ну значит вообще ничего кроме USB-C шнурка не нужно, чтобы поиграться.

Stanson ★★★★★
() автор топика

Забавно, но GD32VF103 прошивается даже ванильной тулзой stm32flash через последовательный порт. Для stm32flash оно выглядит вот так:

$ stm32flash /dev/ttyUSB0 
stm32flash 0.5

http://stm32flash.sourceforge.net/

Interface serial_posix: 57600 8E1
GET returns unknown commands (0x 6)
Version      : 0x30
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB

Т.е. китайцы в бутявке своего GD32VF просто реализовали последовательный протокол бутлоадера STM32

Ну в общем и целом - GD32VF - очень достойная альтернатива STM32. Оно на практике как минимум не медленнее, и жрёт не больше. Плюс наличие USB host даёт интересные возможности.

Stanson ★★★★★
() автор топика
Последнее исправление: Stanson (всего исправлений: 1)

В общем, всё компилируется (gcc 8.3.0), прошивается (DFU, Serial, JTAG) и работает без особых проблем. Ужор соответствует даташиту (~30mA @ 108MHz, вся периферия включена). Разве что отладку через gdb + JTAG не проверял (да и не понадобилось ни разу), но, думаю и тут проблем не будет.

Один нюанс с DFU - usb устройство в системе появляется секунд через 10 после включения в режиме бутлоадера, при инициализации ядро не может прочитать какой-то из дескрипторов и ждёт таймаута:

[414941.544786] usb 2-3: new full-speed USB device number 42 using xhci_hcd
[414957.206639] usb 2-3: device descriptor read/64, error -110
[414957.442233] usb 2-3: New USB device found, idVendor=28e9, idProduct=0189, bcdDevice=10.00
[414957.442235] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[414957.442237] usb 2-3: Product: GD32 0x418 DFU Bootloade
[414957.442238] usb 2-3: Manufacturer: GDMicroelectronics
[414957.442238] usb 2-3: SerialNumber: 䌳䩂

Потом всё работает без проблем.

В общем, у китайцев более чем получилось, так что очень даже можно пользоваться этими забавными однокристалками вместо STM32F103. Тем более за такие деньги.

Stanson ★★★★★
() автор топика
Последнее исправление: Stanson (всего исправлений: 3)
Ответ на: комментарий от Harald

А что по поводу этого аттракциона думают в ST Microelectronics? :)

Возможно о том, не начать ли тоже клепать однокристалки на RISC-V?

TI вот, например, поглядела на Espressif с их ESP8266 и ESP32 и давай CC3200 по $8 клепать.

Stanson ★★★★★
() автор топика
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Один нюанс с DFU - usb устройство в системе появляется секунд через 10 после включения в режиме бутлоадера, при инициализации ядро не может прочитать какой-то из дескрипторов и ждёт таймаута

Китайское поделие тут не при чём, на самом деле. Это что-то с USB3.0 связано. Воткнул в другой комп с USB2.0 - ничего не тормозит и никаких таймаутов, всё как должно быть. Воткнул USB2.0 хаб - через него тоже всё работает. Потом разберусь, наверно кто-то с USB3.0 в ядре намудрил.

Stanson ★★★★★
() автор топика
12 января 2020 г.
Ответ на: комментарий от curufinwe

А можно поинтересоваться чисто в рамках соц. опроса - зачем вы используете это недоразумение под названием кейл вместо нормальных средств разработки?

Конечно! Кейл - это лучшее из того, что я видел. Из рабочего и юзабельного видел еще Воркбенч, но вот возможности отладки и тыканья переферии в рантайме в Кейле больше (хотя каюсь, когда надо выводить какие-то графики, ухожу дебажить в Воркбенч).

Конечно, никто не мешает использовать gcc и руками заливать все это в чип, я так и делал по началу. Но вот потом надоело и заливать в 2 клика приятнее, пусть и уходит второй клик на сообщение про лимит в 32 килобайта.

ruzisufaka
()
Ответ на: комментарий от ruzisufaka

никто не мешает использовать gcc и руками заливать все это в чип

Зачем в крайности сразу, из любого редактора типа vim или kate или emacs можно в один клик заливать.

Из IDE - PlatformIO из коробки все в один клик. Только с функцией отладки дороговато стоит, 15$ в месяц.

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Зачем в крайности

vim

А действительно, зачем?

Из IDE - PlatformIO

И как оно, программировать в браузере? Раньше казалось, что хуже ардуины ничего быть не может…

ruzisufaka
()
Ответ на: комментарий от ruzisufaka

И как оно, программировать в браузере? Раньше казалось, что хуже ардуины ничего быть не может…

Каком браузере?

Keil еще жирнее, чем этот «браузер». Ох уж эти фанатики непонятно чего…

И причем же здесь ардуина? Мы о среде разработки говорим, или о target device? Смешались в кучу кони люди…

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

И причем же здесь ардуина?

На сегодняшний день это в первую очередь самое лучшее ИДЕ для разработки. С фичастостью уровня блокнота. Впрочем, до программирования в браузере и правда далеко.

ruzisufaka
()
Ответ на: комментарий от ruzisufaka

Да что ты прицепился этому браузеру. Какой к чертовой бабушке браузер? PlatformIO работает как дополнение для VS Code или Atom, на выбор. Причем тут браузер?

К тому же, слышать все это от адепта вин-онли среды просто смехотворно.

curufinwe ★★★★★
()
Последнее исправление: curufinwe (всего исправлений: 1)
Ответ на: комментарий от curufinwe

VS Code или Atom, на выбор. Причем тут браузер?

VS Code

Atom

А действительно, причем? Ребята! Давайте поможем мальчику curufinwe найти у себя на компьютере браузер!

от адепта вин-онли среды просто смехотворно

Да-да, вот браузеры то везде работают, от вын95 до Нокии - везде есть брыузир, а значит там тоже можно разрабатывать!

ruzisufaka
()

Наигравшись с клонированием STM32 GigaDevice выпустила линейку

Упаси Аллах использовать всякие кетайские модернизации оригинального продукта, ставшего почти стандартом для чего-то большего, чем поделки-однодневки. Через пару лет скорее всего никто не вспомнит о существовании гигадевайсов с их кастомизированным stm.

vaddd ★☆
()
Ответ на: комментарий от ruzisufaka

Я читал, что от шизофазии могут лечить. На твоем месте я бы времени не терял.

curufinwe ★★★★★
()
Ответ на: комментарий от vaddd

Упаси Аллах использовать всякие кетайские модернизации оригинального продукта

Ну именно у GD таки была не модернизация оргинального продукта, а pin-to-pin STM32 compatible оригинальная разработка. Наигравшись таким образом с известным ARM они рискнули и сделали опять же pin-to-pin STM32 compatible RISC-V.

Через пару лет скорее всего никто не вспомнит о существовании гигадевайсов с их кастомизированным stm.

Ещё раз - у них был не кастомизированный STM, а самостоятельно разработанный «тренировочный девайс». Идея с RISC-V очень нравится китайскому правительству и в Китае его активно двигают.

А то, что через пару лет не вспомнят о GD - плевать, к тому времени уже гиганты подтянутся. Микрочип вроде уже вот-вот, ST тоже собирается и т.д. Зато, благодаря GD есть возможность здесь и сейчас за смешные копейки ознакомится с новой архитектурой, которая так или иначе но, похоже, таки взлетит.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от vaddd

Можете быть уверенным, что этого всего не произойдет

Ну раз какой-то васян на ЛОРе так сказал, то разумеется не произойдёт.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Оно не поэтому не произойдет. А потому что это правило для большинства подобной китайской продукции

vaddd ★☆
()
Ответ на: комментарий от vaddd

Оно не поэтому не произойдет. А потому что это правило для большинства подобной китайской продукции

RISC-V это не китайская продукция. Это годная и работающая альтернатива проприетарному ARM’у и устаревающему MIPS.

Китайцы ARM’ы и MIPS’ы тоже выпускют в железе, от этого ARM и MIPS не становятся китайской продукцией.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Все, что отличается от мирового стандарта де факто - китайская продукция. Которая в любую минуту может перестать или выпускаться или поддерживаться. Как первый день на свете живете

vaddd ★☆
()
Ответ на: комментарий от vaddd

Все, что отличается от мирового стандарта де факто - китайская продукция.

Надо тем кто всякий ARC выпускает, Power и прочую лабуду сказать, что они китайцы, оказывается.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Вы правда не понимаете разницы, или просто из-за глюков характера не можете не препираться? Впрочем вы все равно никуда не будете использовать этот китайский гибрид.

vaddd ★☆
()
Ответ на: комментарий от vaddd

Я его уже использую. :) Один за септиком следит, другой рулит температурой в погребе. Пока полёт нормальный, несмотря на жёсткие условия, глюков не замечено. Так что вполне можно в продакшен пускать. А pin-to-pin compatibility с STM32 позволит легко и непринуждённо заменить GD32VF на STM32 если китайцы загнутся. И наоборот, кстати, тоже.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

stm32 - это стандарт де факто для самых разных разработок по всему миру. А не отличающееся от него китайское поделие с неопределенным будущим. Разупоритесь или пойдем по второму кругу?

vaddd ★☆
()

А периферия у этих контроллеров - точная копия STM-овской? Регистры совпадают? Я имею в виду вот что: если я скопирую код инициализации (без куба/хала/SPL, просто запись в регистры), скажем, USART1 из своего проекта на STM32F103 в проект с GD32VF103, всё заработает? Или есть нюансы?

Beewek ★★
()
Ответ на: комментарий от Beewek

Периферия по функциям аналогична, плюс есть USB host и ещё кое что интересное, а по регистрам различия, разумеется есть. Так что напрямую проект STM32 в GD32V не получится перенести. Если используется библиотека, то будет несколько проще, но тоже придётся что-то поменять.

libopencm3 если допилят или форкнут для RISC-V, то с переносом станет несколько проще.

Stanson ★★★★★
() автор топика
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от vaddd

stm32 - это стандарт де факто для самых разных разработок по всему миру.

Да неужели. Стало быть те, кто NXP LPC предпочитают, например, или вообще TI MSP, то они сразу нестандартные китайцы?

И, кстати, вероятность обнаружить в массово производимых девайсах STM32 до сих пор крайне мала. Так что STM32 не то что на «стандарт де факто» не тянет, но даже хотя бы на «популярный MCU». Такая же штуковина для однодневных поделок или мелких серий чего-то специфического как и GD32V

Разупоритесь или пойдем по второму кругу?

Упорот тут точно не я. Во всяком случае я хотя бы не молюсь на святой STM32.

Stanson ★★★★★
() автор топика
Последнее исправление: Stanson (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.