Revision bf1b0fe00459ecdf4e795bb599928074a170b8d1 (click the page title to view the current version)

TrainingCourses/FTTF/2019-2020/FilPap/index

Changes from bf1b0fe00459ecdf4e795bb599928074a170b8d1 to e964377cbc10347edd9e13d130dafa7d63ef83ac

---
format:markdown
...

# Osobní stránka projektu PRPL12


## Záměr
### Motivace
Příprava podhoubí pro používání RedPitaya jako PID regulátoru pro zpětnovazební řízení na tokamaku GOLEM.  
Zjednodušení práce s hledáním nástrojů a zdrojů nutných pro práci s FPGA na RedPitaya.

### Rešerše
V úvodu řešení se jeví několik možných cest, jak k problému přistoupit. V následujícím výčtu jsou seřazeny podle časové náročnosti provedení  
1. Nalezení existujícího řešení PID regulátoru s Pythonovským rozhraním  
2. Úprava nějakého existujícího řešení  
3. Naprogramování PID regulátoru v HDL (viz dále), napsání Pythonovského rozhraní  

Každý krok zahrnuje navíc vytvoření jednoduché dokumentace, která by uživateli umožnila pracovat s RedPitayou jako PID regulátorem bez nutnosti hlubšího pochopení jakým způsobem funguje.

### <span style="color:red">Red</span>Pitaya
<span style="color:red">Red</span>Pitaya (RP) je jednodeskový počítač, podobně jako Raspberry Pi (RPi), na rozdíl do RPi však kromě běžného ARMového CPU obsahuje navíc FPGA a kromě běžné konektorové výbavy (Ethernernet, USB, GPIO apod.) obsahuje navíc konektory s rychlými (125 nebo 250 MHz, v závislosti na konkrétním modelu) ADC a DAC.  
Kombinace rychlých ADC a DAC a FPGA umožnuje RP využít mj. jako osciloskop, funkční generátor nebo právě jako PID regulátor, kde jako regulační obvod funguje vhodně naprogramované FPGA. 

#### FPGA
**F**ield-**P**rogramable **G**ate **A**rray neboli česky progamovatelné hradlové pole. Jedná se o integrovaný obvod jehož reálné propojení může uživatel naprogramovat sám, programování pak efektivně odpovídá sestavování digitálního obvodu z jednotlivých hradel, případně modulů, a provádí se v některém jazyku pro popis hardwaru (hardware description language - HDL). Nejrozšířenějšími HDL jsou Verilog a VHDL (VHSIC Hardware Description Language)

### Modely <span style="color:red">Red</span>Pitaya dostupné na tokamaku GOLEM
U tokamaku GOLEM jsou dostupné dva modely RedPitaya - STEMlab 125-10 a SIGNALlab 250-12. Již z názvu je možné vyčíst, že STEMlab obsahuje 125MHz DAC a ADC s bitovou hloubkou 10 bitů a SIGNALlab 250MHz DAC a ADC s hloubkou 12 bitů.
[Srovnání modelů RedPitaya](https://redpitaya.readthedocs.io/en/latest/developerGuide/hardware/compares/vs.html)

### PID regulátor
PID regulátor (v angličtině controller) je prvek používaný pro zpětnovazební řízení procesů.

[//]: # (Na uplny zacatek dam lehce popis FPGA, jak to funguje a co to umoznuje a pak jak ma RedPitaya usnadnovat praci s FPGA. Pak popisu, jak by slo fungovat s PyRPL a pak budu psat, ze ta knihovna je rozbita, dal pridam jak jsem si hral s Verilogem a Xilinx softwarem a u toho jsem zjistil, ze PID jadra uz jsou v RP naprogramovana a ze staci je "jen" vhodne propojit se vstupy a vystupy a dat jim povel k praci. )

## Logbook 

#### 24.10.2019 - 31.10.2019?

První práce s Pythonovskou knihovnou PyRPL, která by měla umožnit pracovat s Red Pitayou, aniž by bylo nutné učit se nějaký jazyk pro popis hardware, např. Verilog. Python je navíc mezi "fúzaři" obvykle často používaný a tedy implementace bude snadno pochopitelná pro případné následovníky. Bohužel PyRPL neumožňuje  práci s derivačním členem PID regulátoru na RP, ale už to, že je derivační člen explicitně zmíněn byl jasný signál, že RP již má implementované PID regulátory.

#### Březen 2022


#### Září 2022  
Trigger půjde udělat tak, že se udělá sebrání dat a zároveň se tato data proženou PID regulátorem.
Trigger půjde udělat tak, že se udělá sebrání dat osciloskopem a zároveň se tato data proženou PID regulátorem. (Možná by to šlo přes acquire a předtím jen nastavit hodnoty PID regulátoru.)

#### 10.9.2022  
**Konečně jsem pochopil, jak utilita** `monitor` **ovládá oranžové LED diody na SIGNALlab 250-12.** A tím se přiblížil k pochopení tabulky [Register Map](https://redpitaya.readthedocs.io/en/latest/developerGuide/software/build/fpga/regset_common.html),  
která popisuje adresy jednotlivých registrů, které ovládají FPGA. Verze *v* Register Map musí odpovídat obrazu verze fpga_*v*.bit.  

Popis ovládání LED diod je následující: Na RP je 8 oranžových LEDek, to znamená, že je možné z nich vytvořit $2^8=256$ různých kombinací zapnuto/vypnuto.  
Předchozí věta začne dávat dobrý smysl, když dále řeknu, že diody ovládá **1** registr do něhož je možné zapsat právě jedno číslo. Je to tedy poměrně  
neituitivní přístup, kdy není možné ovládat každou jednu LED diodu zvášť, ale vždy se nastavují najednou všechny diody (třebaže stav některých se nezmění).

#### 11.9.2022
Kompilace scope+pid přímo na SIGNALlab.  
Scope+pid je jedna z apps-free aplikací, které je možné nalézt (zde)[https://github.com/RedPitaya/RedPitaya/tree/master/apps-free]. Měla by poskytovat
funkckonalitu osciloskopu a pid regulátoru. Uživatelské rozhraní je v prohlížeči, pro integraci do ovládání výboje na GOLEMu by bylo dobré mít spíš 
spustitelný soubor a ovládaní z příkazové řádky.

## Závěrečný report (třeba dle [IMRAD stylu](https://en.wikipedia.org/wiki/IMRAD) )
(nejhodnotnější část práce)

## Co dál (pro následovatele)

## Reference








Pozn: na Golem wiki musí být k dispozici všechny použité materiály pro tvorbu reportu tak, aby vaši následovníci mohli jednoduše zreprodukovat všechny vaše analýzy. Skripty, tabulky v Excelu atp.