Intermediate FPGA and RTOS class and sharing


#1

I want to start this class next Thursday and Saturday.

How do I add this to the VHS calendar?

This class and sharing will run twice a week for one month, perhaps two months.

Saturday March 11th until April 15th
14:30 until 17:00
Thursday March 9th until April 13th
19:00 until 21:30

Intermediate FPGA and RTOS class and sharing.
A basic knowledge of C, git, Linux and Windows is required.
One of the objectives of this course is to teach people the ART of
embedded development and open job opportunities.

I will only be using the overhead projector one day a week.
I will share my boards with others so that they can practice.

Topics

  1. Using Matlab to program Xilinx Zynq
  • Version dependence and blinking led example.
  • After we can discuss other projects.
  1. Open Source FPGA IP
  • A discussion of what is available, CSI-2 as an example.
  1. RTOS Introduction
  • Chibios, Zephyr, MyNewt
  • I only have boards for zephyr and mynewt
  • Also compare with FreeRTOS
  1. RTOS Comparison of HALs

  2. RTOS write a device HAL

  3. RTOS migrate a HAL structure from one RTOS to another


#2

Hello, I m just discovering what s FPGA and that`s sound very helpfull for me to learn about it, is this class available for beginner ?


#3

I am sure anyone with basic knowledge will be fine


#4

Great! Count me in. I have already marked my calendar.

If i (or other students) would like to acquire hardware, could you please list what hardware you plan to use for each class component?

I may have some hardware capable of running Chibios. I’ll take a look today.

Thank you for offering this class!


#5

I have Matlab solution working on the Zedboard.
We may be able to make it work for other Zynq boards, but Matlab is the most expensive part. I am using 30 day trials for this.
I am not going to recommend investing into a Zedboard, Please use mine until we / you decided on project. I understand this will be a challenge if there are many people who take this class.

The CSI-2 open IP solution requires an open CSI-2 implementation which I have only found and a CSI-2 daughter board.
Choices are
1 ) Parallela P1602-DK02 from digikey and procupine implemented in KiCad.
The Parallela board has more community support.
OpenCL framework, tutorial and examples
https://parallella.org/forums/viewtopic.php?f=18&t=3665

  1. Z-turn Board MYS-7Z020-C-S or MYS-7Z020-C and MY-CAPE001 from http://www.myirtech.com
    The Z-turn Board is cheaper and does not require building a cape / daughter board.
    I am ordering the Z-turn Board,

And board based on the zync 7Z020 is theoretically possible.

The Arrow chameleon96 supports OpenCL
I have made a very STRONG request, at the Linux IoT conference at Portland, for open CSI-2 support to Intel and and Linaro for the Chameleon96. At this time Cyclone V boards require a commercial CSI-2 IP support.


#6

In summary the boards I recommend are
nRF52840-PCA10056
OLIMEXINO-STM32 - but hard to come by

zephyr
nRF52840-PCA10056
This nordic boards supports BLE4.2 and BLE5
other boards
OLIMEXINO-STM32 - cheap :slight_smile:


stm3210c_eval - expensive
stm32373c-eval - expensive

D:\tdwebste\src\zephyr\boards\arm [master]> ls

96b_carbon/ frdm_k64f/ nrf52_pca10040/ qemu_cortex_m3/
96b_nitrogen/ frdm_kw41z/ nucleo_f103rb/ quark_se_c1000_ble/
arduino_101_ble/ hexiwear_k64/ nucleo_f334r8/ sam_e70_xplained/
arduino_due/ mps2_an385/ nucleo_f401re/ stm3210c_eval/
bbc_microbit/ nrf51_blenano/ nucleo_f411re/ stm32373c_eval/
cc3200_launchxl/ nrf51_pca10028/ nucleo_l476rg/ stm32_mini_a15/
curie_ble/ nrf52840_pca10056/ olimexino_stm32/ v2m_beetle/

smart daugher boards for
https://rocketboards.org 96board sub group
https://www.96boards.org/
96B-Nitrogen
96B-Carbon

Chibios
OLIMEXINO-STM32 - cheap :slight_smile:
is in the STM32F103 subtree

D:\tdwebste\src\ChibiOS\demos\STM32 [master]> ls

CMSIS-STM32F407-DISCOVERY/
HAL-STM32F407-DISCOVERY/
NASA-OSAL-STM32F407-DISCOVERY/
NASA-OSAL-STM32F746G-DISCOVERY/
NIL-STM32F051-DISCOVERY/
NIL-STM32F100-DISCOVERY/
NIL-STM32F303-DISCOVERY/
NIL-STM32F373-STM32373C_EVAL/
NIL-STM32F746G-DISCOVERY/
NIL-STM32L011K4-NUCLEO32/
NIL-STM32L152-DISCOVERY/
RT-STM32F030R8-NUCLEO64/
RT-STM32F031K6-NUCLEO32/
RT-STM32F042K6-NUCLEO32/
RT-STM32F051-DISCOVERY/
RT-STM32F070RB-NUCLEO64/
RT-STM32F072-DISCOVERY/
RT-STM32F072RB-NUCLEO64/
RT-STM32F091RC-NUCLEO64/
RT-STM32F100-DISCOVERY/
RT-STM32F103-MAPLEMINI/
RT-STM32F103-OLIMEX_STM32_P103/
RT-STM32F103-OLIMEX_STM32_P103-FATFS/
RT-STM32F103-STM3210E_EVAL-FATFS-USB/
RT-STM32F103RB-NUCLEO64/
RT-STM32F103_INEMO_DISCOVERY/
RT-STM32F107-OLIMEX_P107-LWIP/
RT-STM32F207-DISCOVERY/
RT-STM32F207ZG-NUCLEO144/
RT-STM32F302R8-NUCLEO64/
RT-STM32F303-DISCOVERY/
RT-STM32F303-DISCOVERY-REVC/
RT-STM32F303K8-NUCLEO32/
RT-STM32F303RE-NUCLEO64/
RT-STM32F303ZE-NUCLEO144/
RT-STM32F334-DISCOVERY/
RT-STM32F334R8-NUCLEO64/
RT-STM32F373-STM32373C_EVAL/
RT-STM32F401C-DISCOVERY/
RT-STM32F401RE-NUCLEO64/
RT-STM32F407-DISCOVERY/
RT-STM32F407-DISCOVERY-G++/
RT-STM32F407-OLIMEX_E407-LWIP-FATFS-USB/
RT-STM32F410RB-NUCLEO64/
RT-STM32F411RE-NUCLEO64/
RT-STM32F412ZG-NUCLEO144/
RT-STM32F429-DISCOVERY/
RT-STM32F429ZI-NUCLEO144/
RT-STM32F446RE-NUCLEO64/
RT-STM32F446ZE-NUCLEO144/
RT-STM32F469I-DISCOVERY/
RT-STM32F746G-DISCOVERY/
RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/
RT-STM32F746ZG-NUCLEO144/
RT-STM32F767ZI-NUCLEO144/
RT-STM32F769I-DISCOVERY/
RT-STM32L031K6-NUCLEO32/
RT-STM32L053-DISCOVERY/
RT-STM32L053R8-NUCLEO64/
RT-STM32L073RZ-NUCLEO64/
RT-STM32L152-DISCOVERY/
RT-STM32L152RE-NUCLEO64/
RT-STM32L432KC-NUCLEO32/
RT-STM32L476-DISCOVERY/
RT-STM32L476RG-NUCLEO64/

D:\tdwebste\src\ChibiOS-Contrib\demos [master]> ls .\TIVA

RT-TM4C123G-LAUNCHPAD/ RT-TM4C1294-LAUNCHPAD/ RT-TM4C1294-LAUNCHPAD-LWIP/


#7
  1. Using Matlab to program Xilinx Zync
    Zedboard

  2. Open Source FPGA IP
    The much larger Parallela community makes this board attractive at twice the price of the Z-turn Board.
    Parallela P1602-DK02 from digikey and procupine implemented in KiCad.
    or
    Z-turn Board MYS-7Z020-C-S or MYS-7Z020-C and MY-CAPE001 from http://www.myirtech.com

      1. RTOS
        Bring your STM boards and we will probably use them.

nRF52840-PCA10056
OLIMEXINO-STM32


#8

I’d be interested in taking this class but I would be at a beginner level.

I’m running MAC. I’ve installed GNU Octave and wondering if I can use this instead of Matlab?

Mark


#9

Unfortunately, I am using the Matlab fpga code generator. That will not be supported with Octave.

Honestly the Matlab portion is more of demonstration of what can be done, with the real work to being done with opencl.
This intermediate course has lots of followup for those interested in opencl.
IHMO cyclone has better opencl support, but unfortunately it does not include open source CSI-2.

So I am holding off on this with hopes, intel will bend to support the community and provide open CSI-2.


#10

I’m also interested, I’ll check at work to see if they have a Matlab
license I can borrow. It seems that Matlab from 2014 onwards supports it:


#11

Is there any software (asides from matlab) that we should have for this?


#12

For the fpga we will need Xilinx Vivado.

At this time I have one Zedboard which I know supports Matlab. I should
have a parallella board today which “may” support Matlab.

For the first class bring your laptop. I will be presenting the Matlab
install. And since we may have only one Zedboard, I expect I will need to
let people use my laptop or set up a computer at VHS for this purpose.


#13

Hi,
I would also like to attend this workshop series, Thank you!
Best,
RK


#14

I will be posting notes to wiki later today.

Each week there are 2 classes. If you can make it to 1 class a week, you
should be able to follow.


#15

parallela opencl

https://www.parallella.org/2013/03/08/introduction-to-parallella-and-opencl/


#16

Hello Tim,

Hope you had a good weekend!
The ARM microcontroller board that I have is:

“Tiva C Series: TM4C123G Launchpad Evaluation Kit”,

Manufacturer Part #: EK-TM4C123GXL

Link: http://www.ti.com/tool/ek-tm4c123gxl

Please let me know if this is sufficient for the class: Can be used with a
RTOS?

Thank you!

Best Regards,
RK


#17

Please bring your Tiva board. It is supported under Chibios-Contrib.

It is a good board to bring. It will not have complete support, but it will be good board to work with.


#18

Hi Tim,
Thank you, will bring it.

Best Regards,
RK


#19

Z-turn board should be here early next week. I won’t be able to make it this Thursday, but I’ll be there on Saturday.

Boards I have for RTOS:

  • assortment of STM32Fx
  • EK-TM4C123GXL ( Tiva C TM4C123G with LCD cape )
  • Sitara AM335x starter kit ( designed to run linux/android, 4" inch LCD, resistive touch screen, 2Gb DDR3 configured as 16M x 16 x 8 banks )
  • various NXP, Renesas and Freescale low end boards

#20

https://vanhack.ca/doku.php?id=hacks:tdwebste

course wiki
is a work in progress