Jste zde

PSoC 3 FirstTouch Starter Kit - II

pfstk02_000.png

S kitem PSoC 3 FirstTouch Starter Kit se měli čtenáři HW.cz již možnost seznámit přibližně před týdnem. Ukázali jsme si jak nainstalovat software potřebný pro práci s kitem a vytvořili jsme si jednoduchý příklad pro jeho otestování. Dnes si ukážeme využití první periferie, kterou bude AD převodník a připojený termistor.

PSoC3 je v současné době vybaven Delta-Sigma převodníkem s širokou škálou nastavení. Převodník je možné konfigurovat s rozlišením 8-20 bitů, přičemž rychlost převodu může činit 10-375000 vzorků / sekundu. Převodník může pracovat ve třech základních nastaveních:

  • Fast Filter
  • Continuous
  • Fast FFT

V závislosti na nastaveném režimu může převodník provádět převod pouze jednoho signálu, nebo multiplex několik nezávislých zdrojů. Jeho vložení do projektu a následná konfigurace je velmi intuitivní. Vkládá se stejným způsobem jako ostatní komponenty, přetáhnutím Component Catalogu (Analog/ADC). Konfigurace se pak provádí prostřednictvím dialogového okna Configure ‘ADC_DelSig’. Jsou-li nastaveny nesprávně parametry, vývojové prostředí to dá uživateli ihned na vědomí červenými vykřičníky vedle chybných parametrů.

Obrázek 1: Konfigurace ADC
Obrázek 1: Konfigurace ADC

Dále v textu následuje podrobný popis parametrů převodníku:

  • Power – tento parametr nastavuje výkonové nastavení převodníku. Obecně platí, že čím vyšší výkon je nastaven, tím vyšší spotřebu převodník má. Na druhou stranu lze očekávat lepší parametry. Možná nastavení [LOW POWER, MEDIUM POWER, HIGH POWER].
  • Conversion Mode – určuje mimo jiné způsob jakým je zacházeno s obsahem filtrů převodníku. Celkem převodník poskytuje tři režimy, z nichž jeden (Continuous) je vhodný pouze pro jeden nepřepínaný zdroj signálu a další dva (Fast_Filter a Fast_FIR) je možné využít i pro přepínané zdroje signálu. Více informací je možné nastudovat v katalogovém listu převodníku.
  • Resolution - určuje rozlišení převodníku. Lze jej nastavit v rozmezí 8-20 bitů.
  • Conversion Rate – parametr určuje počet vzorků za sekundu. Maximální počet vzoků je omezen hodinovou rychlostí a zvoleným konverzním módem.
  • Clock Frequency – editovatelný parametr informující uživatele o požadované hodinové frekvenci pro zvolený konverzní mód a požadovanou vzorkovou rychlost.
  • Start of Conversion – volitelné nastavení mezi softwarovým a hardwarovým spuštěním konverze
  • Clock Source – umožňuje volit mezi interním zdrojem hodin (zabudovaným v ADC) a externím zdrojem hodin (standardní zdroj, nebo jiný blok).
  • Input Range, Reference – volba několika rozsahů vstupního signálu. Je možné volit mezi interními a externími referenčními napětí o několika rozsazích. Více v katalogovém listě ADC.
  • Input Buffer Gain – Umožňuje zesílit signál z důvodu využití celého rozsahu AD převodníku a tím také ke zvýšení odstupu signál-šum.

Podrobnější informace je možné nastudovat z katalogového listu ADC, který je součástí instalace PSoC Creatoru. Katalogové listy je možné prohlížet přímo ve vývojovém prostředí, a nebo v samostatném okně. V současné době jsou katalogové listy ve verzi preliminary. Je téměř jisté, že po vydání řádné verze PSoC Creatoru budou přepracování do konečné verze.

Testovací projekt

Jak už bylo uvedeno na začátku článku, cílem našeho dnešního snažení bude vytvořit jednoduchý teploměr založený na měření na termistoru osazeném na desce plošného spoje na kitu. Měření bude obstarávat AD převodník. Pro naše účely postačí 8bitové rozlišení, konverzní rychlost jistě není požadována nijak závratná, proto si vystačíme se softwarovým řízením (využijeme pooling). Hodiny převodníku využijeme interní, nemáme na ně žádné zvláštní nároky.

Pro zobrazení využijeme opět LED umístěných na DPS kitu. Vytvoříme si z nich jednoduchý progressbar. Protože jsou LED zapojeny na dva různé porty, je vhodné si práci nějakým způsobem zjednodušit. Proto umístíme do projektu komponentu Control Register (Digital/Registers), jejíž výstupy jsou připojeny k příslušným LED. Následující schéma zobrazuje zapojení dnešního projektu:

Obrázek 2: Schéma projektu
Obrázek 2: Schéma projektu

Obrázek 3: Nastavení Control Registru
Obrázek 3: Nastavení Control Registru

Jak už bylo uvedeno, obsluha převodníku a následné zobrazení stavu bude probíhat softwarovou cestou. Vzhledem k předpřipraveným API bude tato práce tak jako minule velice jednoduchá:

#include 

void main()
{
	char result;
	int result_offset;
	unsigned char uresult;

	Pin_2_Write(1);
	
	ADC_DelSig_1_Start();
	ADC_DelSig_1_StartConvert();
	
    for(;;)
    {
		// pokud je dokoncen predchazejici prevod
		if (ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT))
		{
			// precte vysledek prevodu
			result = ADC_DelSig_1_GetResult8();
			
			// a prevede cislo do tvaru offset binnary
			if (result < 0)
				result_offset = 0x7F + result;
			else
				result_offset = result+0x80;				
			uresult = (unsigned char)result_offset;						
			
			// vypocita pozici LED
			for (result=0; result < 8; result++)
				if ((1< uresult)
					break;
			Control_Reg_1_Write(~(1<<(result-1)));
			
			// odstartuje dalsi prevod
			ADC_DelSig_1_StartConvert();
		}
    }
}

A konečně napování pinů:

Obrázek 4: Mapování portů
Obrázek 4: Mapování portů

Program je velice jednoduchý. Na začátku je nastaven port P5.5, který napájí vrchní konec děliče tvořeného rezistorem 10k a termistorem 10k (25°C). Následně je nakonfigurován převodník a odstartována konverze. Ve smyčce je poté kontrolováno dokončení převodu. Je-li nastaven příznak, pak je číslo nejprve převedeno do formátu offset-binary a poté odhadnut logaritmus o základu 2 převedeného čísla. Ten tvoří index LED, která představuje teplotu naměřenou termočlánkem. Program je velice jednoduchý a měl by fungovat na první vykoušení. Otestovat jej lze například přiložením nahřátého pera mikropájky k termočlánku.

Obrázek 5: Schéma zapojení termočlánku
Obrázek 5: Schéma zapojení termočlánku

Kit pro testování věnovalo české zastoupení společnosti MSC Vertriebs GmbH.

Odkazy & Download

Hodnocení článku: