mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Startschwierigkeiten TLC5940


Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab nun die erste Platine mit einem TLC5940, nur leider will das 
ganze noch nicht so ganz funktionieren...

Hier mal ein kurzer Schaltplan:

TLC5940 - Potential
   VPRG - GND
   XLAT - VCC
  BLANK - VCC (über 10kΩ und an PB2)
  DCPRG - GND

    SIN - MOSI (SPI)
   SCLK - SCK  (SPI)
  GSLCK - 204,8 kHz Rechteck-Signal

Verbindungen habe ich schon alle überprüft. Mit einem DSO sind alle 
Signal-Pegel auch sauber. Nur leider tut sich nichts an den Ausgängen 
des TLC5940.
Hier mal mein "Code-Schnipsel":
#include <avr/io.h>
#include <avr/interrupt.h>

#define sleep() asm volatile ("nop")

// TLC5940_BLANK     PB2

volatile uint8_t data[10];

int main(void)
{
    // 204,8 kHz initalisieren
    TCCR1A = (1<<COM1A1) | (1<<WGM11);
    TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
    ICR1 = 77;
    OCR1A = 38;

    // SPI initalisieren
    DDRB = (1<<PB3)|(1<<PB5)|(1<<PB1)|(1<<PB2);
    SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);

    sei();

    PORTB |= (1<<PB2); // HIGH

        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));
        SPDR = 96;
        while (!(SPSR & (1<<SPIF)));

    PORTB &= ~(1<<PB2); // LOW

    while(1){};
    return 0;
}

Kann leider keinen Fehler finden. Eigentlich müsste man doch zumindest 
was an den Ausgängen des TLC "zappeln" sehen, nur dummerweise zeigt das 
Oszi konstant 0V an :/

PWM-Takt ist vorhanden, 24 Bytes werden mittels SPI übetragen und Blank 
wird nach dem senden auf GND gezogen (nachgemessen). Weiß leider 
momentan nicht weiter.

Hoffe, ihr könnt mir etwas helfen :)

Viele Grüße
Julian

Autor: Julian W. (julian-w) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, ich hab mal wieder weitergearbeitet, und leider immer noch keinen 
Erfolg verbuchen können :/

Mal noch ne Frage: Könnte es evtl. damit zusammenhängen, das XLAT immer 
auf HIGH ist?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.