Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Multimetar sa MSP430 procesorom na stranici Texas Inst

[es] :: Elektronika :: Mikrokontroleri :: Multimetar sa MSP430 procesorom na stranici Texas Inst

[ Pregleda: 3000 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

DusanSukovic
Dušan Šulović
Na krevetu

Član broj: 35637
Poruke: 1371

Sajt: www.MotoBoem.RS


+460 Profil

icon Multimetar sa MSP430 procesorom na stranici Texas Inst21.03.2010. u 10:34 - pre 171 meseci
Nasao sam ovaj primjer multimetra koji bih rado (ako je u okviru mojih sposobnosti) pokusao da sastavim, i koji se nalazi na Texas Instruments stranici:
http://focus.ti.com/docs/solution/folders/print/591.html, zatim narucio sam MSP430 USB Stick Development Tool EZ430-F2013: http://focus.ti.com/docs/toolsw/folders/print/ez430-f2013.html. Da li je projekat multimetra kompliciran za pocetnika? Ne zanimaju me projekti tipa blinkanja led diode ;)


Stane Dolanc: "Bavljenje tehnikom treba da postane svakodnevna potreba coveka.."
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst22.03.2010. u 10:35 - pre 171 meseci
Citat:
Nasao sam ovaj primjer multimetra koji bih rado (ako je u okviru mojih sposobnosti) pokusao da sastavim,

Ne znam da li pričamo o istim stvarima, ali kako sam razumeo to je samo primer aplikacije, a ne nekakav kit koji bi samo "sastavio".
Između tvoje želje i funkcionirajućeg uređaja stoji najmanje jedna inženjer-godina i nekih pet prototipa. Ovo mislim
na inženjera koji je već verziran i u razvoju hardvera kao i u hardveru bliskom programiranju mikrokontrolera.
Citat:
Ne zanimaju me projekti tipa blinkanja led diode ;)

Jel si ti to već prerastao, ili hoćeš odmah da se baziš na nešto veliko?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst22.03.2010. u 11:11 - pre 171 meseci
Ja se "dosta" zezam sa MSP430 mcu-ovima i ono sto mogu da nacukam ovako na brzaka

1. msp430 dolazi samo kao smd, ako nemas problem sa lemljenjem istog onda je to ok, ali ako mislis da non stop kupujes "hedere" skupa ti je ta rabota
2. imas 3 osnovna toolchain-a za msp430
- IAR - koji kosta bubreg i levo plucno krilo u osnovnoj, i dodatno noga, ruka i oko u "kompletnijoj" varijanti .. odlican razvojni alat al .. za hobby malo precenjen
- CCS (code composer studio) - koji je malo jeftiniji, IDE mu je nabudzeni eclipse, toolchain lici na gcc (ali nije 1/1 kompatibilan), radi ga TI direktno i kosta u rangu osnovnog IAR-a a tu je negde i po kvalitetu .. (~500$)
- MSP-GCC - koji je dzaba, open source i dolazi u "mainstream" varijanti koja je naslonjena na gcc 3.2 i mspgcc4 varijanti koja je naslonjena na gcc4 .. ni jedan ni drugo ne podrzavaju extended memory seriju (CC430F6* kontrolere na primer), ali mspgcc4 iz cvs-a podrzava i njih ... na zalost debagiranje ovih sa extended memorijom nije moguce sa mspgcc toolchain-om. mspgcc toolchain je bez ide-a mada se da nabudziti na eclipse (ja ga tako trosim na linuxu, na windozi jos uvek nisam uspeo da napravim da mi to radi kako treba)

IAR i CCS dolaze u demo verziji gde imas "full funkcionalnost" ali si ogranicen sa velicinom hex-a (ako se dobro secam 16K ti je limit).

ako ovo uporedis sa atmel-om (trough hole komponente, winavr, avr-gcc) ili microchipom (trough hole, c18, c30) videces da je razvojni alat (software prvenstveno) za ova dva u mnogome jeftiniji (dzaba ili "smesne pare", posto za 100E vec mozes da biras kompajler i za jedne i za druge) ... a hw sa "pocetnicke strane" ne moze da se poredi (trough hole vs smd)...

