Close Menu
magazin Mehatronikamagazin Mehatronika
  • English
  • Početna
  • Industrija
  • Recenzije
    • Industrijska oprema
    • SBC računari
    • Razvojni sistemi
    • STEM
    • Mrežna oprema
    • Displeji
    • Dodaci
    • Alati
    • Muzička oprema
    • Pametni uređaji
    • Re:recenzija
  • Edukacija
  • Novosti
  • Lifestyle
    • Događaji
    • Intervjui
  • Stručni tekstovi
  • Forum
Facebook X (Twitter) Instagram LinkedIn
Trending
  • Megger SMRT i FREJA trofazni sistemi za ispitivanje zaštite releja
  • Libre Computer ROC RK-3328-CC Renegade Re:recenzija
  • Sajam/Forum Voda Beograd 03.-05. decembar 2025.
  • Novi aksijalni zglobovi Elesa+Ganter
  • WAGO Smart printer
  • FATEK PLC Serija M
  • WERMA višebojne ugradne LED svetiljke serija MC55 i MC35 
  • Libre Computer Solitude AML-S905D3-CC Re:recenzija
  • Srpski
    • Srpski
    • English
LinkedIn Facebook X (Twitter) Instagram
magazin Mehatronikamagazin Mehatronika
  • Početna
  • Industrija
  • Recenzije
    • Industrijska oprema
    • SBC računari
    • Razvojni sistemi
    • STEM
    • Mrežna oprema
    • Displeji
    • Dodaci
    • Alati
    • Muzička oprema
    • Pametni uređaji
    • Re:recenzija
  • Edukacija
  • Novosti
  • Lifestyle
    • Događaji
    • Intervjui
  • Stručni tekstovi
  • Forum
magazin Mehatronikamagazin Mehatronika
Home»Stručni tekstovi»Kontrola 8x500mA LED kanala sa TLC59213 i MSP430FR2311
Stručni tekstovi

Kontrola 8x500mA LED kanala sa TLC59213 i MSP430FR2311

Aleksandar DakićBy Aleksandar Dakić23/04/2020Updated:14/03/20255 Mins Read

Kada je potrebno kontrolisati rad LED kanala većih struja, recimo do 500mA, Ti TLC59213 je odlično rešenje. U pitanju je 8-bitni paralelni I/O strujni drajver sa darlington izlazima koji se mogu lečovati.

Rešenje jeste standardno i lako i odlično je za prikaz paralelne komunikacije između mikrokontrolera i integralnog kola – drajvera u ovom slučaju.

U projektu je korišćen Ti MSP430FR2311, ali se uz minimalne modifikacije može koristiti bilo koji mikrokontroler. Sve što je potrebno jeste jedan 8-bitni I/O port (u ovom slučaju je korišćen Port1, pinovi 0 do 7). Port je konfigurisan kao izlazni, sa početnim stanjem pinova 0.

Za upravljanje radom TLC59213 potrebna su još dva signala. CLK i CLR. Ulaz CLK služi za lečovanje izlaznih pinova kola, sa tim da se vrednost stanja na ulaznim pinovima D1…8, na koje dovodimo Port1, lečuje na izlazima Y1..8. „1“ na ulazu Dn, omogućava proticanje struje kroz Yn i time se pali diodni niz na n-tom kanalu. Ovaj signal je u primeru dodeljen Pinu 0 na Portu 2 mikrokontrolera.

Pinu 2 porta 2 dodeljen je signal CLR, koji gasi sve izlaze ukoliko mu je vrednost „0“, tj uključuje kolo TLC59213 ukoliko je njegova vrednost „1“. Port 2 je stoga definisan na svim pinovima kao izlazni port, sa standardnom vrednošću „1“.

Da bi implementacija bila zanimljivija, mikrokontroler i u ovom primeru radi u lowPower režimu i pali se samo kada je potrebno promeniti stanje na diodnim kanalima. Da bi iz ovog režima izašao, koristi se standardno rešenje – interapt. Interapt rutina je vezana za prekidač koji je postavljen na Pinu 1 Porta 2, te je stoga samo ovaj pin definisan kao ulazni. Interapt rutina data je na kraju koda. Zbog ilustrativnosti, nakon klika prekidača, menja se šema sijanja LED kanala.

Posebno je napisana funkcija setLED(stanje,trajanje) koja osmobitnom binarnom vrednošću promenjive stanje definiše novu šemu sijanja kanala, dok se u promenjivoj trajanje postavlja vrednost broja taktova nakon čega se diodni niz gasi. Na taj način je moguće odrediti vreme sijanja.

