<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OTPORNIK &#187; Elektronika</title>
	<atom:link href="http://www.otpornik.com/kategorija/elektronika/feed" rel="self" type="application/rss+xml" />
	<link>http://www.otpornik.com</link>
	<description>Elektronika oko nas</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:21:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Integrisani senzori TRS1722, TRS1755, TRS1766 i TCS230</title>
		<link>http://www.otpornik.com/elektronika/senzor/integrisani-senzori-trs1722-trs1755-trs1766-i-tcs230.html</link>
		<comments>http://www.otpornik.com/elektronika/senzor/integrisani-senzori-trs1722-trs1755-trs1766-i-tcs230.html#comments</comments>
		<pubDate>Thu, 14 Jan 2010 09:15:08 +0000</pubDate>
		<dc:creator>Saša Jovanović</dc:creator>
				<category><![CDATA[Senzori]]></category>

		<guid isPermaLink="false">http://www.otpornik.com/?p=786</guid>
		<description><![CDATA[TRS1722, TRS1755 i TRS1766 senzori proizvođača TAOS (Texas Advanced Optoeletronic Solutions) su visoko osetljivi reflektivni senzori crvene (630 nm), zelene (567 nm) i plave (470 nm) boje, respektivno, koji konvertuju intezitet svetlosti u napon. Svaka komponenta sadrži LED izvor bele svetlosti, fotodiodu sa postavljenim optičkim filterom boje, i transimpendansni pojačavač.]]></description>
			<content:encoded><![CDATA[<h2>Integrisani senzori TRS1722, TRS1755 i TRS1766</h2>
<p>TRS1722, TRS1755 i TRS1766 senzori proizvođača  TAOS (Texas Advanced Optoeletronic Solutions) su visoko osetljivi reflektivni senzori crvene (630 nm), zelene (567 nm) i plave (470 nm) boje, respektivno, koji konvertuju intezitet svetlosti u napon. Svaka komponenta sadrži LED izvor bele svetlosti, fotodiodu sa postavljenim optičkim filterom boje, i transimpendansni pojačavač.</p>
<p style="text-align: center;"><a href="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23000.jpg"><img class="alignnone size-full wp-image-781" title="20090917sensorTCS23000" src="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23000.jpg" alt="20090917sensorTCS23000" width="500" height="222" /></a></p>
<p>TCS230 je programabilni konvertor inteziteta obojene svetlosti u frekvenciju kombinovan sa podešljivim silicijumskim diodama i konvertorom struje u frekvenciju na istoj monolitnoj CMOS integrisanoj pločici.<span id="more-786"></span></p>
<p>Integrisani senzori TRS1722, TRS1755, TRS1766</p>
<p><a href="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23001.jpg"><img class="alignnone size-full wp-image-782" title="20090917sensorTCS23001" src="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23001.jpg" alt="20090917sensorTCS23001" width="500" height="166" /></a></p>
<p><em>Slika 1. Izgled i  raspored nožica integrisanog  senzora TRS1722</em></p>
<p>Izlazni napon je direktno proporcionalan intezitetu reflektovane svetlosti na fotodiodi kojoj je dodat intezitet svetlosti koji se može smatrati kao šum.</p>
<p>Može se primetiti da za razliku od prethodnog senzora koji meri prisustvo određene boje u svetlosti, ovaj senzor meri prisustvo određene boje ali u svetlosti odbijenoj od predmeta posmatranja. Pritom se vrši osvetljavanje pomatrane površine.</p>
<p>Svi funkcionalni delovi, kao što su fotodioda, operacioni pojačavač, komponente u povratnoj sprezi i filter boje, izrađeni su u monolitnoj integrisanoj MOS tehnologiji, kao i senzor opisan u prethodnom odeljku. Izvor svetlosti čini LED dioda i takođe ulazi u sastav integrisane komponente što naravno utiče na cenu gotove komponente. Izgled i raspored nožica komponente prikazani su na slici (sl. 1.).</p>
<p>Senzor se mogu napajati iz jednog izvora baterije, što je prednost komponente s obzirom na područje primene.</p>
<p>Funkcionalna blok šema uređaja je prikazana na slici (sl. 2.).</p>
<p><a href="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23002.jpg"><img class="alignnone size-full wp-image-783" title="20090917sensorTCS23002" src="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23002.jpg" alt="20090917sensorTCS23002" width="500" height="127" /></a></p>
<p><em>Slika 2. Funkcionalna blok šema senzora boje  TRS1722</em></p>
<h2>Integrisani senzor TCS230</h2>
<p>Osnovne osobine Integrisanog senzor TCS230 su:</p>
<ul>
<li>visoka rezolucija konverzije inteziteta svetlosti u frekvenciju</li>
<li>programabilni izbor boje koja se detektuje i puno skaliranje izlazne frekvencije</li>
<li>direktna komunikacija sa mikrokontrolerom</li>
<li>napajanje iz jedne baterije (2,7 V do 5,5 V)</li>
<li>mogućnost isključivanja</li>
<li>nelinearna greška tipično 0,2% na 50 kHz</li>
<li>stabilni 200ppm/ºC temperaturni koeficijent</li>
</ul>
<p>TCS230 je programabilni konvertor inteziteta obojene svetlosti u frekvenciju kombinovan sa podešljivim silicijumskim diodama i konvertorom struje u frekvenciju na istoj monolitnoj CMOS integrisanoj pločici. Prednosti ovakve realizacije su već pomenute u prethodnim tekstovima koje opisuju slične senzore boje kao sto su npr. TSLB257, TSLG257, TSLR257, TRS1722, TRS1755 i TRS1766, a tu su minijaturni izgled kao posledica izrade u monolitnoj CMOS integrisanoj tehnologiji i prihvatljiva cena u odnosu na druga rešenja što je posledica izrade senzora u ogromnim serijama.</p>
<p>Izgled i  raspored nožica integrisanog  senzora  TCS230 prikazan je na slici 3.</p>
<p><a href="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23003.jpg"><img class="alignnone size-full wp-image-784" title="20090917sensorTCS23003" src="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23003.jpg" alt="20090917sensorTCS23003" width="500" height="167" /></a></p>
<p><em>Slika 3. Izgled i  raspored nožica integrisanog  senzora  TCS230</em></p>
<p>Izlazni signal je pravougaona povorka impulsa (faktor ispune 50 %) čija frekvencija zavisi od inteziteta svetlosti. Izlazna frekvencija se može skalirati na jednu od tri moguće vrednosti preko par kontrolnih ulaznih nožica  na komponenti.</p>
<p>Digitalni ulazi i izlazi su direktno kompatibilni za rad sa mikrokontrolerom i drugim logičkim kolima, što je vrlo bitno, jer se obrada informacija sa senzora najčešće vrši upravo pomenutim elementima.</p>
<p>Konvertor svetlosti u frekvenciju očitava 8&#215;8 matricu fotodioda.  Šesnaest fotodioda ima plave filtere, 16 fotodioda ima zelene filtere,  16 fotodioda ima crvene filtere, i 16 fotodioda su bez filtera. Četiri tipa fotodioda su ugrađene radi smanjivanja efekta nejednakosti slučajnog zračenja. Šesnaest fotodioda iste boje su paralelno povezane, a koji tip dioda se koristi može se podesiti preko odgovarajućih nožica na integrisanom kolu.</p>
<p>Funkionalna blok šema data je na slici (sl. 4.)</p>
<p><a href="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23004.jpg"><img class="alignnone size-full wp-image-785" title="20090917sensorTCS23004" src="http://www.otpornik.com/blog/wp-content/uploads/2010/01/20090917sensorTCS23004.jpg" alt="20090917sensorTCS23004" width="500" height="135" /></a></p>
<p><em>Slika 4. Funkcionalna blok šema senzora boje TCS230</em></p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=786&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/senzor/integrisani-senzori-trs1722-trs1755-trs1766-i-tcs230.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrisani senzori TSLB257, TSLG257, TSLR257</title>
		<link>http://www.otpornik.com/elektronika/komponente/integrisani-senzori-tslb257-tslg257-tslr257.html</link>
		<comments>http://www.otpornik.com/elektronika/komponente/integrisani-senzori-tslb257-tslg257-tslr257.html#comments</comments>
		<pubDate>Mon, 26 Oct 2009 06:16:16 +0000</pubDate>
		<dc:creator>Saša Jovanović</dc:creator>
				<category><![CDATA[Komponente]]></category>
		<category><![CDATA[boja]]></category>
		<category><![CDATA[senzori]]></category>
		<category><![CDATA[svetlost]]></category>

		<guid isPermaLink="false">http://www.otpornik.com/elektronika/komponente/integrisani-senzori-tslb257-tslg257-tslr257.html</guid>
		<description><![CDATA[Senzori firme TAOS (Texas Advanced Optoeletronic Solutions) mere intezitet svetlosti a kao izlazni signal se dobija napon koji zavisi od pomenutog intenziteta. Iako su ovde navedena tri senzora, oni se u suštini razlikuju samo po integralnom filteru boje.]]></description>
			<content:encoded><![CDATA[<p>Senzori firme TAOS (Texas Advanced Optoeletronic Solutions) mere intezitet svetlosti a kao izlazni signal se dobija napon koji zavisi od pomenutog intenziteta. Iako su ovde navedena tri senzora, oni se u suštini razlikuju samo po integralnom filteru boje. Na primer prvi senzor TSLB257 ima filtar koji propušta samo plavu boju, dok TSLG257 i TSLR257 imaju odgovarajući filtar za propuštanje zelene i crvene svetlosti respektivno.</p>
<p>Senzori boje se mogu napraviti od diskretnih komponenti (kao što su fotootpornici, fototranzistori i dr.) ili se mogu koristiti integrisani senzori boje. Na ovaj način senzori boje postaju sve manji,  precizniji, pouzdani i jeftiniji. Robotika i različiti industrijski proizvodni procesi su u velikoj meri  doprineli i dalje doprinose razvoju integrisanih  senzora boje.</p>
<p><img class="alignnone size-full wp-image-772" title="sensor TSLB257" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090915sensorTSLB2571.jpg" alt="sensor TSLB257" width="500" height="477" /></p>
<p>Rad mnogih senzora se zasniva na istim principima tj. na merenju intenziteta reflektovane svetlosti sa određene površine. Reflektovanu svetlost registruju fotodetektori najčešće poluprovodničke izrade. Razvoj tehnologije izrade integrisanih senzora boje tj. poluprovodničkih fotodetektora omogućio je da se intezitet svetlosti koristi sa sve većom efikasnošću.</p>
<p><span id="more-775"></span>U najvećem broju slučajeva boje koje se detektuju pripadaju grupi boja koju čine zelena, plava i crvena. Kombinovanom obradom signala sa senzora mogu se donekle detektovati i druge boje. Na primer prvi opisan senzor TSLB257 ima filtar koji propušta samo plavu boju, dok TSLG257 i TSLR257 imaju odgovarajući filtar za propuštanje zelene i crvene svetlosti respektivno.</p>
<p>Ovi jednostavni senzori firme TAOS (Texas Advanced Optoeletronic Solutions) mere intezitet svetlosti (<strong>sl. 1.</strong>), a kao izlazni signal se dobija napon koji zavisi od pomenutog intenziteta. Iako su ovde navedena tri senzora, oni se u suštini razlikuju samo po integralnom filteru boje.</p>
<p>Svi elektronski funkcionalni sklopovi, kao što su fotodiode, operacioni pojačavači, i komponente u povratnoj sprezi, izrađeni su u monolitnoj integrisanoj tehnologiji (Monolithic IC). Na ovaj način je postignuta velika osetljivost senzora i nizak nivo šuma optičkog konvertora svetlosti u napon. Proizvodnja u velikim serijama čini ovaj senzor prihvatljivim u pogledu cene.</p>
<p><img class="alignnone size-full wp-image-773" title="20090915sensorTSLB25701" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090915sensorTSLB25701.jpg" alt="20090915sensorTSLB25701" width="376" height="290" /></p>
<p>Slika 1. <em>Integrisani senzor boje TSLB257</em></p>
<p>Druge prednosti koje karakterišu ovaj senzor su:</p>
<ul>
<li>napajanje iz jedne baterije</li>
<li>nizak nivo šuma (200 μVRMS tipično na 1 kHz)</li>
<li>snažno potiskivanje napajanja (35 dB na 1 kHz)</li>
<li>kompaktno plastično kućište sa tri nožice za povezivanje (sl. 1.)</li>
<li>direktna zavisnost izlaznog napona od inteziteta svetlosti</li>
</ul>
<p><img class="alignnone size-full wp-image-774" title="20090915sensorTSLB25702" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090915sensorTSLB25702.jpg" alt="20090915sensorTSLB25702" width="291" height="140" /></p>
<p>Slika 2. <em>Funkcionalna blok šema senzora boje  TSLB257</em></p>
<p>Na slici (<strong>sl. 2.</strong>) je prikazana funkcionalna blok šema senzora boje. Senzor ima transimpedansno pojačanje od 320 MΩ sa poboljšanom stabilnošću ofseta napona i malom potrošnjom. Jasno je da su sve navedene osobine i parametri integrisanog senzora važni ne samo za ovaj već i za svaki drugi integrisani senzor.</p>
<p>Ovaj senzor je idealan za upotrebe kao što su kolorimetrija, proces kontrole štampanja, korekcija boje displeja i selektivno detektovanje svetlosti okoline.</p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=775&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/komponente/integrisani-senzori-tslb257-tslg257-tslr257.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kako je zelena postala zelena &#8211; osnovna teorija boja</title>
		<link>http://www.otpornik.com/elektronika/senzor/kako-je-zelena-postala-zelena-osnovna-teorija-boja.html</link>
		<comments>http://www.otpornik.com/elektronika/senzor/kako-je-zelena-postala-zelena-osnovna-teorija-boja.html#comments</comments>
		<pubDate>Wed, 07 Oct 2009 07:08:50 +0000</pubDate>
		<dc:creator>Saša Jovanović</dc:creator>
				<category><![CDATA[Senzori]]></category>
		<category><![CDATA[teorija boja]]></category>

		<guid isPermaLink="false">http://www.otpornik.com/?p=757</guid>
		<description><![CDATA[Dodir, ukus, miris, sluh, i vid su načini da se prikupe informacije o svetu. Ono što vidimo je boja. Objekti, predeli, lica se registruju u našem mozgu preko svetlosti koja ulazi u naše oko. Vidljiva svetlost je elektromagnetni talas u opsegu talasnih dužina od 400 nm – 700nm. To je samo mali deo svih postojećih talasnih dužina. Svetlost koju mi vidimo nije jedna talasna dužina već kombinacija mnogo talasnih dužina.]]></description>
			<content:encoded><![CDATA[<p>Dodir, ukus, miris, sluh, i vid su načini da se prikupe informacije o svetu. Međutim, ljudski svet je primarno svet opažanja i iz njega dolazi 90% našeg znanja o svetu. Ono što vidimo je boja. Objekti, predeli, lica se registruju u našem mozgu preko svetlosti koja ulazi u naše oko. Vidljiva svetlost je elektromagnetni talas u opsegu talasnih dužina od 400 nm – 700nm. To je samo mali deo svih postojećih talasnih dužina. Svetlost koju mi vidimo nije jedna talasna dužina već kombinacija mnogo talasnih dužina.</p>
<p style="text-align: center;"><a rel="attachment wp-att-769" href="http://www.otpornik.com/elektronika/senzor/kako-je-zelena-postala-zelena-osnovna-teorija-boja.html/attachment/20091006eye"><img class="size-full wp-image-769  aligncenter" title="20091006eye" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20091006eye.jpg" alt="20091006eye" width="450" height="291" /></a></p>
<p>Retina oka apsorbuje svetlost i šalje signale i osećaje mozgu. Osećaji  nas obaveštavaju o osobinama svetlosti, kao što je boja.</p>
<p>Vizuelna oprema koju koristimo za posmatranje svetlosti i njenih osobina je ista kod svakog, i kada radi, radi veoma dobro. Nacionalna uprava za standarde (National Bureau of Standards) izračunala je da ljudsko oko prepoznaje preko 10 miliona boja.<span id="more-757"></span></p>
<p>Veliki deo čovekovog života je vezan za boje i čovek je uvek bio fasciniran bojama. Čovek svoju stvarnost doživljava u velikoj meri na osnovu onoga što vidi. Često je određenim bojama pripisivano određeno značenje od religijskog do duhovnog karaktera. I danas su boje sastavni deo ljudskog života. Ljudsko oko je skoro savršen senzor boje. To znači da se u procesu proizvodnje koristi čovek kao osnovno merodavno sredstvo kada su u pitanju boje i njihovo raspoznavanje. U cilju usavršavanja pre svega industrijske proizvodnje i mnogih drugih procesa vezanih za boje, izmišljeni su prvi elektronski uređaji za raspoznavanje boja. Predmet ovog rada je upravo jedan takav uređaj.</p>
<h2>Osnovno o bojama</h2>
<p>Vidljiva svetlost je elektromagnetni talas u opsegu talasnih dužina od 400 nm – 700nm. To je samo mali deo svih postojećih talasnih dužina. Svetlost koju mi vidimo nije jedna talasna dužina već kombinacija mnogo talasnih dužina. Na sledećoj slici (sl. 1.) data je spektralna raspodela snage vidljive svetlosti tj. spektar nekoliko tipičnih izvora svetlosti.</p>
<p>Spektralna raspodela snage (spectral power distribution – SPD) pokazuje precizno odziv boje od izvora svetlosti u vidu razinskog dijagrama energije prisutne na svakoj talasnoj dužini unutar vidljivog spektra. SPD dijagram sunčeve svetlosti u podne, na primer, jasno pokazuje izuzetno balansiran izvor svetlosti. Sve talasne dužine vidljive svetlosti su prisutne i približno su jednake. U odnosu na veštački izvor svetlosti, sunčeva svetlost predstavlja veliku količinu energije u plavom i crvenom delu spektra. SPD dijagrami mogu biti veoma korisni za razumevanje različitih izvora svetlosti.</p>
<p><img class="aligncenter size-full wp-image-758" title="Spektralna raspodela" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory01.jpg" alt="Spektralna raspodela" width="500" height="260" /></p>
<p>Slika 1. <em>Izgled spektralne raspodele snage za nekoliko tipičnih izvora svetlosti</em></p>
<p><img class="aligncenter size-full wp-image-759" title="Efikasnost ljudskog oka" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory02.jpg" alt="Efikasnost ljudskog oka" width="500" height="235" /></p>
<p>Slika 2. <em>Funkcija svetlosne efikasnosti ljudskog oka</em></p>
<p><img class="aligncenter size-full wp-image-760" title="Odziv oka na dnevnu svetlost" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory03.jpg" alt="Odziv oka na dnevnu svetlost" width="304" height="232" /></p>
<p>Slika 3. <em>Odziv ljudskog oka na dnevnu svetlost</em></p>
<p>Ljudsko oko radi u osnovi kao kamera. Svaki neuron je ili štapić (rode) ili konus (cone). Samo konusni neuroni su osetljivi na boju. Čovek poseduje u oku specijalne ćelije za detoktovanje boja. Te ćelije se još nazivaju i konusi zbog njihove sličnosti sa pomenutim geometrijskim predmetom. Postoje tri vrste konusa i to konusi za tri osnovne boje: crvenu, zelenu i plavu. Svaka od ovih ćelija različito reaguje na frekvenciju spoljašnje svetlosti. Slike (sl. 2.) i (sl. 4.) pokazuju spektralnu osetljivost konusnih ćelija i svetlosnu efikasnost ljudskog oka (sl. 3.).</p>
<p><img class="aligncenter size-full wp-image-768" title="Spektralna osetljivost" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory04.jpg" alt="Spektralna osetljivost" width="500" height="250" /></p>
<p>Slika 4. <em>Spektralna osetljivost konusnih ćelija na odgovarajuću osnovnu boju</em></p>
<p>Signal boje dolazi do mozga kao rezultat rada konusnih ćelija za tri osnovne boje posmatranog spektra. Taj signal se može predstaviti pomoću tri vrednosti (f 1):</p>
<p><img class="aligncenter size-full wp-image-761" title="f1" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory01f.jpg" alt="f1" width="236" height="198" /></p>
<p>(f 1)</p>
<p>gde je E spektralna raspodela snage i S funkcija spektralne osetljivosti.</p>
<p><img class="aligncenter size-full wp-image-762" title="Spektralna raspodela snage" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory05.jpg" alt="Spektralna raspodela snage" width="500" height="169" /></p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->Slika 5. <em>Spektralna raspodela snage E(λ)</em></p>
<p>Boja se može predstaviti kao suma tri boje. To znači da boje formiraju trodimenzionalni vektorski prostor. Sledeći grafici pokazuju izgled tri osnovne boje potrebne za predstavljanje svih talasnih dužina vidljivog spektra.</p>
<p><img class="aligncenter size-full wp-image-763" title="Izgled optimalne spektralna osetljivosti" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory06.jpg" alt="Optimalna spektralna raspodela snage" width="500" height="218" /></p>
<p>Slika 6. <em>Optimalan izgled spektralne osetljivosti potrebne za sintezu svih boja vidljivog spektra</em></p>
<p>Negativne vrednosti pokazuju da se neke boje ne mogu tačno proizvesti jednostavnim dodavanjem osnovnih boja. Za laku sintezu boja potrebno je da sve vrednosti sa grafika budu pozitivne. Zato je međunarodna komisija za osvetljenje (CIE – Commission Internationale de L’Eclairage) 1931. godine definisala tri standardne osnovne boje (X,Y,Z). Osnovna boja Y je namerno izabrana da bude identična kao funkcija svetlosne efikasnosti ljudskog oka. Sledeći grafici pokazuju vrednosti X,Y, i Z potrebnih da se tačno reprodukuje bilo koja boja iz vidljivog spektra.</p>
<p><img class="aligncenter size-full wp-image-764" title="CIE funkcija spektralne osetljivosti" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory07.jpg" alt="CIE funkcija spektralne osetljivosti" width="500" height="312" /></p>
<p>Slika 7. <em>CIE funkcije spektralne osetljivosti</em></p>
<p>Osnovne boje se sada mogu predstaviti pomoću sledećih formula (f 2):</p>
<p><img class="aligncenter size-full wp-image-765" title="f2" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory02f.jpg" alt="f2" width="167" height="158" /></p>
<p>(f 2)</p>
<p>Sve vidljive boje su u «potkovici» oblikovanom konusu u X-Y-Z prostoru. Ako posmatramo ravan X+Y+Z=1 i njenu projekciju na X-Y ravan, dobijamo CIE dijagram boja (CIE chromaticity diagram) koji je dat na slici (sl. 8.).</p>
<p>Ivice predstavljaju čiste boje tj. sinusoidne talase sa odgovarajućom frekvencijom. Bela boja se nalazi na mestu tačke (sl. 8.), a emitovana bela svetlost je ista kao da je emituje crno telo na temperaturi od 6447 K.</p>
<p>Prilikom dodavanja, bilo koje dve boje (odnosno tačke na CIE dijagramu boja) rezultujuća boja, odnosno tačka se nalazi na liniji između tih tačaka.</p>
<p>Za nalaženje i predstavljanje komplementarnih boja koristi se Lab (L*a*b) model, gde je L osvetljenje (Luminance), „a“ rastojanje između zelene i crvene, a „b“ rastojanje između plave i žute boje (sl. 9.).</p>
<p><img class="aligncenter size-full wp-image-766" title="CIE dijagram boja" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory08.jpg" alt="CIE dijagram boja" width="500" height="270" /></p>
<p>Slika 8. <em>CIE dijagram boja</em></p>
<p><img class="aligncenter size-full wp-image-767" title="LAB model" src="http://www.otpornik.com/blog/wp-content/uploads/2009/10/20090914colortheory09.jpg" alt="LAB model" width="206" height="240" /></p>
<p>Slika 9. <em>LAB model</em></p>
<hr /><em>Izvor:</em></p>
<p>Diplomski rad<em>: Sanja Stupar &#8211; Senzor za detekciju  boje, </em></p>
<p><em>Fakultet tehničkih nauka, Novi Sad, 2006. godina </em></p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=757&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/senzor/kako-je-zelena-postala-zelena-osnovna-teorija-boja.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultra-Bright diode</title>
		<link>http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html</link>
		<comments>http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html#comments</comments>
		<pubDate>Wed, 23 Sep 2009 06:47:59 +0000</pubDate>
		<dc:creator>Saša Jovanović</dc:creator>
				<category><![CDATA[Komponente]]></category>

		<guid isPermaLink="false">http://www.otpornik.com/?p=752</guid>
		<description><![CDATA[LED emituju svetlost kada su direktno polarisane. Kada LED provodi, elektroni prolaze iz provodne zone materijala N-tipa do provodne zone materijala P-tipa. Pošto je provodna zona P-tipa poluprovodnika sa manjom energijom u odnosu na poluprovodnik N-tipa, energija elektrona se emituje  u obliku svetlosti. ]]></description>
			<content:encoded><![CDATA[<p>LED emituju svetlost kada su direktno polarisane. Kada LED provodi, elektroni prolaze iz provodne zone materijala N-tipa do provodne zone materijala P-tipa. Pošto je provodna zona P-tipa poluprovodnika sa manjom energijom u odnosu na poluprovodnik N-tipa, energija elektrona se emituje  u obliku svetlosti.</p>
<p>Karakteristika LED je ista kao kod običnih p-n spojeva s tom razlikom da je pad napona u provodnom režimu kod LED veći (tipično 1,2 do 4,3V). Talasna dužina emitovane svetlosti zavisi od širine energetskog procepa između provodnih zona poluprovodnika N i P tipa.</p>
<div id="attachment_749" class="wp-caption aligncenter" style="width: 410px"><a rel="attachment wp-att-749" href="http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html/attachment/20090922ultrabrightdiode01"><img class="size-full wp-image-749" title="LED, ultrabrihgt diode" src="http://www.otpornik.com/blog/wp-content/uploads/2009/09/20090922ultrabrightdiode01.jpg" alt="Slika 1.  LED, ultrabrihgt diode" width="400" height="300" /></a><p class="wp-caption-text">Slika 1.  LED, ultrabrihgt diode</p></div>
<p>Proizvodnja LED se rapidno promenila osamdesetih godina kada su se prvi put pojavile visoko-efikasne GaAlAs i ultrasvetle InGaAlP LED. Sve primarne boje (RGB) su postale dostupne, sa pouzdanošću istom ili boljom od drugih  tehnologija. Površinske LED su postale dostupne u jednobojnom  (uključujući i belu), dvobojnom (obično crvena i zelena), i trobojnom obliku. Ove visokoefikasne i ultrasvetle LED se koriste kao pozadinsko osvetljenje za LCD panele , kod panela različite opreme, i u unutrašnjosti kod tabli za obaveštenja. LED se koriste i kao osvetljenje  za bliceve kamera kod mobilnih telefona.</p>
<p><span id="more-752"></span>Iako po svemu nalikuju na obične jednobojne LED, »ultrabrihgt« diode su karaktristične po zračenju svetlosti koja se može smatrati »belom« svetlošću (slika 1.). Postoje esenijalno dve tehnologije za dobijanje bele svetlosti od LED. Jedan način je da se ugrade crveno, zeleno i plavo kućište veoma blizu jedno do drugog na istom pakovanju (slika 2.) i da se proporcionalno pomešaju svetlosti tako da omoguće ljudskom oku osećaj bele svetlosti. Sa slike se vidi da je zelenih dioda najviše jer su prilikom izrade najlošijeg kvaliteta.</p>
<div id="attachment_750" class="wp-caption aligncenter" style="width: 473px"><a rel="attachment wp-att-750" href="http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html/attachment/20090922ultrabrightdiode02"><img class="size-full wp-image-750" title="Bela svetlost" src="http://www.otpornik.com/blog/wp-content/uploads/2009/09/20090922ultrabrightdiode02.jpg" alt="Slika 2 . Bela svetlost" width="463" height="191" /></a><p class="wp-caption-text">Slika 2 . Bela svetlost</p></div>
<p>Zbog različitog kvaliteta izrade LED za datu boju javlja se nejednaka raspodela spektra.</p>
<p>Osim samog načina proizvodnje mana ovog rešenja je i visoka cena. Ipak ove LED su popularne  kod upotrebe za LCD panele jer omogućavaju promenu boje pozadine.</p>
<div id="attachment_751" class="wp-caption aligncenter" style="width: 475px"><a rel="attachment wp-att-751" href="http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html/attachment/20090922ultrabrightdiode03"><img class="size-full wp-image-751" title="Nejdnaka raspodela spektra LED" src="http://www.otpornik.com/blog/wp-content/uploads/2009/09/20090922ultrabrightdiode03.jpg" alt="Slika 3 . Nejednaka raspodela spektra LED" width="465" height="297" /></a><p class="wp-caption-text">Slika 3 . Nejednaka raspodela spektra LED</p></div>
<p>Jeftiniji pristup sadrži fosfor sa plavom LED koji apsorbuje deo od   plave svetlosti i zrači sekundarne boje do probližno bele svetlosti. Iz spektra svetlosti se vidi da je plava boja najviše zastupljena (slika 3.). Neke ranije bele LED konstruisane prethodnim postupkom su se koristile za osvetljenje kod mobilnih telefona.</p>
<p>Do 2000 godine ultrasvetle LED su imale pad napona od 4 do 4,2 V u direktnom režimu. Proizvođači mobilnih telefona su zbog toga morali imati ugrađeni DC-DC pretvarač koji od litijumskih baterija od 3,6 V povećava napon za rad LED. Bele LED se sada prizvode sa padom napona od 3 do 3,1 V što omogućava proizvođačima mobilnih telefona da direktno iz baterije pogone LED za pozadinsko osvetljenje.</p>
<p>Glavni razlozi zašto se za osvetljavanje predmeta koristi bela ultrasjana LED su:</p>
<ul>
<li>mogu se napajati iz izvora od 5V</li>
<li>imaju visok sjaj (tipično preko 4000 mcd)</li>
<li>mala potrošnja</li>
<li>kontinualan rad od 100 000 časova (11 godina)</li>
<li>ugao prostiranja svetlosti od 15 do 45 stepeni u zavisnosti od modela</li>
<li>ugrađena zaštita od pogrešnog priključivanja</li>
</ul>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 409px; width: 1px; height: 1px;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="sl-SI" align="JUSTIFY">Glavni razlozi zašto se za osvetljavanje predmeta koristi bela ultrasjana LED su:</p>
<p style="margin-bottom: 0cm;" lang="sl-SI" align="JUSTIFY">
</div>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=752&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/komponente/ultra-bright-diode.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASCII Tabela</title>
		<link>http://www.otpornik.com/elektronika/programiranje/ascii-tabela.html</link>
		<comments>http://www.otpornik.com/elektronika/programiranje/ascii-tabela.html#comments</comments>
		<pubDate>Thu, 27 Aug 2009 20:55:36 +0000</pubDate>
		<dc:creator>Aleksandar Sabo</dc:creator>
				<category><![CDATA[Programiranje]]></category>

		<guid isPermaLink="false">http://otpornikna/?p=203</guid>
		<description><![CDATA[Početkom 60tih godina razvijen je ASCII sa namerom da se obezbedi standardizacija pri razmeni informacija putem teleprintera. Kao i svaka reprezentacija karaktera na računaru, ASCII predstavlja korespodenciju između znakova pisma i njegove numeričke predstave.]]></description>
			<content:encoded><![CDATA[<p>Početkom 60tih godina razvijen je ASCII sa namerom da se obezbedi standardizacija pri razmeni informacija putem teleprintera. Kao i svaka reprezentacija karaktera na računaru, ASCII predstavlja korespodenciju između znakova pisma i njegove numeričke predstave.</p>
<p>ASCII je skraćenica od engleskih reči: <strong>American Standard Code for Information Interchange</strong>, što u prevodu znači: <strong>američki standardni kod za razmenu informacija</strong>. Izgovara se aski i predstavlja numeričku reprezentaciju karaktera. Ti karakteri mogu biti @ ? ) = / &amp; % $ a b c d &#8230; G H I J K &#8230;</p>
<p>Orginalna veličina podataka za predstavljanje ASCII karaktera je 7 bita. Iz toga sledi da je moguće kodovati 128 različita karaktera. Danas je u upotrebi prošireni ASCII kod koji se sastoji od 8 bita podataka, a sve češće se koristi unicode standard koji koristi više bajtova za kodovanje većeg broja simbola.</p>
<p>ASCII je zasnovan je na engleskom alfabetu i kontrolnim karakterima, te se stoga i sastoji iz dve grupe karaktera: printabilnih i kontrolnih karaktera.</p>
<h3>Kontrolni karakteri</h3>
<p>Naziv su dobili po ulozi kontrolisanja uređaja za prikaz informacija. Potreba se javila prilikom komunikacije dva uređaja da se na jednostavan način prenesu komande za formatiranje teksta i komande za kontrolu komunikacije. Korišćenje ovih karaktera u svom izvornom obliku sve više zastareva i manje se koristi.</p>
<p>Postoje 33 kontrolna karaktera i njihov spisak dat je u tabeli 1. Opis karaktera je ostavljen na engleskom jeziku iz raloga ne postojanja adekvatnih standarizovanih izraza na srpskom jeziku za sve pojmove.</p>
<p><code> </code></p>
<table border="0" width="95%" align="center">
<tbody>
<tr>
<td><strong>Bin.</strong></td>
<td><strong>Dec<code>.</code></strong></td>
<td><strong>He<code>x.</code></strong></td>
<td><strong>Skraćenica</strong></td>
<td><strong>Značenje</strong></td>
</tr>
<tr align="center">
<td align="left">000 0000</td>
<td>0</td>
<td>00</td>
<td>NUL</td>
<td align="left">Null character</td>
</tr>
<tr align="center">
<td align="left">000 0001</td>
<td>1</td>
<td>01</td>
<td>SOH</td>
<td align="left">Start of Header</td>
</tr>
<tr align="center">
<td align="left">000 0010</td>
<td>2</td>
<td>02</td>
<td>STX</td>
<td align="left">Start of Text</td>
</tr>
<tr align="center">
<td align="left">000 0011</td>
<td>3</td>
<td>03</td>
<td>ETX</td>
<td align="left">End of Text</td>
</tr>
<tr align="center">
<td align="left">000 0100</td>
<td>4</td>
<td>04</td>
<td>EOT</td>
<td align="left">End of Transmission</td>
</tr>
<tr align="center">
<td align="left">000 0101</td>
<td>5</td>
<td>05</td>
<td>ENQ</td>
<td align="left">Enquiry</td>
</tr>
<tr align="center">
<td align="left">000 0110</td>
<td>6</td>
<td>06</td>
<td>ACK</td>
<td align="left">Acknowledgment</td>
</tr>
<tr align="center">
<td align="left">000 0111</td>
<td>7</td>
<td>07</td>
<td>BEL</td>
<td align="left">Bell</td>
</tr>
<tr align="center">
<td align="left">000 1000</td>
<td>8</td>
<td>08</td>
<td>BS</td>
<td align="left">Backspace</td>
</tr>
<tr align="center">
<td align="left">000 1001</td>
<td>9</td>
<td>09</td>
<td>HT</td>
<td align="left">Horizontal Tab</td>
</tr>
<tr align="center">
<td align="left">000 1010</td>
<td>10</td>
<td>0A</td>
<td>LF</td>
<td align="left">Line Feed</td>
</tr>
<tr align="center">
<td align="left">000 1011</td>
<td>11</td>
<td>0B</td>
<td>VT</td>
<td align="left">Vertical Tab</td>
</tr>
<tr align="center">
<td align="left">000 1100</td>
<td>12</td>
<td>0C</td>
<td>FF</td>
<td align="left">Form Feed</td>
</tr>
<tr align="center">
<td align="left">000 1101</td>
<td>13</td>
<td>0D</td>
<td>CR</td>
<td align="left">Carriage Return</td>
</tr>
<tr align="center">
<td align="left">000 1110</td>
<td>14</td>
<td>0E</td>
<td>SO</td>
<td align="left">Shift <code>O</code>ut</td>
</tr>
<tr align="center">
<td align="left">000 1111</td>
<td>15</td>
<td>0F</td>
<td>SI</td>
<td align="left">Shift <code>I</code>n</td>
</tr>
<tr align="center">
<td align="left">001 0000</td>
<td>16</td>
<td>10</td>
<td>DLE</td>
<td align="left">Data <code>L</code>ink <code>E</code>scape</td>
</tr>
<tr align="center">
<td align="left">001 0001</td>
<td>17</td>
<td>11</td>
<td>DC1</td>
<td align="left">Device Control 1 <code>(ili XON) </code></td>
</tr>
<tr align="center">
<td align="left">001 0010</td>
<td>18</td>
<td>12</td>
<td>DC2</td>
<td align="left">Device Control 2</td>
</tr>
<tr align="center">
<td align="left">001 0011</td>
<td>19</td>
<td>13</td>
<td>DC3</td>
<td align="left">Device Control 3 (ili XOFF)</td>
</tr>
<tr align="center">
<td align="left">001 0100</td>
<td>20</td>
<td>14</td>
<td>DC4</td>
<td align="left">Device Control 4</td>
</tr>
<tr align="center">
<td align="left">001 0101</td>
<td>21</td>
<td>15</td>
<td>NAK</td>
<td align="left">Negative <code>A</code>cknowledg<code>ment</code></td>
</tr>
<tr align="center">
<td align="left">001 0110</td>
<td>22</td>
<td>16</td>
<td>SYN</td>
<td align="left">Synchronus Idle</td>
</tr>
<tr align="center">
<td align="left">001 0111</td>
<td>23</td>
<td>17</td>
<td>ETB</td>
<td align="left">End of Transmision Block</td>
</tr>
<tr align="center">
<td align="left">001 1000</td>
<td>24</td>
<td>18</td>
<td>CAN</td>
<td align="left">Cancel</td>
</tr>
<tr align="center">
<td align="left">001 1001</td>
<td>25</td>
<td>19</td>
<td>EM</td>
<td align="left">End of Medium</td>
</tr>
<tr align="center">
<td align="left">001 1010</td>
<td>26</td>
<td>1A</td>
<td>SUB</td>
<td align="left">Substitute</td>
</tr>
<tr align="center">
<td align="left">001 1011</td>
<td>27</td>
<td>1B</td>
<td>ESC</td>
<td align="left">Escape</td>
</tr>
<tr align="center">
<td align="left">001 1100</td>
<td>28</td>
<td>1C</td>
<td>FS</td>
<td align="left">File separator</td>
</tr>
<tr align="center">
<td align="left">001 1101</td>
<td>29</td>
<td>1D</td>
<td>GS</td>
<td align="left">Group separator</td>
</tr>
<tr align="center">
<td align="left">001 1110</td>
<td>30</td>
<td>1E</td>
<td>RS</td>
<td align="left">Record separator</td>
</tr>
<tr align="center">
<td align="left">001 1111</td>
<td>31</td>
<td>1F</td>
<td>US</td>
<td align="left">Unit Separator</td>
</tr>
<tr align="center">
<td align="left"></td>
<td></td>
<td></td>
<td></td>
<td align="left"></td>
</tr>
<tr align="center">
<td align="left">111 1111</td>
<td>127</td>
<td>7F</td>
<td>DEL</td>
<td align="left">Delete</td>
</tr>
</tbody>
</table>
<div style="text-align: center;"></div>
<div style="text-align: center;">Tabela 1. <strong>Kontrolni karakteri</strong></div>
<h3>Printabilni karakteri</h3>
<p>Printabilni karakteri obuhvataju slova engleske abecede, cifre, znakove interpunkcije, prazninu između slova i nekoliko mešovitih simbola. Svi karakteri dati su u narednoj tabeli.</p>
<table border="0" width="70%" align="center">
<tbody>
<tr align="center">
<td align="left"><strong>Bin.</strong></td>
<td><strong>Dec.</strong></td>
<td><strong>Hex.</strong></td>
<td><strong>Simbol</strong></td>
</tr>
<tr align="center">
<td align="left">010 0000</td>
<td>32</td>
<td>20</td>
<td>(RAZMAK)</td>
</tr>
<tr align="center">
<td align="left">010 0001</td>
<td>33</td>
<td>21</td>
<td>!</td>
</tr>
<tr align="center">
<td align="left">010 0010</td>
<td>34</td>
<td>22</td>
<td>&#8220;</td>
</tr>
<tr align="center">
<td align="left">010 0011</td>
<td>35</td>
<td>23</td>
<td>#</td>
</tr>
<tr align="center">
<td align="left">010 0100</td>
<td>36</td>
<td>24</td>
<td>$</td>
</tr>
<tr align="center">
<td align="left">010 0101</td>
<td>37</td>
<td>25</td>
<td>%</td>
</tr>
<tr align="center">
<td align="left">010 0110</td>
<td>38</td>
<td>26</td>
<td>&amp;</td>
</tr>
<tr align="center">
<td align="left">010 0111</td>
<td>39</td>
<td>27</td>
<td>&#8216;</td>
</tr>
<tr align="center">
<td align="left">010 1000</td>
<td>40</td>
<td>28</td>
<td>(</td>
</tr>
<tr align="center">
<td align="left">010 1001</td>
<td>41</td>
<td>29</td>
<td>)</td>
</tr>
<tr align="center">
<td align="left">010 1010</td>
<td>42</td>
<td>2A</td>
<td>*</td>
</tr>
<tr align="center">
<td align="left">010 1011</td>
<td>43</td>
<td>2B</td>
<td>+</td>
</tr>
<tr align="center">
<td align="left">010 1100</td>
<td>44</td>
<td>2C</td>
<td>,</td>
</tr>
<tr align="center">
<td align="left">010 1101</td>
<td>45</td>
<td>2D</td>
<td>-</td>
</tr>
<tr align="center">
<td align="left">010 1110</td>
<td>46</td>
<td>2E</td>
<td>.</td>
</tr>
<tr align="center">
<td align="left">010 1111</td>
<td>47</td>
<td>2F</td>
<td>/</td>
</tr>
<tr align="center">
<td align="left">011 0000</td>
<td>48</td>
<td>30</td>
<td>0</td>
</tr>
<tr align="center">
<td align="left">011 0001</td>
<td>49</td>
<td>31</td>
<td>1</td>
</tr>
<tr align="center">
<td align="left">011 0010</td>
<td>50</td>
<td>32</td>
<td>2</td>
</tr>
<tr align="center">
<td align="left">011 0011</td>
<td>51</td>
<td>33</td>
<td>3</td>
</tr>
<tr align="center">
<td align="left">011 0100</td>
<td>52</td>
<td>34</td>
<td>4</td>
</tr>
<tr align="center">
<td align="left">011 0101</td>
<td>53</td>
<td>35</td>
<td>5</td>
</tr>
<tr align="center">
<td align="left">011 0110</td>
<td>54</td>
<td>36</td>
<td>6</td>
</tr>
<tr align="center">
<td align="left">011 0111</td>
<td>55</td>
<td>37</td>
<td>7</td>
</tr>
<tr align="center">
<td align="left">011 1000</td>
<td>56</td>
<td>38</td>
<td>8</td>
</tr>
<tr align="center">
<td align="left">011 1001</td>
<td>57</td>
<td>39</td>
<td>9</td>
</tr>
<tr align="center">
<td align="left">011 1010</td>
<td>58</td>
<td>3A</td>
<td>:</td>
</tr>
<tr align="center">
<td align="left">011 1011</td>
<td>59</td>
<td>3B</td>
<td>;</td>
</tr>
<tr align="center">
<td align="left">011 1100</td>
<td>60</td>
<td>3C</td>
<td>&lt;</td>
</tr>
<tr align="center">
<td align="left">011 1101</td>
<td>61</td>
<td>3D</td>
<td>=</td>
</tr>
<tr align="center">
<td align="left">011 1110</td>
<td>62</td>
<td>3E</td>
<td>&gt;</td>
</tr>
<tr align="center">
<td align="left">011 1111</td>
<td>63</td>
<td>3F</td>
<td>?</td>
</tr>
<tr align="center">
<td align="left">100 0000</td>
<td>64</td>
<td>40</td>
<td>@</td>
</tr>
<tr align="center">
<td align="left">100 0001</td>
<td>65</td>
<td>41</td>
<td>A</td>
</tr>
<tr align="center">
<td align="left">100 0010</td>
<td>66</td>
<td>42</td>
<td>B</td>
</tr>
<tr align="center">
<td align="left">100 0011</td>
<td>67</td>
<td>43</td>
<td>C</td>
</tr>
<tr align="center">
<td align="left">100 0100</td>
<td>68</td>
<td>44</td>
<td>D</td>
</tr>
<tr align="center">
<td align="left">100 0101</td>
<td>69</td>
<td>45</td>
<td>E</td>
</tr>
<tr align="center">
<td align="left">100 0110</td>
<td>70</td>
<td>46</td>
<td>F</td>
</tr>
<tr align="center">
<td align="left">100 0111</td>
<td>71</td>
<td>47</td>
<td>G</td>
</tr>
<tr align="center">
<td align="left">100 1000</td>
<td>72</td>
<td>48</td>
<td>H</td>
</tr>
<tr align="center">
<td align="left">100 1001</td>
<td>73</td>
<td>49</td>
<td>I</td>
</tr>
<tr align="center">
<td align="left">100 1010</td>
<td>74</td>
<td>4A</td>
<td>J</td>
</tr>
<tr align="center">
<td align="left">100 1011</td>
<td>75</td>
<td>4B</td>
<td>K</td>
</tr>
<tr align="center">
<td align="left">100 1100</td>
<td>76</td>
<td>4C</td>
<td>L</td>
</tr>
<tr align="center">
<td align="left">100 1101</td>
<td>77</td>
<td>4D</td>
<td>M</td>
</tr>
<tr align="center">
<td align="left">100 1110</td>
<td>78</td>
<td>4E</td>
<td>N</td>
</tr>
<tr align="center">
<td align="left">100 1111</td>
<td>79</td>
<td>4F</td>
<td>O</td>
</tr>
<tr align="center">
<td align="left">101 0000</td>
<td>80</td>
<td>50</td>
<td>P</td>
</tr>
<tr align="center">
<td align="left">101 0001</td>
<td>81</td>
<td>51</td>
<td>Q</td>
</tr>
<tr align="center">
<td align="left">101 0010</td>
<td>82</td>
<td>52</td>
<td>R</td>
</tr>
<tr align="center">
<td align="left">101 0011</td>
<td>83</td>
<td>53</td>
<td>S</td>
</tr>
<tr align="center">
<td align="left">101 0100</td>
<td>84</td>
<td>54</td>
<td>T</td>
</tr>
<tr align="center">
<td align="left">101 0101</td>
<td>85</td>
<td>55</td>
<td>U</td>
</tr>
<tr align="center">
<td align="left">101 0110</td>
<td>86</td>
<td>56</td>
<td>V</td>
</tr>
<tr align="center">
<td align="left">101 0111</td>
<td>87</td>
<td>57</td>
<td>W</td>
</tr>
<tr align="center">
<td align="left">101 1000</td>
<td>88</td>
<td>58</td>
<td>X</td>
</tr>
<tr align="center">
<td align="left">101 1001</td>
<td>89</td>
<td>59</td>
<td>Y</td>
</tr>
<tr align="center">
<td align="left">101 1010</td>
<td>90</td>
<td>5A</td>
<td>Z</td>
</tr>
<tr align="center">
<td align="left">101 1011</td>
<td>91</td>
<td>5B</td>
<td>[</td>
</tr>
<tr align="center">
<td align="left">101 1100</td>
<td>92</td>
<td>5C</td>
<td></td>
</tr>
<tr align="center">
<td align="left">101 1101</td>
<td>93</td>
<td>5D</td>
<td>]</td>
</tr>
<tr align="center">
<td align="left">101 1110</td>
<td>94</td>
<td>5E</td>
<td>^</td>
</tr>
<tr align="center">
<td align="left">101 1111</td>
<td>95</td>
<td>5F</td>
<td>_</td>
</tr>
<tr align="center">
<td align="left">110 0000</td>
<td>96</td>
<td>60</td>
<td>`</td>
</tr>
<tr align="center">
<td align="left">110 0001</td>
<td>97</td>
<td>61</td>
<td>a</td>
</tr>
<tr align="center">
<td align="left">110 0010</td>
<td>98</td>
<td>62</td>
<td>b</td>
</tr>
<tr align="center">
<td align="left">110 0011</td>
<td>99</td>
<td>63</td>
<td>c</td>
</tr>
<tr align="center">
<td align="left">110 0100</td>
<td>100</td>
<td>64</td>
<td>d</td>
</tr>
<tr align="center">
<td align="left">110 0101</td>
<td>101</td>
<td>65</td>
<td>e</td>
</tr>
<tr align="center">
<td align="left">110 0110</td>
<td>102</td>
<td>66</td>
<td>f</td>
</tr>
<tr align="center">
<td align="left">110 0111</td>
<td>103</td>
<td>67</td>
<td>g</td>
</tr>
<tr align="center">
<td align="left">110 1000</td>
<td>104</td>
<td>68</td>
<td>h</td>
</tr>
<tr align="center">
<td align="left">110 1001</td>
<td>105</td>
<td>69</td>
<td>i</td>
</tr>
<tr align="center">
<td align="left">110 1010</td>
<td>106</td>
<td>6A</td>
<td>j</td>
</tr>
<tr align="center">
<td align="left">110 1011</td>
<td>107</td>
<td>6B</td>
<td>k</td>
</tr>
<tr align="center">
<td align="left">110 1100</td>
<td>108</td>
<td>6C</td>
<td>l</td>
</tr>
<tr align="center">
<td align="left">110 1101</td>
<td>109</td>
<td>6D</td>
<td>m</td>
</tr>
<tr align="center">
<td align="left">110 1110</td>
<td>110</td>
<td>6E</td>
<td>n</td>
</tr>
<tr align="center">
<td align="left">110 1111</td>
<td>111</td>
<td>6F</td>
<td>o</td>
</tr>
<tr align="center">
<td align="left">111 0000</td>
<td>112</td>
<td>70</td>
<td>p</td>
</tr>
<tr align="center">
<td align="left">111 0001</td>
<td>113</td>
<td>71</td>
<td>q</td>
</tr>
<tr align="center">
<td align="left">111 0010</td>
<td>114</td>
<td>72</td>
<td>r</td>
</tr>
<tr align="center">
<td align="left">111 0011</td>
<td>115</td>
<td>73</td>
<td>s</td>
</tr>
<tr align="center">
<td align="left">111 0100</td>
<td>116</td>
<td>74</td>
<td>t</td>
</tr>
<tr align="center">
<td align="left">111 0101</td>
<td>117</td>
<td>75</td>
<td>u</td>
</tr>
<tr align="center">
<td align="left">111 0110</td>
<td>118</td>
<td>76</td>
<td>v</td>
</tr>
<tr align="center">
<td align="left">111 0111</td>
<td>119</td>
<td>77</td>
<td>w</td>
</tr>
<tr align="center">
<td align="left">111 1000</td>
<td>120</td>
<td>78</td>
<td>x</td>
</tr>
<tr align="center">
<td align="left">111 1001</td>
<td>121</td>
<td>79</td>
<td>y</td>
</tr>
<tr align="center">
<td align="left">111 1010</td>
<td>122</td>
<td>7A</td>
<td>z</td>
</tr>
<tr align="center">
<td align="left">111 1011</td>
<td>123</td>
<td>7B</td>
<td>{</td>
</tr>
<tr align="center">
<td align="left">111 1100</td>
<td>124</td>
<td>7C</td>
<td>|</td>
</tr>
<tr align="center">
<td align="left">111 1101</td>
<td>125</td>
<td>7D</td>
<td>}</td>
</tr>
<tr align="center">
<td align="left">111 1110</td>
<td>126</td>
<td>7E</td>
<td>~</td>
</tr>
</tbody>
</table>
<div style="text-align: center;"></div>
<div style="text-align: center;">Tabela 2. <strong>Printabilni karakteri</strong></div>
<h3>Strukturne karakteristike ASCII-ja</h3>
<p>Prilikom kreiranja ovog standarda vođeno je računa o strukturi samog rasporeda karaktera i kako se pogodnijom strukturom mogu ubrzati određene operacije. Ovde ćemo predstaviti neke od tih pogodnosti koje vam mogu zatrebati u svakodnevnom programiranju.</p>
<ul>
<li>Decimalne cifre su u ovom standardu predstavljene sa prefiksom 011, ovo omogućuje jednostavno konvertovanje cifara iz BCD u ASCII i obrnuto.</li>
<li>Razlika imađu malog i velikog slova je u jednom bitu. Na ovaj način omogućena je brza konverziju iz malih u velika slova i/ili obrnuto. Ovo je vrlo bitna činjenica, jer se na taj način pospešuje pretraživanje koje je imuno na veličinu slova.</li>
</ul>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=203&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/programiranje/ascii-tabela.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tehnologije pakovanja integrisanih kola i njihova klasifikacija</title>
		<link>http://www.otpornik.com/elektronika/komponente/tehnologije-pakovanja-integrisanih-kola-i-njihova-klasifikacija.html</link>
		<comments>http://www.otpornik.com/elektronika/komponente/tehnologije-pakovanja-integrisanih-kola-i-njihova-klasifikacija.html#comments</comments>
		<pubDate>Thu, 23 Jul 2009 13:27:02 +0000</pubDate>
		<dc:creator>Aleksandar Sabo</dc:creator>
				<category><![CDATA[Komponente]]></category>

		<guid isPermaLink="false">http://www.otpornik.com/?p=652</guid>
		<description><![CDATA[Različite oblasti primene elektronskih sklopova imaju drugačije potrebe za pakovanjem istih integralnih kola. Svaka oblast od mobilnih telekomunikacija  do elektronike autoindustrije ima specifične zahteve koje određeno pakovanje mora da ispuni. Stoga se uviđa da je razvoj pakovanja integralnih kola dinamički proces koji zavisi od njihove primene. U ovom moru različitih vrsta kućišta se lako možemo izgubiti, tako da ćemo vas u ovom tekstu provesti kroz način njihove klasifikacije i predstaviti osnovne oblike pakovanja integrisanih kola.]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="sh-YU">Različite oblasti primene elektronskih sklopova imaju drugačije potrebe za pakovanjem istih integralnih kola. Svaka oblast od mobilnih telekomunikacija  do elektronike autoindustrije ima specifične zahteve koje određeno pakovanje mora da ispuni. Stoga se uviđa da je razvoj pakovanja integralnih kola dinamički proces koji zavisi od njihove primene. U ovom moru različitih vrsta kućišta se lako možemo izgubiti, tako da ćemo vas u ovom tekstu provesti kroz način njihove klasifikacije i predstaviti osnovne oblike pakovanja integrisanih kola.</p>
<h2 style="margin-bottom: 0cm; text-align: left;" lang="sh-YU"><span id="more-652"></span>Klasifikacija</h2>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="sh-YU">Osnovna podela komponenata je na osnovu njihovog pakovanja. Na osnovu nje dele se na komponente koje se montiraju kroz rupe na ploči (<a href="http://en.wikipedia.org/wiki/Through-hole_technology"><em><strong>through hole devices</strong></em></a>) i one koja se montiraju na površini štampane ploče (<a href="http://en.wikipedia.org/wiki/Surface-mount_technology"><em><strong>SMD – surface mount devices</strong></em></a>), a njihove potpodele se mogu videti na sledećoj slici:</p>
<p style="margin-bottom: 0cm; text-align: center;" lang="sh-YU">
<div id="attachment_657" class="wp-caption alignnone" style="width: 460px"><img class="size-full wp-image-657" title="Klasifikacija pakovanja integrisanih kola" src="http://www.otpornik.com/blog/wp-content/uploads/2009/07/packages_classification.jpg" alt="Klasifikacija pakovanja integrisanih kola" width="450" height="596" /><p class="wp-caption-text">Klasifikacija pakovanja integrisanih kola</p></div>
<h2 style="margin-bottom: 0cm;" lang="sh-YU">Tehnologije pakovanja integrisanih kola</h2>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="sh-YU">Komponente koje se montiraju kroz rupe na štampanoj ploči imaju svojih prednosti kada se kreira manja serija uređaja i u izradi prototipova. Za razliku od njih proizvodni proces sa SMD komponentama je znatno složeniji. Pre početka proizvodnje potrebno je uložiti inicijalno vreme za uspostavljanje rada mašine, što podiže cenu starta asembliranja štampane ploče. Ova početna investicija postaje zanemarljiva tek kada se prave veće serije uređaja.</p>
<p style="margin-bottom: 0cm;" lang="sh-YU">S druge strane SMD kućišta imaju mnogobrojne prednosti. Najmanje komponente su veličine 0.5 x 0.25 mm, što omogućava štampane ploče manjih dimenzija. Vreme izrade se štedi time što je potrebno manje rupa izbušiti prilikom montiranja komponenti. Automatizovano asembliranje je brzo i jednostavno; neke mašine mogu postaviti na štampanu ploču i do 50.000 komponenti na sat. Komponente se mogu postaviti sa obe strane štampane ploče. Manji otpor i induktansa na spojevima dovode do boljih performansi u korišćenju komponenti na visokim frekvencijama.</p>
<p style="margin-bottom: 0cm;" lang="sh-YU">Primećuje se da obe tehnologije imaju svojih prednosti i mana. Ukoliko ste početnik ili vam treba samo jeftin prototip uređaja, odlučite se za postavljanje integrisanih kola kroz rupe na štampanim pločama. U slučaju kada iza sebe imate dovoljno iskustva u projektovanju štampanih ploča   i kreirate veću seriju gotovih sklopova, odlučite se za SMD komponente, uštedećete i vreme i novac.</p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=652&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/komponente/tehnologije-pakovanja-integrisanih-kola-i-njihova-klasifikacija.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Osnovno o Impulsno Širinskoj Modulaciji</title>
		<link>http://www.otpornik.com/elektronika/motori/osnovno-o-impulsno-sirinskoj-modulaciji.html</link>
		<comments>http://www.otpornik.com/elektronika/motori/osnovno-o-impulsno-sirinskoj-modulaciji.html#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:46:28 +0000</pubDate>
		<dc:creator>Saša Jovanović</dc:creator>
				<category><![CDATA[Motori]]></category>
		<category><![CDATA[Programiranje]]></category>

		<guid isPermaLink="false">http://otpornikna/?p=238</guid>
		<description><![CDATA[Impulsno širinska modulacija (skraćeno IŠM) je vrsta upravljanja koja predstavlja način da se od digitalnog signala napravi signal analogne vrednosti. Korišćenjem brojača sa visokom rezolucijom, odnos impuls/pauza se moduliše da odgovara specificiranom nivou analognog signala. U literature se često naziva i PWM, po skraćenici od engleskog naziva: Pulse Wide Modulation.]]></description>
			<content:encoded><![CDATA[<p>Impulsno širinska modulacija (skraćeno IŠM) je vrsta upravljanja koja predstavlja način da se od digitalnog signala napravi signal analogne vrednosti. Korišćenjem brojača sa visokom rezolucijom, odnos impuls/pauza se moduliše da odgovara specificiranom nivou analognog signala. U literature se često naziva i PWM, po skraćenici od engleskog naziva: Pulse Wide Modulation.<span id="more-238"></span></p>
<h3>Opis impulsno širinske modulacije</h3>
<p>IŠM kontrola je moćna tehnika za upravljanje analognim kolima pomoću digitalnih izlaza. IŠM je primenjena u širokom spektru aplikacija, od primene u merenjima i komunikacijama, sve do primene u kontroli snage i konverzijama električne energije u druge oblike (zvuk, mehaničku energiju .). Često se u literature IŠM može pronaći pod imenom PWM (eng. Pulse Wide Modulation) Šta su to analogni signali i zašto se odlučuje za digitalno upravljanje pomoću IŠM?</p>
<p><strong>Analogni signal</strong> ima kontinualno promenljivu vrednost amplitude, kao i beskonačnu rezoluciju i po vremenskoj osi i po amplitudi. Jedan od primera analognog uređaja je baterija od 9V, pri čemu njen izlaz nije tačno 9V nego se menja u vremenu i može da uzme vrednost bilo kog realnog broja u blizini 9V. Slično i struja koja teče iz baterije nije ograničena brojem mogućih vrednosti. Analogni signali se razlikuju od digitalnog jer se kod digitalnog signala uvek uzima vrednost iz konačnog skupa predefinisanih mogućih vrednosti, kao što je npr. skup {0V,5V}.</p>
<p>Analogni napon i struja se mogu koristiti za direktnu kontrolu, kao što je jačina zvuka na radiju. Okretanjem potenciometra se povećava i smanjuje otpornost na krajevima potenciometra i time se proporcionalno menja i struja koja teče kroz njega. Ova promena utiče i na promenu struje koja teče kroz zvučnik pa time utiče i na jačinu zvuka.</p>
<p>Glavna prednost analognih kola je uglavnom jednostavnost kako to na prvi pogled izgleda. Ali izbor analognog rešenja često nije praktičan, ekonomičan i dovoljno atraktivan. Analogna kola takođe vremenom menjaju svoje osobine. Precizna analogna kola u kojima je taj problem rešen mogu biti velika i skupa. Takođe postoji problem disipacije jer je ona srazmerna naponu na krajevima kola i struji koja kroz kolo teče, pa je potrebno njegovo hlađenje. Analogna kola su takođe osetljiva na šum.</p>
<p><strong>Digitalnom kontrolom</strong> analognih kola, cena i potrošnja se drastično mogu smanjiti. Šta više, mnogi mikrokontroleri i DSP (eng. Digital Signal Processors) već imaju implementiran generator IŠM signala čime se olakšava realizacija uređaja.</p>
<p>Ukratko, IŠM je način da se od digitalnog signala napravi signal analogne vrednosti. Korišćenjem brojača sa visokom rezolucijom, odnos impuls/pauza se moduliše da odgovara specificiranom nivou analognog signala. IŠM signal je i dalje digitalni zato što je u datom vremenskom periodu napajanje potpuno uključeno ili potpuno isključeno. Naponski ili strujni izvor se dovodi na analogno kolo putem povorke impulsa sa odgovarajućim odnosom impuls/pauza. Koristeći dovoljno usku periodu, bilo koja analogna vrednost koja upada u opseg mogućnosti izvora može se postići putem IŠM signala.</p>
<p>Na <strong>slici 1</strong> su prikazani IŠM signali sa tri različita odnosa impuls/pauza , odnosno sa tri različita faktora ispune. Na <strong>sl. 1.a</strong> je prikazan signal sa faktorom ispune 0,1, na <strong>sl. 1.b</strong> je prikazan signal sa faktorom ispune 0,5 i na <strong>sl. 1.c</strong> je prikazan signal sa faktorom ispune 0,9. Ova tri signala reprezentuju tri vrednosti analognog signala. Ako je npr. napon napajanja 9V tada navedeni signali na svom izlazu daju vrednosti od 0.9V, 4.5V i 8.1V respektivno.</p>
<p style="text-align: center;"><img src="/images/tekstovi/mikrokontroleri/tutorijali/pwm/20070924impsirinmod01.jpg" alt="" width="400" height="310" /></p>
<p style="text-align: center;">Slika 1. <strong>IŠM signali sa različitim faktorima ispune</strong></p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="5"></td>
<td align="left"><img src="/images/tekstovi/mikrokontroleri/tutorijali/pwm/20070924impsirinmod02.jpg" alt="" /></td>
<td align="right">f.1.</td>
</tr>
</tbody>
</table>
<table border="0" width="100%">
<tbody>
<tr>
<td width="5"></td>
<td align="left"><img src="/images/tekstovi/mikrokontroleri/tutorijali/pwm/20070924impsirinmod03.jpg" alt="" /></td>
<td align="right">f.2.</td>
</tr>
</tbody>
</table>
<p>Jedan od načina primene IŠM signala je prikazan na <strong>sl. 2.</strong> Prikazano je jednostavno kolo u kom se putem IŠM signala upravlja prekidačem za paljenje i gašenje sijalice. U periodu kada je prekidač uključen sijalica gori, a u periodu kada je prekidač isključen sijalica je ugašena. Promenom faktora ispune IŠM signala menja se period u kom sijalica gori. Ako je perioda IŠM signala dovoljno mala tada se ne primeti treperenje sijalice a ako je rezolucija velika fino se može upravljati jačinom svetlosti sijalice.</p>
<p style="text-align: center;"><img src="/images/tekstovi/mikrokontroleri/tutorijali/pwm/20070924impsirinmod04.jpg" alt="" /></p>
<p style="text-align: center;">Slika 2. <strong>Jednostavno kolo za upravljanje jačinom svetlosti sijalice</strong></p>
<h3>Primena impulsno širinske modulacije</h3>
<p>IŠM signal je našao široku primenu u mnogim oblastima. Pored prethodno navedenih tu su i primena u regulaciji napona napajanja. U regulaciji napona napajanja postižu se rezultati sa visokim koeficijentom korisnog dejstva. IŠM se ponekad koristi za sintezu zvuka jer mogu da se postignu lepi efekti. Primena u audio tehnici je nova klasa audio pojačavača koja postaje sve popularnija. Zove se &#8220;klasa-D&#8221; audio pojačavača. Ovi pojačavači proizvode IŠM ekvivalent analognog ulaznog signala, koji se vodi na zvučnike putem odgovarajuće mreže filtara. Time se signal vraća na originalni audio signal. Ovi pojačavači se karakterišu visokim faktorom korisnog dejstva koji je čak i preko 90%, kao i malim prostorom i težinom u odnosu na izlaznu snagu. IŠM signal se široko koristi za kontrolu brzine DC i AC motora, za upravljanje invertorima i mnogim drugim oblastima u elektronici i elektroenergetici.</p>
<hr />Izvor:</p>
<p>Živorad Mihajlović, Evgenije Adžić, Mirko Raković</p>
<p><strong>Elaborat tima BREBRE za robotsko takmičenje Eurobot 2004 god.</strong></p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=238&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/motori/osnovno-o-impulsno-sirinskoj-modulaciji.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pristup FLASH memoriji mikrokontrolera</title>
		<link>http://www.otpornik.com/elektronika/programiranje/pristup-flash-memoriji-mikrokontrolera.html</link>
		<comments>http://www.otpornik.com/elektronika/programiranje/pristup-flash-memoriji-mikrokontrolera.html#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:42:58 +0000</pubDate>
		<dc:creator>Aleksandar Sabo</dc:creator>
				<category><![CDATA[Programiranje]]></category>
		<category><![CDATA[C za PIC mikrokontrolere]]></category>

		<guid isPermaLink="false">http://otpornikna/?p=236</guid>
		<description><![CDATA[Hi Tech PICC STD pruža nekoliko metoda za pristup sadržaju programske memorije za vreme izvršavanja programa. Prilikom izmene sadržaja programske memorije mora se biti izuzetno oprezan. Ukoliko se modifikuje lokacija koja se trenutno izvršava ili se selektuje region izvršnog koda da se koristi kao stalno skladište podataka, rezultat može biti fatalan i može doći do otkazivanja rada uređaja.]]></description>
			<content:encoded><![CDATA[<p>Hi Tech PICC STD pruža nekoliko metoda za pristup sadržaju programske memorije za vreme izvršavanja programa. Prilikom izmene sadržaja programske memorije mora se biti izuzetno oprezan. Ukoliko se modifikuje lokacija koja se trenutno izvršava ili se selektuje region izvršnog koda da se koristi kao stalno skladište podataka, rezultat može biti fatalan i može doći do otkazivanja rada uređaja.</p>
<p>Kompajler će voditi računa o brisanju lokacija u FLASH memoriji, za mikrokontrolere koji zahtevaju operaciju bisanja lokacije pre upisivanja u istu, tako da nije neophodno implementirati posebno ovaj korak. Podaci, u istom bloku podataka koji se briše istovremeno i u koje se neće izvršiti upis, biće sačuvani pre operacije brisanja i povraćeni po završetku te operacije.</p>
<h3>Makroi za pristup FLESH memoriji</h3>
<p>Slično kao i kod EEPROM rutina za čitanje i pisanje postoje ekvivalentne rutine za FLASH memoriju. Da bi se upisao podatak veličine jednog bajta na određenu adresu u FLASH memoriji koristićemo sledeći makro:</p>
<pre class="sh_cpp"><code> FLASH_WRITE(adresa,promenljiva); </code></pre>
<p>Za čitanje podatka sa adrese u flash memoriji, i smeštanje istog u promenljivu koristimo drugi makro:</p>
<pre class="sh_cpp"><code> Promenljiva = FLASH_READ(adresa); </code></pre>
<h3>Funkcije za pristup FLESH memoriji</h3>
<p>Za pristup FLASH memoriji koriste se tri funkcije. Njihova deklaracija je sledeća:</p>
<pre class="sh_cpp"><code>#include &lt;htc.h&gt;
unsigned int flash_read(unsigned short addr);
void flash_erase(unsigned short addr);
void flash_copy(const unsigned char * source_addr, unsigned char length, unsigned short dest_addr); </code></pre>
<p>Funkcije <code>flash_read()</code> pruža istu funkcionalnost kao i makro <code>FLASH_READ()</code>, ali će potencijalno smanjiti zauzetost prostora u kodu, ukoliko postoji više poziva iste. Istovremeno je omogućeno čitanje jedne reči iz FLASH memorije. Kao povratnu informaciju ova funkcija vraća reč koju je pronašla na zadatoj adresi.</p>
<pre class="sh_cpp"><code>#include &lt;htc.h&gt;
void main(void) {
  unsigned int data;
  unsigned short addr = 0x1000;
  data = flash_read(addr);
} </code></pre>
<p>Funkcija <code>flash_copy()</code> dozvoljava kopiranje blokova memorije na lokacijama u FLASH memoriji. Blokovi podataka koji se kopiraju mogu biti smešteni u RAM ili u programsku memoriju. Ova rutina je omogućena samo za mikrokontrolere koji omogućavaju upis u flash memoriju veličine koje su veće od jedne reči istovremeno.</p>
<p>Pri pozivu funkcije prvi parametar mora biti konstantni pokazivač (<strong>const pointer</strong>) na adresu sa koje se kopirju podaci. Pokazivač može da pokazuje na validnu adresu u RAM-u ili u FLASH memoriji. Drugi parametar označava broj reči podataka koje je potrebno kopirati. Poslednji parametar predstavlja adresu u FLASH memoriji gde će podaci biti smešteni.</p>
<pre class="sh_cpp"><code>#include &lt;htc.h&gt;
const unsigned char ROMSTRING[] = "0123456789ABCDEF";
void main(void) {
  const unsigned char * ptr = &amp;ROMSTRING[0];
  flash_copy(ptr,5,0x70);
} </code></pre>
<p>Dakle u prethodnom primeru funkcija <code>flash_copy</code> kopira 5 podataka, počevši od adrese na kojoj se nalazi prvi karakter stringa <code>ROMSTRING</code>, na adresu &gt;code&gt;0&#215;70 u FLASH memoriju.</p>
<p>Za malu podgrupu mikrokontrolera koji omogućavaju nezavisnu kontrolu za brisanje blokova FLASH memorije, funkcija <code>flash_erase()</code> omogućava traženu funkcionalnost. Pri pozivu ove funkcije sve lokacije u okviru bloka memorije, biće vraćene na vrednost u neprogramiranom stanju (<code>0xFF</code>). U okviru bloka memorije se nalaze 32 lokacije i nije moguće pojedinačno brisanje. Prosleđivanje adrese funkciji <code>flash_erase()</code> će obrisati sve 32 lokacije u bloku u kome se prosleđena adresa nalazi.</p>
<pre class="sh_cpp"><code>#include &lt;htc.h&gt;
void main(void) {
  unsigned short addr = 0x1000;
  flash_erase(addr);
} </code></pre>
<p><strong>Napomena</strong>: Funkcija <code>flash_write</code> ne postoji.</p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=236&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/programiranje/pristup-flash-memoriji-mikrokontrolera.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pristup EEPROM-u</title>
		<link>http://www.otpornik.com/elektronika/programiranje/pristup-eeprom-u.html</link>
		<comments>http://www.otpornik.com/elektronika/programiranje/pristup-eeprom-u.html#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:40:09 +0000</pubDate>
		<dc:creator>Aleksandar Sabo</dc:creator>
				<category><![CDATA[Programiranje]]></category>
		<category><![CDATA[C za PIC mikrokontrolere]]></category>

		<guid isPermaLink="false">http://otpornikna/?p=234</guid>
		<description><![CDATA[Većini mikrokontrolera koji dolaze sa ugrađenim EEPROM-om, Hi-Tech C kompajler omogućuje nekoliko metoda za pristup ovoj memoriji. U ovom tekstu su opisane sve njegove metode za pristup EEPROM-u.]]></description>
			<content:encoded><![CDATA[<p>Većini mikrokontrolera koji dolaze sa ugrađenim EEPROM-om, Hi-Tech C kompajler omogućuje nekoliko metoda za pristup ovoj memoriji. U ovom tekstu su opisane sve njegove metode za pristup EEPROM-u.</p>
<h3>__EEPROM_DATA() makro</h3>
<p>Za one PIC mikrokontrolere koji podržavaju eksterno programiranje EEPROM-a, makro <code>_EEPROM_DATA</code> se može koristiti da se postave inicijalne vrednosti EEPROM-a u HEX fajl kojim se programira mikrokontroler. Makro se koristi na sledeći način:</p>
<pre><code>  #include &lt;htc.h&gt;
  __EEPROM_DATA(0,1,2,3,4,5,6,7);  </code></pre>
<p>Ovaj makro prihvata osam parametara, koji predstavljaju osam vrednosti u EEPROM lokacijama. Svaka vrednost treba da je veličine jednog bajta. Nekorištene vrednosti treba da budu predstavljene kao parametar nula. Makro se može pozvati više puta, zavisno od količine podataka koje je potrebno smestiti u EEPROM. Preporučljivo je da se makro nalazi izvan bilo koje funkcije u programu.</p>
<p>Ovaj makro se ne koristi da bi se pisalo u EEPROM lokacije tokom izvršavanja programa, već samo da bi se upisale inicijalne vrednosti prilikom prvog programiranja mikrokontrolera.</p>
<h3>EEPROM pomenljive</h3>
<p>Korišćenjem eeprom promenljivih omogućen je mnogo fleksibilniji pristup inicijalizaciji EEPROM lokacija nego sa makroom <code>__EEPROM_DATA</code>, jer one ne zahtevaju osam bajtova za parametre i obezbeđuju ugrađene funcije za pristup istim lokacijama.</p>
<p>Korišćenje EEPROM promenljivih predstavlja veoma jednostavan i efikasan metod da se konfiguriše i pristupi EEPROM-u. Ova opcija omogućava inicijalizaciju EEPROM lokacija i obvezbeđuje najjednostavniji mehanizam za pristup u toku izvršavanja programa. Ova opcija se može primeniti samo na globalne i/ili statičke promenljive i označava da se objekat nalazi u EEPROM-u. Na primer:</p>
<pre class="sh_cpp"><code> eeprom unsigned int serial_number = 0x1234; </code></pre>
<p>Ovo će kreirati eeprom promenljivu sa predefinisanom vrednošću 0&#215;1234. Ova vrednost se postavlja samo u toku programiranja mikrokontrolera. Ovoj promenljivoj može se pristupiti tokom izvršavanja programa, za čitanje i upis u nju:</p>
<pre class="sh_cpp"><code> serial_number = 0xAA55; </code></pre>
<p>Kompajler će kreirati odgovarajući kod kako bi se pristupilo promenljivoj. Za razliku od rom promeljivih, ukoliko se izvrši upis u inicijalizovanu eeprom promenljivu tokom izvršavanja programa, pri sledećem resetu mikrokontrolera eeprom promenljiva će sadržati vrednost koja je poslednja u nju upisana, a ne inicijalizovanu.</p>
<p>Treba voditi računa da kompajler podržava samo osnovne operacije dodeljivanja objektima u EEPROM-u. Ukoliko se u nekom kompleksnom izrazu upotrebi eeprom promenljiva, kompajler će generisati grešku &#8220;can&#8217;t read code&#8221;. U ovakvoj situaciji pokušajte da pojednostavite izraz ili možda da koristite privremenu promenljivu za smeštanje vrednosti iz eeprom promenljive.</p>
<p><strong>Napomena:</strong> Kako lokacije eeprom promenljivih određuje kompajler, nije neophodno pristupati EEPROM-u sa specifičnom adresom, naprotiv ovo čak treba izbegavati. Iz ovog razloga nije preporučljivo kombinovano korišćenje eeprom promenljivih i drugih EEPROM metoda za pristup.</p>
<h3>Funkcije za pristup EEPROM-u</h3>
<p>Funkcije <code>eeprom_read()</code> i <code>eeprom_write()</code>, mogu biti pozivane za čitanje iz EEPROM-a i za pisanje u EEPROM, tokom izvršavanja programa. Sledećim kodom je moguće promenljivu veličine jednog bajta upisati u EEPROM i iščitati koristeći ove funkcije:</p>
<pre><code>#include &lt;htc.h&gt;
void eetest(void) {
  unsigned char prom = 0x23;
  unsigned char adr = 0x12;
  eeprom_write(adr,prom);
  promenljiva = eeprom_read(adr);
} </code></pre>
<p>Ove funkcije proveravaju da li postoji neki konkurentni upis u EEPROM pre izvođenja tražene operacije. Funkcija <code>eeprom_write()</code> će otpočeti proces upisa vrednosti u EEPROM i taj proces neće biti završen pre nego što ta funkcija vrati kontrolu programu. Novi podatak koji se upisuje u EEPROM biće dostupan približno četiri milisekunde posle povratka kontrole programu. Dakle u prethodnom primeru nova vrednost neće biti dostupna u momentu kada je funkcija <code>eeprom_read()M</code> pozvana, ali kako smo rekli da ove funkcije pre svog izvršavanja čekaju da se konkurentne funkcije završe, korektna vrednost će biti iščitana.</p>
<p><strong>Napomena:</strong> Sa nekim od metoda za pristup EEPROM-u, poželjno je koristiti predprocesorsku direktivu <code>_EEPROMSIZE</code>. Ovaj simbol definiše količinu bajtova koja je dostupna za selektovani čip sa kojim se radi.</p>
<h3>Makroi za pristup EEPROM-u</h3>
<p>Iako ovi makroi obavljaju skoro isti posao kao prethodno navedene funkcije za rad sa EEPROM-om, njih treba upotrebljavati samo u izuzetnim situacijama. Prikladno je odabrati makroe EEPROM_READ i EEPROM_WRITE umesto odgovarajućih funkcija, ukoliko je bilo koji od navedenih uslova tačan:</p>
<ul>
<li>Ne možete priuštiti dodatni nivo dubine u steku neophodan za pozivanje funkcije</li>
<li>Ne možete priuštiti dodatni kod za prosleđivanje parametara i izvršavanje instrukcija call/return</li>
<li>Ne možete priuštiti dodatno procesorsko vreme neophodno za izvršavanje poziva funkcija</li>
</ul>
<p>Budite obazrivi. Ako u programu imate više instanci poziva ma kojeg makroa, ušteda memorije koda je nemoguća, jer se sadržaj kompletnog makroa u tom slučaju duplira u kodu.</p>
<p>U slučaju <code>EEPROM_READ()</code>, postoji još jedan detalj koji treba napomenuti. Za razliku od funkcije <code>eeprom_read()</code>, ovaj makro ne čeka da se konkurentni upis završi, pre nego što on pređe na iščitavanje EEPROM-a. Da smo u prethodnom primeru koristili <code>EEPROM_READ()</code> umesto <code>eeprom_read()</code> željena operacija ne bi bila izvršena. Ukoliko nije zagarantovano da su sva upisivanja u EEPROM završena pre poziva  makroa <code>EEPROM_READ()</code>, potrebno je proveriti status odgovarajućeg bita:</p>
<pre><code>#include &lt;htc.h&gt;
void eetest(void) {
  unsigned char prom = 0x27;
  unsigned char adr = 0x12;
  EEPROM_WRITE(adr,prom);
  while (WR) continu;
  prom = EEPROM_READ(adr);
} </code></pre>
<p>Na ovaj način smo se obezbedili da se sačeka završetak upisa u memoriju, pre novog isčitavanja.</p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=234&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/programiranje/pristup-eeprom-u.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bit instrukcije PIC mikrokontrolera</title>
		<link>http://www.otpornik.com/elektronika/programiranje/bit-instrukcije-pic-mikrokontrolera.html</link>
		<comments>http://www.otpornik.com/elektronika/programiranje/bit-instrukcije-pic-mikrokontrolera.html#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:37:22 +0000</pubDate>
		<dc:creator>Aleksandar Sabo</dc:creator>
				<category><![CDATA[Programiranje]]></category>
		<category><![CDATA[C za PIC mikrokontrolere]]></category>

		<guid isPermaLink="false">http://otpornikna/?p=232</guid>
		<description><![CDATA[PIC mikrokontroleri imaju specifične instrukcije koje su u stanju da manipulišu sa bitima. Ove instrukcije se uglavnom svode na setovanje i brisanje određenog bita u okviru nekog bajta. Gde god je moguće Hi-Tech C će pokušati da iskoristi ove instrukcije radi optimizacije koda.]]></description>
			<content:encoded><![CDATA[<p>PIC mikrokontroleri imaju specifične instrukcije koje su u stanju da manipulišu sa bitima. Ove instrukcije se uglavnom svode na setovanje i brisanje određenog bita u okviru nekog bajta. Gde god je moguće Hi-Tech C će pokušati da iskoristi ove instrukcije radi optimizacije koda.</p>
<p>Kao primer prethodno iznetim tvrdnjama, navešćemo sledeću situaciju: kada se preko ili funkcije i određene maske pokušavaju postaviti određeni biti registra mikrokontrolera, kompajler će proveriti da li se sa instrukcijama koje operišu sa bitima može postići ista funkcionalnost i na taj način da se proizvede optimalniji kod.  Sledeći primer napisan u C-u:</p>
<pre class="sh_cpp"><code> unsigned int foo; foo |=0x40; </code></pre>
<p>kreiraće sledeću instrukciju u programu</p>
<pre class="sh_cpp"><code> bsf _foo,6 </code></pre>
<p>Da bi se obrisao ili setovao individualni bit u nekoj integer promenljivoj, mogu se kreirati sledeći makroi:</p>
<pre class="sh_cpp">#define bitset(var, bitno) ((var) |= 1UL &lt;&lt; (bitno))
#define bitclr(var, bitno) ((var) &amp;= ~(1UL &lt;&lt; (bitno)))</pre>
<p>Izraz sa početka teksta sada se jednostavno može napisati na način da svima bude razumljiv:</p>
<pre class="sh_cpp"><code> bitset(foo,6); </code></pre>
<p>I ovakav izraz zauzima samo jednu reč u memoriji. Pogledajmo ovo na konkretnom primeru:</p>
<pre><code>#include
#define bitset(var, bitno) ((var) |= 1UL &lt;&lt; (bitno))
#define bitclr(var, bitno) ((var) &amp;= ~(1UL &lt;&lt; (bitno)))
unsigned char temp;
unsigned char pos;
void main(void) {
  bitset(temp,4);
  pos = 4;
  bitclr(temp,2);
  bitclr(temp,pos);
} </code></pre>
<p>Izdvojimo deo koda koji je kompajler kreirao za pozive bitclr makroa.</p>
<pre><code>bitclr(temp,2);
  07F0    1121     BCF 0x21, 0x2
bitclr(temp,pos);
  07F1    3001     MOVLW 0x1
  07F2    00F0     MOVWF 0x70
  07F3    0820     MOVF 0x20, W
  07F4    00F1     MOVWF 0x71
  07F5    0AF1     INCF 0x71, F
  07F6    2FF9     GOTO 0x7f9
  07F7    1003     BCF 0x3, 0
  07F8    0DF0     RLF 0x70, F
  07F9    0BF1     DECFSZ 0x71, F
  07FA    2FF7     GOTO 0x7f7
  07FB    0970     COMF 0x70, W
  07FC    05A1     ANDWF 0x21, F </code></pre>
<p>Na ovom primeru se jasno vidi da ukoliko se uzme konstanta za poziciju bita koji treba obrisati kompajler kreira kod koji to radi u jednoj instrukciji. Ukoliko se za poziciju bita postavi promenljiva, tada kompajler dodaje neophodan kod veličine 12 reči. Iz navedenog primera se vidi da kompajler vodi računa o optimizaciji koda i da koristi ugrađene pogodnosti PIC mikrokontrolera.</p>
<p><strong>Napomena</strong>:  1UL predstavlja broj 1 u unsigned long formatu.</p>
<img src="http://www.otpornik.com/blog/?ak_action=api_record_view&id=232&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.otpornik.com/elektronika/programiranje/bit-instrukcije-pic-mikrokontrolera.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