sve ti ovo pisem posto si napisao "za pocetnika" ....

za "blinkanje ledare" - sve sa ne uC-u na kraju svede bas na to .. na blinkanje ledare ... imas ulaz (analogni ili digitalni) i imas izlaz (digitalni) i to je to .. izlaz ti je blinkanje ledare .. dal ces da blinkas brzo, sporo, dal ce da umesto ledare otvoris tranzistor ili posaljes data bit na lcd ... potpuno je nebitno .. i dalje je sve to "blinkanje ledare" zato se i svaki hello world pravi bas tako .. (ne kazem da treba 2 meseca da palis i gasis ledare, nego 2 sata)

sto se tice projekta koji si nasao, pogledaj obavezno:

Vojina sonda:
http://www.qsl.net/la9sja/electronics/ea/index.html
http://www.microchip.com/stell...deId=1824&appnote=en027166

i

SuperProbe:
http://members.cox.net/berniekm/super.html

ovaj drugi projekat (super probe) je malo jednostavniji




 
Odgovor na temu

DusanSukovic
Dušan Šulović
Na krevetu

Član broj: 35637
Poruke: 1371

Sajt: www.MotoBoem.RS


+460 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst25.03.2010. u 22:01 - pre 171 meseci
Citat:
branko_g: Jel si ti to već prerastao, ili hoćeš odmah da se baziš na nešto veliko?
Citat:
branko_g: Jel si ti to već prerastao, ili hoćeš odmah da se baziš na nešto veliko?




Hmmm nisam prerastao, probao sam par stvari u Arduinu i tako. Rado bih se bazirao na nesto vece ;)


Stane Dolanc: "Bavljenje tehnikom treba da postane svakodnevna potreba coveka.."
 
Odgovor na temu

DusanSukovic
Dušan Šulović
Na krevetu

Član broj: 35637
Poruke: 1371

Sajt: www.MotoBoem.RS


+460 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst25.03.2010. u 22:32 - pre 171 meseci
#include "msp430.h"

int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction

for (;;)
{
volatile unsigned int i; // volatile to prevent optimization

P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

i = 10000; // SW Delay
do i--;
while (i != 0);
}
}



Moze mali komentar ovog programcica blinkanja diode?
recimo linija:

volatile unsigned int i; // volatile to prevent optimization

Sta mu je keyword volatile, i zasto je volatile tu da spreci optimizaciju?



zatim:


P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

Sta mu dodje Toggle? Izgubio sam Benston recnik ;)










Stane Dolanc: "Bavljenje tehnikom treba da postane svakodnevna potreba coveka.."
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst26.03.2010. u 00:24 - pre 171 meseci
a koriscenje AlMighty-ja?

// Toggle P1.0 using exclusive-OR
// promeni P1.0 "pomocu" EX-ILI funkcije/operacije
// uradi EX-ILI na P1.0 i promeni "stanje" P1.0

smatram da znas sta je EX-ILI funkcija/operacija
ako nisam bio dovoljno jasan, kazi.

pozdrav!
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst26.03.2010. u 06:57 - pre 171 meseci
Citat:
DusanSukovic
Code:

    i = 10000;                          // SW Delay
    do i--;
    while (i != 0);


Sta mu je keyword volatile, i zasto je volatile tu da spreci optimizaciju?


ovo parce koda bi kompajler "izbacio" pri optimizaciji posto ne sluzi nicemu (ti menjas vrednost varijable i ali je nigde ne koristis), kompajler zna da kada se ova petlja zavrsi i ce imati vrednost 0 i ceo ovaj deo koda bi zamenio sa "i=0;".

kada je i definisano kao volatile, to kaze kompajleru da se vrednost u i mozda menja "i od negde drugde", te da ne smatra da ako se direktno u kodu ne vidi da se i menja da to automatski znaci da moze da izbaci taj kod. u ovom slucaju ti "lazes" kompajler da je i volatile kako bi ti ostavio petlju koja pravi pauzu od par hiljada instrukcija u nekom drugom slucaju je to jos vaznije .. na primer

Code:

unsigned char i;

//neki interrupt koji povecava i
interrupt void irp(){
  i++;
  EXTI;
}

void main(){
 i = 0;
 ...
 ...
 // CEO OVAJ DEO CE KOMPAJLER DA IZBACI
 if (i > 0){
 ...
 ...
 }
 // DOVDE
 ...
}


dakle ako izmedju i=0 i if (i>0) nigde ne promenis vrednost i u funkciji main kompajler ce ceo deo if(i>0) da izbaci posto "ne postoji sansa" (po njemu) da i bude > 0 kada si ga postavio na 0. U realnom slucaju interrupt je mogao da okina i da i bude 1 .. da bi rekao kompajleru da i moze da se promeni i na drugom mesu, kazes da je volatile i onda kompajler ostavi taj deo tu
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: Multimetar sa MSP430 procesorom na stranici Texas Inst26.03.2010. u 07:25 - pre 171 meseci
Citat:
Moze mali komentar ovog programcica blinkanja diode?
recimo linija:

volatile unsigned int i; // volatile to prevent optimization

Napisao sam par reči o volatile u odgovoru na temu ATmega8 i interrupt, par priloga ispod ali da ponovim:
Ključna reč volatile primorava kompajler da sadržaj registra u kome se nalazi ova lokalna kopija promenljive uvek iznova aktualizuje(čita iz memorije)
pri svakoj novoj manipulaciji sa njom. Primer koji je dat je malo neverovatan jer se to u OVOM slučaju neće desiti, već se to odnosi na globalne varijable koje se koriste u više različitih fajlova.
Pošto se proces kompajliranja odvija fajl po fajl i dobijeni objektni(.o) fajlovi tek onda linkuju u jednu celinu, je sasvim legitimno da kompajler smatra da se u jednom fajlu i u jednoj funkciji
sardžaj neke globalne varijable ne menja i nju optimizuje ili koristi lokalnu kopiju u registru, a u stvari se ona u nekoj drugoj funkciji menja, i to njen original u memoriji.
To se onda sprečava tom ključnom reči volatile.

Citat:
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

Sta mu dodje Toggle? Izgubio sam Benston recnik ;)

Prvo malo potsećanja na osnove binarne logike:

U jeziku C postoji binarni operatori za manipulaciju pojedinačnim bitovima:
Code:

P1OUT &= 0x01 ; // I (AND) funkcija, nad P1OUT i "maskom" 0x01( ili 00000001 binarno)  se vrši binarno-algebarska funkcija &(AND) i rezultat smešta ponovo u P1OUT.
U ovom konkretnom slučaju se svi bitovi na pozicijama  od 1 do 7 postavljaju na nulu a bit na poziciji 0(prvi) će ostati "1" samo ako je i pre bio "1".


Code:

P1OUT |= 0x01 ; // ILI  (OR) funkcija, nad P1OUT i "maskom" 0x01( ili 00000001 binarno)  se vrši binarno-algebarska funkcija | (OR) i rezultat smešta ponovo u P1OUT.
U ovom konkretnom slučaju se svi bitovi na pozicijama  od 1 do 7 zadržati svoje vrednosti a bit na poziciji 0(prvi) će biti postavljen na "1" bez obzira na prednodno stanje.


Code:

P1OUT ^= 0x01 ; // EKSKLUZIVNO ILI  (EXOR) funkcija, nad P1OUT i "maskom" 0x01( ili 00000001 binarno)  se vrši binarno-algebarska funkcija ^ (EXOR) i rezultat smešta ponovo u P1OUT.
U ovom konkretnom slučaju se svi bitovi na pozicijama  od 1 do 7 zadržati svoje vrednosti a bit na poziciji 0(prvi) će invertovati svoje stanje(Toggle).
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Multimetar sa MSP430 procesorom na stranici Texas Inst

[ Pregleda: 3000 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.