Kontrola struje kroz kanale vrši se otpornikom koji se povezuje na redno na diodni niz. Željena struja se može dobiti jednostavnom formulom I=(Vcc-Vl-Vce)/R, gde je Vcc napon napajanja diodnih nizova, Vl ukupni pad napona na diodama u jednom nizu i Vce je 1,6V napon kolektor-emiter na darlingtonu. U ovom primeru, da bi testirali rad, koristili smo Vcc=5V, obične led diode sa 2,9V padom napona u režimu rada i otpornike od R=220ohm. Struja koja je tekla u tom slučaju je svega 2,27 mA, što je dovoljno za prikaz rada, mada bi prava primena ovog drajvera bila za stotinak puta veće struje.

Kompletan kod je dat na gitHubu, kao i na kraju ovog teksta.

https://github.com/magazinMehatronika/TLC59213-with-parallel-communication
//  MSP430FR2311 paralelna komunikacija sa Ti TLC59213 LED 8 kanalnim drajverom
//  sa darlington izlazima do 500mA po kanalu
//  Implementirane funkcije:
//  setLED (buffer, duration)
//                   - buffer: 0b******** - pozicija bita pali jedan od 8 kanala
//                   - duration: dužina trajanja sijanja LED kanala
//
//                  MSP430FR2311
//                -----------------
//            /|\|                 |
//             | |                 |
//             --|RST              |
//               |         P1.0...7|-> Led kanal 0...7
//               |             P2.0|-> CLK
//               |             P2.2|-> ~CLR
//          BTN->|P2.1             |
//
// OPIS: Klikom na prekidač BTN, MSP izlazi iz sleep moda i
//           interapt rutinom menja šemu sijanja LED kanala
//
//
//   magazinMehatronika @ eduIoT
//   April 2020
//******************************************************************************
#include <msp430.h> 

unsigned int m=0x00;


void setLED (unsigned int buffer, unsigned long duration)   // SetLED (LED output, duration) function
{

    P2OUT |= BIT2;                          // CLR high
    __delay_cycles(50);
    P1OUT |= buffer;                        // Data set
    __delay_cycles(50);
    P2OUT |= BIT0;                          // CLK high
    __delay_cycles(50);


    P2OUT &= ~BIT0;                          // CLK low
    __delay_cycles(50);
    P1OUT = 0x00;                          // Data clear
    __delay_cycles(50);

       while ((duration--)>0)
        __delay_cycles(1);

    P2OUT &= ~BIT2;                          // CLR low
   __delay_cycles(50);
}


/**
 * main.c
 */
int main(void)
{

    WDTCTL = WDTPW | WDTHOLD;                // Stop watchdog timer

    P1DIR |= BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0;                  // P1.0...7 as out
    P1OUT &= ~(BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0);                // P1.0...7 low


    P2DIR |= BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0;                  // P2.0...7 as output
    P2OUT &= ~(BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0);               // P2.0...7 high


    P2DIR &= ~BIT1;                                             // P2.1 as input
    P2OUT |= BIT1;                                              // Configure P2.1 as pulled-up
    P2REN |= BIT1;                                              // P2.1 pull-up register enable
    P2IES |= BIT1;                                              // P2.1 Hi/Low edge
    P2IE  |= BIT1;

    PM5CTL0 &= ~LOCKLPM5;                                       // Disable the GPIO power-on default high-impedance mode
                                                                // to activate previously configured port settings
    P2IFG &= ~BIT1;                                             // P2.1 IFG cleared

 while (1)
     {

        __bis_SR_register(LPM3_bits | GIE);                // Enter LPM0,enable interrupts
        __no_operation();                                  // For debug,Remain in LPM0

         }
}



#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)

{
    switch (m) {
        case 0:
        {
            m=1;
            setLED (0xff, 65000);
            }
            break;
        case 1:
        {
            m=2;
            setLED (0x44, 65000);
            }
            break;
        case 2:
        {
            m=0;
            setLED (0x88, 65000);
            }
            break;
        default:
            break;
    }

    P2IFG &= ~BIT1;                                            // Clear P2.1 IFG
    __bic_SR_register_on_exit(LPM3_bits);   // Exit LPM3
}



// UNUSED_HWI_ISR()
#pragma vector=UNMI_VECTOR
#pragma vector=WDT_VECTOR
#pragma vector=TIMER1_B0_VECTOR
#pragma vector=TIMER1_B1_VECTOR
#pragma vector=TIMER0_B0_VECTOR
#pragma vector=TIMER0_B1_VECTOR
#pragma vector=PORT1_VECTOR
// #pragma vector=PORT2_VECTOR
#pragma vector=ECOMP0_VECTOR
#pragma vector=ADC_VECTOR
#pragma vector=EUSCI_B0_VECTOR
#pragma vector=EUSCI_A0_VECTOR
#pragma vector=RTC_VECTOR
#pragma vector=SYSNMI_VECTOR
#pragma vector=RESET_VECTOR

