Schlagwort-Archive: Schaltung

Mehr Informationen zur RGB-LED-Matrix

Hallo Bastler,

gestern Abend haben wir die Seite der RGB-LED-Matrix überarbeitet und gleichzeitig noch zwei Unterseiten angelegt, die euch nun mehr über die Elektronik und das Programm verraten. Also klickt euch rein!

Grüße,

Thomas und Nicolas

AVR ISP mkII Kabelupgrade

Heute Nacht habe ich mal wieder eine für mich nützliche Erweiterung gebastelt, indem ich das ISP6-Kabel von unserem AVR ISP mkII Programmer mit einem Stecker erweitert habe, der von der Pinbelegung her exakt auf einen Atmega16 oder Atmega8535 passt. Das war unter anderem gerade deswegen notwendig, weil unsere RGB-LED-Matrix mal wieder umprogrammiert werden musste und unsere anderen Programmer aus dem Billigpreissegment ja einfach nicht mehr funktionieren wollten.

Hier seht ihr die fertige Friemelei:

AVR ISP mkII KabelupgradeAuf der kunstvollen Zeichnung im Hintergrund kann man die Verdrahtung erkennen und daneben ist nochmal die Pinbelegung eines Atmega16 aufgelistet zum Vergleich. Was hier auf den ersten Blick noch etwas verwirrend erscheint ist wohl der 10 kOhm Widerstand auf dem ISP6-Stecker. Dieser verbindet gerade Vcc und Reset, damit der Reset-Pin immer auf logisch 1 steht und unser Programmer nicht wie wild orange zu blinken beginnt. Normalerweise gehört dieser Widerstand direkt auf die Platine, auf der auch der AVR platziert ist, aber in unserem speziellen Fall war dieser Pull-Up dort noch nicht vorhanden und musste kurzerhand dazu gesteckt werden.

PWM-Booster

Da wir in unserem Quadcopter einen ATXmega verwenden, welcher mit 3,3V betrieben wird, während die Motorcontroller ein 5V-PWM Signal erwarten muss das Signal entsprechend verstärkt werden. Natürlich hätte es eine weniger reißerische Überschrift als ‚Booster‘ getan, gerade wenn es sich um eine Pegelwandlung handelt, aber das Thema gestaltet sich doch ein wenig größer als gedacht.

Zunächst noch einmal kurz zu den grundlegenden Parametern:
Wir wollen auf Grund der Größe und Komplexität auf einen TTL-Chip verzichten, von 3,3V auf 5V wandeln, die Frequenz ist dabei nicht größer als 16kHz, der Duty-Cycle bei 5-10%. Die Rise- und Fall-Zeiten des Signals am AVR waren nicht im Datenblatt von Atmel dokumentiert, weshalb dafür eine Messung an unserem Oszilloskop zu Rate gezogen wurde.

Ich habe zunächst mal eine einfache Transistorschaltung in LTspice eingeklickt, ein paar Parametter angepasst und simuliert. Natürlich muss da auch der Innenwiderstand der Quelle, also dem ATXmega und der Lastwiderstand des Motorcontrollers berücksichtigt werden, was sich gar nicht einfach gestaltete. Der Lastwiderstand wurde mit 20kOhm als ausreichend klein angenommen, sollte soweit passen, der Innenwiderstand des Output-Pin am ATX war in keinem Datenblatt von Atmel angegeben, sodass ich den Maximalstrom am Pin und die Versorgungsspannung des AVR dafür nutzte, den Widerstand zu berechnen. Dieser ergibt sich aus 8mA und 3,3V als 412Ohm und liefert in der Simulation ein wirklich verwertbares Ergebnis. Selbst der Strom durch Rb ist mit 3.5mA im absolut verträglichen Bereich.

In Realitas gibt es mal wieder Probleme und es dürfte daran liegen, dass der Innenwiderstand des Pin doch nicht den Wert besitzt, den man theoretisch errechnen kann. Die Schaltung tuts am AVR einfach nicht. Alle softwarespezifischen Probleme wie Pullup und sonstiges können ausgeschlossen werden, da wir alles durchprobiert haben, morgen geht es dann weiter mit einer Bestimmung des Innenwiderstandes per Ausgleichgerade. Mal sehen, was das so bringt…