Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:examples:communication:uart [2015/02/19 15:42] raivo.sellet:examples:communication:uart [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~+<pagebreak>
 ====== Jadaliides UART ====== ====== Jadaliides UART ======
  
-//Vajalikud teadmised: [HW] [[et:hardware:homelab:controller]], [HW] [[et:hardware:homelab:combo]], [AVR] [[et:avr:usart]], [LIB] [[et:software:homelab:library:usart]]// +//Vajalikud teadmised:  
 +[HW] [[et:hardware:homelab:controller]], [HW] [[et:hardware:homelab:combo]],  
 +[AVR] [[et:avr:usart]],  
 +[LIB] [[et:software:homelab:library:usart]], \\ 
 +[LIB] [[et:software:homelab:library:module:lcd_graphic]] //
  
 ===== Teooria ===== ===== Teooria =====
Line 15: Line 18:
 Peale kaadri struktuuri on veel üks tähtis parameeter - see on boodikiirus (inglise keeles //baud rate//), millega määratakse edastatavate sümbolite arv ühes sekundis. Bood näitab nimelt sümbolite arvu. UART puhul on 1 bood aga 1 bitt ja seepärast kaadri juures bittidest saigi räägitud. Põhimõtteliselt võib andmete edastamiseks kasutada ükskõik millist boodikiirust, kuid on olemas hulk üldkasutavaid boodikiirusi, mida tasub kasutada. Näiteks: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115200 bps. Peale kaadri struktuuri on veel üks tähtis parameeter - see on boodikiirus (inglise keeles //baud rate//), millega määratakse edastatavate sümbolite arv ühes sekundis. Bood näitab nimelt sümbolite arvu. UART puhul on 1 bood aga 1 bitt ja seepärast kaadri juures bittidest saigi räägitud. Põhimõtteliselt võib andmete edastamiseks kasutada ükskõik millist boodikiirust, kuid on olemas hulk üldkasutavaid boodikiirusi, mida tasub kasutada. Näiteks: 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115200 bps.
  
-[{{  :examples:communication:comm_hyperterminal.png?250|HyperTerminal aken}}] +[{{ :et:examples:communication:rs232:usb-serial_tn.jpg?200|USB - RS-232 muundur}}] 
-Arvutites kasutatakse UARTi RS-232 liideses. RS-232 on füüsilise andmesideliidese standard, mida kasutatakse binaarandmete edastamiseks. Standard on kasutusel peamiselt arvutite jadaportides, mida kutsutakse kõnekeeles ka „COM“ portideks. Tänapäeval on RS-232 suures osas asendunud USB liidesega, kuid oma lihtsuse tõttu kasutatakse hobirakendustes RS-232 edukalt edasi, eriti veel siis, kui on olemas USB - RS-232 muundurid. RS-232 standard määrab ära pistikud, elektrilised parameetrid ja signaalide tähenduse, kuid mitte protokolli. Kuna UART on enamasti üks perifeeriamoodul mikrokontrolleris, mille digitaalsed sisendid-väljundid ei vasta RS-232 elektrilistele parameetritele, siis omavahel viiakse need kokku spetsiaalsete nivoomuunduritega. Üks tuntumaid RS-232 ja TTL/CMOS vahelisi nivoomuundureid on näiteks MAX232.+Peaaegu kõigil mikrokontrolleritel eksisteerib üks või enam UART liidest ehk perifeeriat. UART standard ei määra kindlaks signaalide pinget ja see sõltub mikrokontrolleri toitepingest, mis on tavaliselt kas 3,3 V või 5,0 V. 5,0 V toitepingel töötava mikrokontrolleri signaalid vastavad TTL/CMOS standardile. Kui UART protokolliga on vaja ühendada eraldiseisvaid või kaugelasuvaid seadmeid, siis kasutatakse füüsilist standardit nimega RS-232, milles on kasutusel pinged kuni -15 V ja +15 V ning milles on ära määratud ka pistiku tüüp, milleks on DB-9. RS-232 standard on kasutusel peamiselt arvutite jadaportides, mida kutsutakse kõnekeeles ka „COM“ portideks. Selleks, et arvutit mikrokontrolleriga ühendada kasutatakse nivoomuundurit mis teisendab TTL/CMOS signaalid RS-232 pingetele ja vastupidi. Tänapäeval on RS-232 suures osas asendunud USB liidesega, kuid oma lihtsuse tõttu kasutatakse hobirakendustes RS-232 edukalt edasi sedaenamet on olemas USB - RS-232 muundurid. Üks RS-232 eelis USB ees on ka selle kümnetes kordades pikem leviulatus kaablis.
  
 ===== Praktika ===== ===== Praktika =====
  
-Kodulabori Kombo moodulil on välja toodud väline UART liides (//ExtUART//). Selleks, et antud port arvutiga ühendada on vaja kasutada TTL UART<->RS232 või TTL UART<->USB ülemineku kaablit.+Kodulabori Kombomoodulil on välja toodud väline UART liides (//ExtUART//). Selleks, et antud port arvutiga ühendada on vaja kasutada TTL UART<->RS232 või TTL UART<->USB ülemineku kaablit.
  
 Näiteprogrammi testimiseks on vaja mõnda terminal tüüpi tarkvara, nt HyperTerminal (Windows XP). Linux operatsiooniga arvutitel võib kasutada programmi //minicom//. Kui terminal on mikrokontrolleri tööle panemise ajal avatud, tekib ekraanile tervitussõnum. Aknas sisestatud tähed kuvatakse LCD ekraanil. Klahvi //Enter// vajutus muudab rida LCD ekraanil. Näiteprogrammi testimiseks on vaja mõnda terminal tüüpi tarkvara, nt HyperTerminal (Windows XP). Linux operatsiooniga arvutitel võib kasutada programmi //minicom//. Kui terminal on mikrokontrolleri tööle panemise ajal avatud, tekib ekraanile tervitussõnum. Aknas sisestatud tähed kuvatakse LCD ekraanil. Klahvi //Enter// vajutus muudab rida LCD ekraanil.
Line 50: Line 53:
  lcd_gfx_write_string("Ootan teadet");  lcd_gfx_write_string("Ootan teadet");
  lcd_gfx_goto_char_xy(0, row);  lcd_gfx_goto_char_xy(0, row);
- 
  // Arvutile tere ütlemine  // Arvutile tere ütlemine
  usart_send_string(port, "Tere, kirjuta midagi!\r\n");  usart_send_string(port, "Tere, kirjuta midagi!\r\n");
  
  // Lõputu tsükkel  // Lõputu tsükkel
- while (true)+ while (1)
  {  {
- // Jadaliidesest märgi lugemine + if (usart_try_read_char(port, &c)) // Jadaliidesest märgi lugemine
- if (usart_try_read_char(port, &c))+
  {  {
- // Kas tegu on reavahetuse märgiga? + if (c == '\r'// Kas tegu on reavahetuse märgiga?
- if (c == '\r')+
  {  {
  // Rea vahetamine  // Rea vahetamine
  row = 1 - row;  row = 1 - row;
- 
  // Rea tühjendamine eelmisest teatest  // Rea tühjendamine eelmisest teatest
  lcd_gfx_clear_line(row);  lcd_gfx_clear_line(row);
et/examples/communication/uart.1424360523.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0