Operácie

Mikropočítačové systémy (MIPS): Rozdiel medzi revíziami

Z SensorWiki

(Vytvorená stránka „Na praktické precvičenie programovania mikropočítačových systémov budete potrebovať: * Vývojovú dosku s mikroprocesorom AVR ATmega328P, napríklad ** Arduino…“)
 
(Prednášky)
 
(114 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
Na praktické precvičenie programovania mikropočítačových systémov budete potrebovať:
+
<div style="float:right">__TOC__</div>
  
* Vývojovú dosku s mikroprocesorom AVR ATmega328P, napríklad
+
'''Ročník:''' 2.Bc Mechatronika <BR>
** Arduino Nano
+
'''Semester:''' letný       <BR>
** Arduino Uno a pod.
+
'''Rozsah:''' 2-2 (z,s)                    <BR>
* Univerzálnu zapojovaciu doštičku
+
'''Prednášateľ:''' Ing. Štefan Chamraz,PhD. a Ing. Richard Balogh, PhD.<BR>
* Prepojovacie drôtiky
+
'''Odkaz na AIS''':  B_MIPS - [https://is.stuba.sk/katalog/syllabus.pl?predmet=353564 Distribuované vnorené počítačové systémy]
* LCD displej
 
* 2-3 LED diódy, odpory, tlačítka, potenciometer alebo trimer
 
  
Prosím, vyplňte nám nasledovný dotazník, v ktorom sa vyjadrite, či dané komponenty máte doma, zaobstaráte si ich sami, alebo budete požadovať zapožičanie od nás.  
+
 
Okrem úloh na cvičení budete robiť aj samostatný projekt, takže ak máte nejakú predstavu, zaobstarajte si vopred aj potrebné komponenty na projekt.
+
== Informácie a novinky ==
 +
 
 +
* Na cvičeniach budeme používať komponenty v laboratóriu, ale ak chcete pracovať aj doma, v opise stavebnice [[MIPS Kit]] nájdete zoznam všetkých použitých komponentov. Ak ich nemáte, ale chcete pracovať aj doma, tak si ich môžete buď zapožičať od školy, alebo si môžete od firmy TechFun zakúpiť [https://techfun.sk/produkt/istrobot-kit-2023/ špeciálny kit], ktorý obsahuje všetky potrebné komponenty za cenu  32,-€ + poštovné.<BR><BR>
 +
 
 +
== Prednášky ==
 +
 
 +
V stredu o 8:00
 +
 
 +
# '''Úvod.''' Architektúry procesorov, rozdiel mikroprocesor - mikropočítač, vstupy a výstupy.<BR>[https://senzor.robotika.sk/mips/pdf/01_prednaskaMIPS.pdf Slajdy z prednášky]<BR>Online: https://microchipdeveloper.com/8avr:ioports
 +
# Pamäťové priestory. Dokončenie I/O. Digitálne vtupy. Ochrana. Klávesnica. <BR>[https://senzor.robotika.sk/mips/pdf/02_prednaskaMIPS.pdf Slajdy z prednášky]<BR>On-line: https://microchipdeveloper.com/8avr:memory
 +
# Sériové komunikačné rozhranie I. - USART.<BR>[https://senzor.robotika.sk/mips/pdf/03_prednaskaMIPS.pdf Slajdy z prednášky]
 +
# Binárne vstupy <BR>[https://senzor.robotika.sk/mips/pdf/04_prednaskaMIPS.pdf Slajdy z prednášky]<BR>On-line: https://microchipdeveloper.com/8avr:memory
 +
# Zabudované počítadlá (čítače) a časovače<BR>[https://senzor.robotika.sk/mips/pdf/05_prednaskaMIPS.pdf Slajdy z prednášky] + [http://senzor.robotika.sk/mmp/2013/prednaska04.pdf Text]
 +
# Prerušenia.  Meranie frekvencie. Počítadlá a časovače s prerušeniami.<BR>[https://senzor.robotika.sk/mips/pdf/06_prednaskaMIPS-1.pdf Slajdy z prednášky I.] a [https://senzor.robotika.sk/mips/pdf/06_prednaskaMIPS-2.pdf Slajdy z prednášky II.]
 +
# Číslicovo-analógový prevodník (DAC) a šírkovo modulovaný výstup (PWM).<BR>[https://senzor.robotika.sk/mips/pdf/07_prednaskaMIPS.pdf Slajdy z prednášky]
 +
# Analógovo číslicový prevodník (ADC).<BR>[http://senzor.robotika.sk/mmp/prednaska10.pdf Slajdy z prednášky]<BR>------------------<BR>
 +
# Zabudované periférne obvody: I2C zbernica.<BR>[http://senzor.robotika.sk/mmp/2013/prednaska09.pdf Text], [http://senzor.robotika.sk/mmp/2013/prednaska09OBR.pdf Slajdy z prednášky]
 +
# Zabudované počítadlá (čítače) a časovače II - PWM, využitie ako D/A prevodník. <BR>[http://senzor.robotika.sk/mmp/2013/prednaska05OBR.pdf Slajdy z prednášky] + [http://senzor.robotika.sk/mmp/2013/prednaska05.pdf Text]
 +
# Inteligentné periférie - LCD zobrazovač.  <BR>[http://senzor.robotika.sk/mmp/prednaska02.pdf Slajdy z prednášky]
 +
# Návrh parametrov PWM signálu a spracovanie PWM signálu.<BR>[http://senzor.robotika.sk/mmp/2013/prednaska06.pdf Slajdy z prednášky], [http://senzor.robotika.sk/mmp/2013/prednaska06a.pdf + Článok], [http://senzor.robotika.sk/mmp/SMT160.pdf + SMT160 datasheet]
 +
# Obvody pripojiteľné na I2C. <BR> [http://senzor.robotika.sk/mmp/2013/prednaska10.pdf Slajdy z prednášky], [http://senzor.robotika.sk/mmp/2013/prednaska10RTC.pdf RTC - hodiny reálneho času].
 +
<FONT Color="grey"><BR><BR><BR></FONT>
 +
 
 +
== Cvičenia ==
 +
 
 +
* [[MIPS Kit]] - opis komponentov na cvičenia<BR><BR>
 +
 
 +
# [[MIPS Úvodné cvičenie]]
 +
# [[Programovanie AVR v jazyku C]] -- LEDky a tlačítka
 +
# [[Vstupy a výstupy AVR]] -- oneskorenia a ošetrenie zákmitov
 +
# [[Sériové komunikačné rozhranie]] + [[Sériové rozhranie a Processing|Bonus pre pokročilých]]
 +
# '''Timer 1:''' [[Počítadlá a časovače AVR]],  '''Timer 0:''' [[Generovanie tónov]]
 +
# [[Prerušenia]]
 +
# [[Číslicovo-analógový prevodník (DAC)]] - Šírkovo modulovaný signál PWM
 +
# [[A/D_prevodník|Analógovo-číslicový prevodník]]<BR><BR>
 +
# [[Zbernica I2C]]
 +
# [[Meranie dĺžky impulzu 2]] -- s prerusenim, bez neho, meranie jednej periody, meranie poctu impulzov
 +
# [[LCD displej s radičom HD44780]] - inteligentné periférie
 +
# [[Riadenie sústavy 1. rádu‎‎]] alebo [[RC filter]]
 +
 
 +
== Semestrálny projekt ==
 +
 
 +
*  '''[[MIPS Projekt]]'''<BR><BR>
 +
 
 +
== Podmienky  absolvovania ==
 +
 
 +
# Znalosť odprezentovanej problematiky
 +
# Získanie zápočtu z cvičení
 +
#* aktívne absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť)
 +
#* vypracovanie  úloh z cvičení
 +
#* vypracovanie projektu - programu a dokumentácie k nemu
 +
# Získanie potrebného počtu bodov na skúške (min. 50% písomky)
 +
 
 +
 
 +
 
 +
== Učitelia ==
 +
 
 +
* Ing. Štefan Chamraz,PhD. (stefan.chamraz @ stuba.sk)
 +
* Ing. Richard Balogh, PhD. (richard.balogh @ elf.stuba.sk)
 +
<!--
 +
* Ing. Matej Rábek, PhD. (matej.rabek @ elf.stuba.sk)
 +
-->
 +
 
 +
== Literatúra a zdroje ==
 +
 
 +
Katalógové listy použitých obvodov (dostupné na internete).
 +
Okrem toho je literatúra vo forme odkazov pri každom cvičení.
 +
 
 +
'''Knihy'''
 +
* Elliot Williams: ''[https://www.oreilly.com/library/view/make-avr-programming/9781449356484/ Make: AVR Programming]''. Learning to Write Software for Hardware. O'Reilly Media, 250 pages, 2014.
 +
* Friedrich Plötzeneder, Andreas Plötzeneder: ''[https://www.scribd.com/book/282872103/Powerprojekte-mit-Arduino-und-C-Schluss-mit-dem-frustrierenden-Ausprobieren-von-Code-Schnipseln Powerprojekte mit Arduino und C]''. (German Edition) Franzis Verlag, 1. ed., 241 pages, 2013.
 +
* Michael Margolis, Brian Jepson, Nicholas Robert Weldin: ''[https://www.oreilly.com/library/view/arduino-cookbook-3rd/9781491903513/ Arduino Cookbook]''., 3rd Edition. O'Reilly Media, Inc., 800 pages, 2020.
 +
* Ondrej Závodský: ''[https://svetelektro.com/Download/avr_kniha.pdf Programujeme AVR v jazyku C].'' Vlastným nákladom. Dostupné online. 2012.
 +
 
 +
 
 +
 
 +
'''Ostatné'''
 +
 
 +
* Microchip on-line resources https://microchipdeveloper.com/8avr:start ku vsetkemu okolo AVR
 +
* Arduino UNO pinout diagram (svg, teda sa dá zväčšovať) https://upload.wikimedia.org/wikipedia/commons/c/c9/Pinout_of_ARDUINO_Board_and_ATMega328PU.svg
 +
* Arduino UNO V3 [http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.pdf Pinout diagram]
 +
* Arduino UNO [https://www.arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf Schematic diagram]
 +
* Arduino Nano http://marcusjenkins.com/wp-content/uploads/2014/06/nano.pdf
 +
* Datasheet obvodu <S>Atmel</S> Microchip [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf ATmega328P]
 +
* Yahya Tawil: ''[https://www.allaboutcircuits.com/technical-articles/understanding-arduino-uno-hardware-design/ Understanding Arduino UNO Hardware Design]''. Technical Article, AllAboutCircuits.com. 2016
 +
 
 +
'''Jazyk C pre vnorené systémy'''
 +
 
 +
* Michael Barr: [https://barrgroup.com/embedded-systems/books/programming-embedded-systems Programming Embedded Systems in C and C++]. O'Reilly Media; 1999.
 +
* Michael Barr: [https://barrgroup.com/sites/default/files/barr_c_coding_standard_2018.pdf Embedded C Coding Standard]. Barr Group Inc. 2018
 +
* Jason Sachs: [https://www.embeddedrelated.com/showarticle/723.php Important Programming Concepts (Even on Embedded Systems) Part V: State Machines]. Embedded Related web, 2015.
 +
 
 +
 
 +
=== Utilitky a užitočnosti ===
 +
 
 +
* AVR Calculator by Kevin Rosenberg http://radio-hobby.org/modules/tdmdownloads/singlefile.php?cid=8&lid=97 alebo http://web.archive.org/web/20130713104554/http://www.b9.com/elect/avr/kavrcalc/index.html
 +
* AVR Calc by Brandon Roberts https://sourceforge.net/projects/avrcalc/
 +
* AVRCalc by Jack Tidwell https://www.avrfreaks.net/forum/avrcalc-update
 +
* Obrázky by Alberto Piganti (phigixxx) https://github.com/bqlabs/ABC/tree/master/Images
 +
 
 +
 
 +
=== Obsadenie pinov Arduino UNO ===
 +
 
 +
{| class="wikitable"
 +
|- style="font-weight:bold; text-align:center; font-family:Arial, Helvetica, sans-serif !important;;"
 +
! colspan="3" style="background-color:#96fffb;" | Port B
 +
! style="font-weight:normal; text-align:left;" |
 +
! colspan="3" style="background-color:#fcff2f;" | Port C
 +
! style="font-weight:normal; text-align:left;" |
 +
! colspan="3" style="background-color:#D58CE0;" | Port D
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D8
 +
| style="font-weight:bold; background-color:#96fffb;" | PB0
 +
| style="font-weight:bold;" | ICP1 / CLK0
 +
|
 +
| style="background-color:#fafad3;" | D14
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC0
 +
| style="font-weight:bold;" | A0
 +
|
 +
| style="background-color:#ffccff;" | D0
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD0
 +
| style="font-weight:bold;" | RxD
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D9
 +
| style="font-weight:bold; background-color:#96fffb;" | PB1
 +
| style="font-style:italic;" | lcd D0
 +
|
 +
| style="background-color:#fafad3;" | D15
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC1
 +
| style="font-weight:bold;" | A1
 +
|
 +
| style="background-color:#ffccff;" | D1
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD1
 +
| style="font-weight:bold;" | TxD
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D10
 +
| style="font-weight:bold; background-color:#96fffb;" | PB2
 +
| style="font-style:italic;" | lcd D1
 +
|
 +
| style="background-color:#fafad3;" | D16
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC2
 +
| style="font-style:italic;" | sw03
 +
|
 +
| style="background-color:#ffccff;" | D2
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD2
 +
| style="font-style:italic;" | lcd RS
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D11
 +
| style="font-weight:bold; background-color:#96fffb;" | PB3
 +
| style="font-style:italic;" | lcd D2
 +
|
 +
| style="background-color:#fafad3;" | D17
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC3
 +
| style="font-style:italic;" | led02
 +
|
 +
| style="background-color:#ffccff;" | D3
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD3
 +
| style="vertical-align:middle;" | lcd R/W (?)
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D12
 +
| style="font-weight:bold; background-color:#96fffb;" | PB4
 +
| style="font-style:italic;" | lcd D3
 +
|
 +
| style="background-color:#fafad3;" | D18
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC4
 +
| style="font-weight:bold;" | SDA
 +
|
 +
| style="background-color:#ffccff;" | D4
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD4
 +
| style="font-style:italic;" | lcd E
 +
|- style="font-family:Arial, Helvetica, sans-serif !important;;"
 +
| style="background-color:#CFF;" | D13
 +
| style="font-weight:bold; background-color:#96fffb;" | PB5
 +
| style="font-weight:bold;" | LED
 +
|
 +
| style="background-color:#fafad3;" | D19
 +
| style="vertical-align:middle; background-color:#fffe65;" | PC5
 +
| style="font-weight:bold;" | SCL
 +
|
 +
| style="background-color:#ffccff;" | D5
 +
| style="vertical-align:middle; font-weight:bold; background-color:#d58ce0;" | PD5
 +
| style="font-weight:bold;" | T1 / PWM
 +
|-
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
|
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;; background-color:#ffccff;" | D6
 +
| style="vertical-align:middle; font-weight:bold; font-family:Arial, Helvetica, sans-serif !important;; background-color:#d58ce0;" | PD6
 +
| style="font-style:italic; font-family:Arial, Helvetica, sans-serif !important;;" | sw01
 +
|-
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
|
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;;" |
 +
| style="font-family:Arial, Helvetica, sans-serif !important;; background-color:#ffccff;" | D7
 +
| style="vertical-align:middle; font-weight:bold; font-family:Arial, Helvetica, sans-serif !important;; background-color:#d58ce0;" | PD7
 +
| style="font-style:italic; font-family:Arial, Helvetica, sans-serif !important;;" | sw02
 +
|}
 +
 
 +
 
 +
 
 +
 
 +
=== Predchodcovia predmetu ===
 +
 
 +
* MMP [[Monolitické mikropočítače]] (1998-2010) pozri všetky stránky k predmetu [[:Category: MMP]]
 +
* DVPS - [[Distribuované vnorené počítačové systémy]] (2010-2014) pozri  všetky stránky k predmetu [[:Category: DVPS]]
 +
* Všetky nové stránky k predmetu [[:Category: MIPS]]
 +
 
 +
=== Poznamky a ToDo's ===
 +
 
 +
* Ako funguje napájanie Arduina: https://www.programmingelectronics.com/power-arduino/
 +
* Podrobnosti o AD prevodniku a jeho testovanie
 +
** http://www.gammon.com.au/adc
 +
 
 +
 
 +
[[Category: AVR]][[Category: MIPS]]

Aktuálna revízia z 08:46, 4. apríl 2024

Ročník: 2.Bc Mechatronika
Semester: letný
Rozsah: 2-2 (z,s)
Prednášateľ: Ing. Štefan Chamraz,PhD. a Ing. Richard Balogh, PhD.
Odkaz na AIS: B_MIPS - Distribuované vnorené počítačové systémy


Informácie a novinky

  • Na cvičeniach budeme používať komponenty v laboratóriu, ale ak chcete pracovať aj doma, v opise stavebnice MIPS Kit nájdete zoznam všetkých použitých komponentov. Ak ich nemáte, ale chcete pracovať aj doma, tak si ich môžete buď zapožičať od školy, alebo si môžete od firmy TechFun zakúpiť špeciálny kit, ktorý obsahuje všetky potrebné komponenty za cenu 32,-€ + poštovné.

Prednášky

V stredu o 8:00

  1. Úvod. Architektúry procesorov, rozdiel mikroprocesor - mikropočítač, vstupy a výstupy.
    Slajdy z prednášky
    Online: https://microchipdeveloper.com/8avr:ioports
  2. Pamäťové priestory. Dokončenie I/O. Digitálne vtupy. Ochrana. Klávesnica.
    Slajdy z prednášky
    On-line: https://microchipdeveloper.com/8avr:memory
  3. Sériové komunikačné rozhranie I. - USART.
    Slajdy z prednášky
  4. Binárne vstupy
    Slajdy z prednášky
    On-line: https://microchipdeveloper.com/8avr:memory
  5. Zabudované počítadlá (čítače) a časovače
    Slajdy z prednášky + Text
  6. Prerušenia. Meranie frekvencie. Počítadlá a časovače s prerušeniami.
    Slajdy z prednášky I. a Slajdy z prednášky II.
  7. Číslicovo-analógový prevodník (DAC) a šírkovo modulovaný výstup (PWM).
    Slajdy z prednášky
  8. Analógovo číslicový prevodník (ADC).
    Slajdy z prednášky
    ------------------
  9. Zabudované periférne obvody: I2C zbernica.
    Text, Slajdy z prednášky
  10. Zabudované počítadlá (čítače) a časovače II - PWM, využitie ako D/A prevodník.
    Slajdy z prednášky + Text
  11. Inteligentné periférie - LCD zobrazovač.
    Slajdy z prednášky
  12. Návrh parametrov PWM signálu a spracovanie PWM signálu.
    Slajdy z prednášky, + Článok, + SMT160 datasheet
  13. Obvody pripojiteľné na I2C.
    Slajdy z prednášky, RTC - hodiny reálneho času.




Cvičenia

  • MIPS Kit - opis komponentov na cvičenia

  1. MIPS Úvodné cvičenie
  2. Programovanie AVR v jazyku C -- LEDky a tlačítka
  3. Vstupy a výstupy AVR -- oneskorenia a ošetrenie zákmitov
  4. Sériové komunikačné rozhranie + Bonus pre pokročilých
  5. Timer 1: Počítadlá a časovače AVR, Timer 0: Generovanie tónov
  6. Prerušenia
  7. Číslicovo-analógový prevodník (DAC) - Šírkovo modulovaný signál PWM
  8. Analógovo-číslicový prevodník

  9. Zbernica I2C
  10. Meranie dĺžky impulzu 2 -- s prerusenim, bez neho, meranie jednej periody, meranie poctu impulzov
  11. LCD displej s radičom HD44780 - inteligentné periférie
  12. Riadenie sústavy 1. rádu‎‎ alebo RC filter

Semestrálny projekt

Podmienky absolvovania

  1. Znalosť odprezentovanej problematiky
  2. Získanie zápočtu z cvičení
    • aktívne absolvovanie všetkých cvičení (max. 1 ospravedlnená neúčasť)
    • vypracovanie úloh z cvičení
    • vypracovanie projektu - programu a dokumentácie k nemu
  3. Získanie potrebného počtu bodov na skúške (min. 50% písomky)


Učitelia

  • Ing. Štefan Chamraz,PhD. (stefan.chamraz @ stuba.sk)
  • Ing. Richard Balogh, PhD. (richard.balogh @ elf.stuba.sk)

Literatúra a zdroje

Katalógové listy použitých obvodov (dostupné na internete). Okrem toho je literatúra vo forme odkazov pri každom cvičení.

Knihy


Ostatné

Jazyk C pre vnorené systémy


Utilitky a užitočnosti


Obsadenie pinov Arduino UNO

Port B Port C Port D
D8 PB0 ICP1 / CLK0 D14 PC0 A0 D0 PD0 RxD
D9 PB1 lcd D0 D15 PC1 A1 D1 PD1 TxD
D10 PB2 lcd D1 D16 PC2 sw03 D2 PD2 lcd RS
D11 PB3 lcd D2 D17 PC3 led02 D3 PD3 lcd R/W (?)
D12 PB4 lcd D3 D18 PC4 SDA D4 PD4 lcd E
D13 PB5 LED D19 PC5 SCL D5 PD5 T1 / PWM
D6 PD6 sw01
D7 PD7 sw02



Predchodcovia predmetu

Poznamky a ToDo's