__interrupt void UNUSED_HWI_ISR (void)
{
__no_operation();
}
TI LaunchPad
Previous ArticleKontrola LED kanala upotrebom TLC5916 i MSP430FR2311
Next Article Webinari 6., 7. i 8. maja 2020 – interaktivna prezentacija novih i najaktuelnijih proizvoda Mitsubishi i Ewon
Aleksandar Dakić

Aleksandar je osnivač magazina Mehatronika. Sa pozadinom u električnom inženjeringu i dugom istorijom rada u stručnim časopisima, on se fokusira na ključnom sadržaju magazina Mehatronika i stoji iza brojnih inicijativa.

Related posts

Stručni tekstovi

akYtec ITP11 u prehrambenoj industriji

Sponsor: akYtec dooakYtec doo31/07/2025
Stručni tekstovi

Korišćenje ENGEL iQ clamp control

Sponsor: Neofyton09/07/2025
Stručni tekstovi

Inovativna rešenja za optimizaciju potrošnje energije u industriji

Sponsor: EXOR ETI d.o.o.26/06/2025
Stručni tekstovi

Evakuacija zgrada

Sponsor: Sobel13/05/2025
Stručni tekstovi

Signalni uređaji za Ex zonu

Sponsor: Sobel02/05/2025
Stručni tekstovi

Kako se nositi sa momentom inercije u aplikacijama koje zahtevaju precizno pozicioniranje?

Sponsor: Mitsubishi ElectricMitsubishi Electric26/04/2025
Kompanije
ABB akYtec Armsom Automatika Banana Pi Beogradski Sajam Bosch Rexroth CADCAM Data CHIRON Croatia CircuitMess Danfoss DFRobot Digilent Dossis Eaton Edatec Elcom Media Elecfreaks Elecrow Electronic Design Elektromont ELESA+GANTER EMP EMT elektro ENEL Valjevo EP-Solutions ePlan Eurocom EXOR ETI Fanuc Faulhaber Festo Fox Electronics Gamax Gomo Design Hennlich Hidraulika HMS ICM Electronics ICOP INEA SR INNOMOTICS IvDam Process Control LattePanda Libre Computer Lilygo magazinMehatronika malina314 Mean Well / ASIKO Melco-Buda Metronik Microsoft Mikro Kontrol Milk-V Mitsubishi Electric Momentum National Instruments Neminik Neofyton NVIDIA Orange Pi PCBWay Pickering Radxa Raspberry Pi Recom Renishaw Rittal Sajam voda Samsung Schneider Electric Schunk Seeed Studio Servoteh Siemens SM Automation Sobel Soldered staubli STMicroelectronics SunFounder Tectra / Megger teenage engineering Tehnogama TeLa elektrik TI LaunchPad Tipteh TRC pro Trim UMBRAmatik Unicom Uno-Lux Processing URAM System Vesimpex VETS Wago Weidmuller Wurth Elektronik Yaskawa Yokogawa
Distribuciju štampanih izdanja srednjim školama omogućile kompanije
Facebook X (Twitter) Instagram LinkedIn
  • Uređivačka politika
  • Kontakt
  • Media kit
  • Slanje jedinica za recenziju
  • Pretplata
  • Elektronska izdanja

magazin Mehatronika - Agencija “Gomo Design”
Stanoja Glavaša 37, 26300 Vršac, Serbia
+381 60 0171 273

© 2025 magazin Mehatronika by Gomo Design.

Type above and press Enter to search. Press Esc to cancel.

Logo magazin Mehatronika
Manage Consent
Da bismo omogućili najbolje korisničko iskustvo, koristimo tehnologije kao što su kolačići da bismo obradili informacije o uređaju sa kojeg pristupate sajtu, kao i informacije o posećivanju naših stranica. Prihvatanje naše upotrebe ovih tehnologija znači da nam dozvoljavate da obradimo ove podatke. Odbijanje ili kasnije opozivanje pristanka može dovesti do prestanka rada određenih funkcija sajta.
Funkcionalno Uvek aktivan
Skladištenje ili pristup ovim podacima je neophodan za omogućavanje osnovnog korisničkog iskustva u pružanju usluge ili priustupu sadržaju kojeg je korisnik izričito tražio, odnosno za svrhu komunikacije preko elektronske mreže.
Podešavanja
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistika
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Ovi podaci se koriste u kreaciji korisničkih profila na koje se šalje marketinški materijal, ili koji se koriste za praćenje interakcija korisnika sa sajtom, ili sa nekoliko sajtova za marketinške svrhe.
Upravljajte opcijama Upravljajte uslugama Upravljajte {vendor_count} dobavljačima Pročitajte više o ovim svrhama
Pogledaj podešavanja
{title} {title} {title}