 Now we are starting with example for STEM32F7 discovery kit. HENZO Session is split into three parts. Firstly, generate new projects from QPID tool QBIMX perspective. Secondly, implement a and test quad SPI functionality like init, read, write and erase. Third part is modifying existing project with quad SPI driver to external flash loader. For saving developers time, we decide to create public storage for memory drivers. Idea is that if you have a new hardware you can visit public storage and check whether someone else already created driver for your memory. If so, you can easily download it and use it in your system. But if you do not find the driver, you can implement it by your own and if you are so kind, you can upload it to public storage for saving others time. First step of HENZO is to create QPID project. So please launch the QPID tool, click to new STEM32 project and fill STEM32F769 in target selector. Then write project name and set location of project. Quad SPI interface is fully configurable. STEM32 supports single dual and quad mode for bank 1 or bank 2. How we should set it up? In this picture you can see difference between setups. Single dual quad SPI modes use different number of data lines. If you use dual bank, there is also option for chip select selection in configuration. In our case, it means STEM32F7 disco board, we have one memory with quad lines. Another important part is pin assignment. You need your schematic and define right pin placement. In Cubemix perspective you can remap pin to different GPIO by pressing CTRL and left mouse on pin. Next part is setting of clock tree. Clock deviation needs to be considerate when calculating memory timing. In the picture you can see maximum frequency clock settings. It allows us to reach maximum performance. As a source of clock you can select HSE if available but it is not mandatory. Let's move to quad SPI configuration. For this part we need memory data sheet where we can find quad SPI timing. First parameter is clock press scalar. If we want to run quad SPI at 72 MHz there is a formula inside how to calculate press scalar value for such frequency. Formula is HAB clock divided by press scalar value plus 1. Fifth threshold mainly depends on your application. If MCU has a lot of task to do, fifth threshold can be triggered soon. Otherwise if MCU handle only quad SPI data fifth threshold can never occur. Fifth threshold flag is set as soon as there are 5 or more 3 bytes available to be written to the fifth. Sampling shifting may be needed with bad PCB design. It delays data sampling by half a cycle. Flash size must be configured in line with the memory. Equation is on next slide. Chip select time is a value from memory data sheet. As you can see there is 4 nanoseconds in our data sheet. If quad SPI runs at 72 MHz it means one cycle. Here you can see calculation from flash size and we are sharing table with most used memory size. Ok then if we have all quad SPI parameters filled in we should generate a project. Before generation we have to enable checkbox generate peripheral initialization as pair of C and header. Because we want to create separated quad SPI drivers in quad SPI.c file. After that we can generate a code with code generation button.