Hallo da draußen, habe eine sehr blöde Frage. Ich habe eine kleine Platine zusammengebastelt (siehe Anhang) aber leider schaffe ich es nicht einmal die Leds einzuschalten. Ich habe 1k als Drossel eingebaut und nutze den µC als Massen bei "ein". Leider leuchtet garnichts. Die Pins sind als Eingang geschalten und wenn ich die internen PullUps aktivere bzw. deaktiviere passiert nichts. Woran kann das liegen?
Du musst die Pins auf Ausgang schalten (DDR) und eine 0 reinschreiben Otto
>Die Pins sind als Eingang geschalten und wenn >ich die internen PullUps aktivere bzw. deaktiviere passiert nichts. Wie wäre es, wenn du dein Programm postest?! Scheint so, als hättest du die Funktion eines Portpins nicht ganz verstanden. Auch, wenn "Strom in den AVR" hineinfließt, muß der Pin als Ausgang geschaltet werden.
Bildformate! Da kriegt man ja Augenkrebs! Und ohne Kenntnis Deiner Pinkonfiguration kann man da nicht viel zu sagen.
> 1k als Drossel eingebaut
lass blos die 1000 Vögel frei sontst ...?
zum Testen:
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | |
4 | #define __AVR_AT90CAN128__ 1
|
5 | #define F_CPU 16000000
|
6 | #define LED_GN(on) (on) ? (PORTE&=~0x08) : (PORTE|=0x08)
|
7 | #define LED_GE(on) (on) ? (PORTE&=~0x10) : (PORTE|=0x10)
|
8 | #define LED_RT(on) (on) ? (PORTE&=~0x04) : (PORTE|=0x04)
|
9 | |
10 | int main(void) |
11 | {
|
12 | DDRE=0x00; |
13 | LED_GN(1); |
14 | LED_GE(0); |
15 | LED_RT(1); |
16 | while(1) |
17 | {
|
18 | }
|
19 | return 0; |
20 | }
|
@Johannes M Ok das Bildforamt ist nicht super, aber die LEDs kann man sehen, oder?! Die Pnikonfiguration für die LEDs sollte mit dem Prog. auch klar sein. Der Rest ist ja irrelevant. Der RAM wird noch nicht genutz und der Rest nicht initialisiert.
DDRE muss für Deine LED auf 1 gesetzt werden 4 8 16 DDRE -> 0001 1100 LED gelb ist 16 und nicht 10 Otto
Hi, danke für die Tipps, aber habs mit 0x1C schon probiert. Ändert nichts, komischerweise. Kann es sein, dass der µC den Hitzetot beim Löten gestorben ist? Welche Symptome würde er dann Zeigen? Kann man einzelne Pins überhaupt grillen? Kann ich mit 0x00 die Pins zerstört haben?
Ne, wenn du nicht nen riesen Lötkolben dafür genommen hast. Was sind denn das für LEDS? Stromaufnahme? Der µC kann nämlich nicht unendlich viel Strom liefern bzw. steuern. Haste das Beispiel Blinky schon probiert? Gibt der Quarz einen Takt ab? Und wie erzeugste einen Reset nach dem Einschalten? Der Schaltplan hat aber noch einige zeichnerische Mängel, vor allem an den Bussen.
Das Programm funktioniert noch nicht, aber der µC ist schon verlötet? Schon'mal was von Sockeln gehört?
> Schon'mal was von Sockeln gehört? Möööp, Mega128 > DDRE = 0b0001110 eleganter: DDRE |= 0x0E;
Sumynona wrote: >> Schon'mal was von Sockeln gehört? > Möööp, Mega128 Es gibt Sockel dafür. Die kosten nur ungefähr 10 Mal so viel wie der µC selber...
> Es gibt Sockel dafür. Die kosten nur ungefähr 10 Mal > so viel wie der µC selber... Weiß ich. Lohnt sich also privat / im hobbybereich nicht. Solche Sockel taugen imho nur was für Evalboards (oder um mit einer Schaltung viele Controller zu flashen ohne sie verlöten zu müssen... Fraglich ist dann aber, wie lang der Sockel das mitmacht)
Also zum Thema Hardware: Die Hardware an sich hat sich schon mal bei nem anderen Projekt bewährt. Leider habe da nicht ich, sonder eine Firma (die FH zahlts) die ICs aufgelötet bzw. gebacken. Die Bauteile waren größtenteils gleich bzw. und ich habe versucht auch hier die gleichen Bauteile zu verbauen. Die Leds sind 0815 Dinger vom Reichelt (Art.Nr.: LED 3MM GN). Das Datenblatt ( http://www.reichelt.de/?;ACTION=6;LA=3;ARTICLE=10227;GROUPID=3018;GROUP=A5331;SID=31BugcOKwQAR8AAE1Tah423131d34189479af9095266ec05b4951) sagt 20mA. Ich dachte das schafft der µC, oder nicht? PS: Das mit dem Reset ist so ne Sache. Die Platine ist meine erste selbst gelayoutete und im Eifer des Gefächtes habe ich die ISP Schnittstelle mitsamt dem dem Widerstand gegen Reset etc. vergessen. Naja. Jetzt habe ich eine teure Platine ohne Programmierschnittstelle (Bootloader über USB ist meine Notlösung). Man lernt nie aus, und sowas sollte mir wohl nicht mehr passieren :) PPS: Was ist mit dem Bus? Hab keine Zeichenrichtlinien gefunden, daher hab ichs mal frei Schnautze gezeichnet. Wie macht man das richtig?
> sagt 20mA. Ich dachte das schafft der µC, oder nicht?
Mit 1k Vorwiderstand werden das aber keine 20mA, eher 2mA
Hast du mal das Potential auf beiden Seiten der Led gemessen? Liegen überhaupt 5V an? Zieht der µC Pin auf Masse? (ist ein bisschen schwierig bei SMD, Vorsicht !) Probier mal den ganzen DDRE auf FF zu schalten, wenn nichts anderes dranhängt. @Hardware: bei 1k Vorwiderstand müsste LED sicher leuchten. Ist normal gar nicht so viel unterschied zwischen 2mA und 20mA (Auge logarithmiert) MfG J.K.
Also das mit den 1k Ohm dachte ich mir auch schon, daher habe ich mal 330 Ohm für die grüne LED vorgeschaltet. Keine Verbesserung. Die Led ist richtig herum drinnen und sie funktioniert auch (zumindest mit Netzgerät). An der Kathode (abgeflachte Seite) liegt der µC und an der Anode 5V. Das sollte stimmen. Die 5V sind auch real existent und bei DDRE=0xFF ist sind an der Kathode bei Rot für LED_RT(1); 3,6V und bei LED_RT(0); 5V. Bisschen hoch für Masse, oder?
>bei 1k Vorwiderstand müsste LED sicher leuchten. Ist normal gar nicht so >viel unterschied zwischen 2mA und 20mA (Auge logarithmiert) Bei ner 5mA-Type vielleicht, wenn man im Dunkeln sitzt. Bei einer 20mA-Type muß der Vorwiderstand auf 150 Ohm runter sonst wird das nichts und das schafft der µC dann wohl auch nicht ohne warm zu werden. Also entweder ne 5mA-Type nehmen oder einen Transistor als Verstärker. Rechnerisch gilt(Ub-Vf)/IF ~ 5V-2,1V/ 0,005 = 580 Ohm (f.5mA-Typ)
"sind an der Kathode bei Rot für LED_RT(1); 3,6V und bei LED_RT(0); 5V. Bisschen hoch für Masse, oder?" Das ist ja auch nicht Masse, was Du an der Kathode der LED mißt, das ist 5V-LED-Flußspannung. Flußspannung also so bei 1,4V. Weiterhin hat der alte Ohm rausgefunden, daß bei 3,6V über 1k Widerstan so ungefähr 3,6mA fließen. Die (schlechte) LED sollte also etwas leuchten. Für diese Späße nehme ich gerne low-current-LEDs, da quält man die uCs und die Umwelt nicht so sehr. Bei 3mA haben die schon die volle Helligkeit.
Verdammt. Das klingt alles logisch. Da hab ich wohl Mist gebaut. Ich muss gestehen, ich hab die Dinger immer aus nem kleinen Sortiment rausgezogen und hab wohl immer ne lowcurrent erwischt bzw. der schlaue Mann der die Dinger gekauft hat, hat in weiser Vorraussicht nur LowCurrent gekauft. Dann bin ich ja mal gespannt was da sonst noch im argen liegt bei meiner Platine ;) Danke für die Hilfe.
@Pete K. Die sind dran. Man sieht sie nur in diesem Ausschnitt der Zeichnung nicht.
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | |
4 | int main(void) |
5 | {
|
6 | DDRE = (1<<PE2); |
7 | |
8 | while(1) |
9 | {
|
10 | PORTE = 0; |
11 | }
|
12 | return 0; |
13 | }
|
das ohne optimierungen compilieren und flashen, auch bei 1k sollte die rote doch leuchten...denke ich :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.