Forum: Mikrocontroller und Digitale Elektronik Probleme mit Pollin Evaboard 2.0.1


von Luge (Gast)


Lesenswert?

Hallo,
bin relativ neu dabei hier.

Ich habe mir das Pollin Evaluierungsboard 2.0.1 geholt. Meiner Meinung 
nach echt toll für 15€, und ausserdem gut erweiterbar.

Vorher hab ich es in Betrieb genommen. Musste erst noch gelötet werden.

Danach hab ich mit Ponyprog auch gleich das Beispielprog von der 
Pollin-Downloadseite draufgespielt, lies sich ohne Probleme schreiben :)

Nur die Funktion war leider nicht zu 100% gegeben :/

Ich hab mir erst nichts dabei gedacht, und fröhlich angefangen eigene 
kurze Programme zu testen.

ZB die LEDS leuchten und Blinken lassen, etc, was auch gut klappte.

Nur irgendwann fiel mir etwas eigenartiges auf, was ich auch schon beim 
Pollin-Testprogramm beobachten musste.

Aber hier erstmal mein aktueller Quellcode, mit dem ich der Sache auf 
die Spur gehen wollte:

[quote]#include <avr/io.h>

int main(void){

  int i;
  DDRD = 0xE0;   // Pin 0-4 als Eingang, Pin 5-7 als Ausgang


  while(1){

  if (PIND & (1<<2))
    PORTD = (1<<5);

  if (PIND & (1<<3))
    PORTD = (1<<6);

  }

  return 0;

}
[/quote]

Die Funktion lässt sich schnell ablesen.
Taster 1 schaltet LED 1
Taster 2 schaltet LED 2

Beide gleichzeitig können nicht blinken, da T2 bei Betätigung LED1 
abschaltet (wegen absoluter Zuweisung, falls man das so nennt :))

Jetzt drück ich also zB 20 mal T1.
Ungefähr 15mal leuchtet dann wirklich nur LED1.
In ca. 3 Fällen leuchtet nur LED2, und ab und zu leuchten sogar beide.

Das macht mich bisl ratlos.
Hab natürlich erstmal auf nen Fehlaufbau gedacht. Also Bauteile 
verglichen, Lötstellen angeschaut, zweifelhafte Stellen mit 
Durchgangsprüfer durchgemessen.

Hat alles nichts gebracht. Ein Ähnliches Problem lieferte das 
Pollin-Testprogramm.
Laut Forensuche hatte letztes Jahr jemand das selbe Problem, leider 
wurde dem nicht mehr geantwortet :)

Ich weis nicht, kommt der mC vielleicht nicht damit klar, dass sehr oft 
hintereinander der selbe Taster betätigt wird? Oder sehr schnell?

Hoffe jemand kann mir weiterhelfen,
MfG Luge

von Torsten G. (wawibu)


Lesenswert?

Wie schaut es denn mit der Tastenentprellung aus?

Ich kenne das Pollin Board nicht, glaube aber kaum, dass dort eine 
Hardware-Entprellung vorgesehen ist. Somit muss das in der Software 
realisiert werden.

Gruß,
Torsten

von Luge (Gast)


Lesenswert?

Verbaut sind so kleine Taster mit 4 Pins, leider weis ich die genaue 
Bezeichnung nicht. Denk aber auch dass das Pollin-Board sowas nicht hat 
:)

Wie würde man denn sowas softwaretechnisch realisieren?

Und was ich nicht verstehe, Tastenprellung hin oder her.
Bei meinem geposteten Quellcode, müsste es da nicht unmöglich sein, dass 
zu irgendeiner denkbaren Zeit beide LEDS leuchten? Ich meine, es kann ja 
immer nur 1 Bit gesetzt sein? Oder irre ich mich da? :/

Und ich denke, Lötfehler kann ich ausschliesen, sonst würde es wohl 
öfter auftreten und nicht so sporadisch.

Was ich vorher noch vergessen habe, es handelt sich um einen ATmega16!

von Marcus B. (raketenfred)


Lesenswert?

wenn du ein steck brett da hast, würde ich mir mal die schaltung 
aufbauen und da testen
ansonsten hast du geschrieben:

   PORTD = (1<<6);
das setzt doch nur den "6". Port hoch, und macht alle anderen 0?!

Der Fehler würde dann erklären, warum duimmer nur ein led drücke kannst

entprellung brauchst du eigentlich noch nicht, erst wenn du einen 
Dateneingang hast, oder Datenmengen gering halten willst

von Luge (Gast)


Lesenswert?

Das ist schon so gewollt :)

Ich will ja, dass mein T1 NUR LED 1 setzt und mein T2 NUR LED 2.
Trotzdem kommt es vor, dass T1 mir LED 2 setzt, oder sogar beide.
Was eigentlich nicht sein dürfte...

von Es (Gast)


Lesenswert?

Bekannte Probleme

http://www.mikrocontroller.net/articles/Pollin_ATMEL_Evaluations-Board

R7 R8 R11 C19 C17 C18 entfernen und die Taster gegen Masse schalten.

auch gut
http://www.mikrocontroller.net/articles/AVR_Checkliste

von Luge (Gast)


Lesenswert?

Und noch was ist mir gerade aufgefallen.

Das Board hat noch einen Taster 3.
Wenn ich den oft genug drücke schaltet er mir ab und zu Led1 oder Led2!

Das kann aber gar nicht sein weil T3, der auf Pin4 liegt, in meinem 
Programm nie abgefragt wird.

Also hab ich ihn vorsichtshalber noch im DDRD zu einem Ausgang gemacht, 
und trotzdem schaltet er mir noch ab und zu meine Led1 oder Led2.

Muss wohl wirklich ein Hardwarefehler vorliegen, oder was meint ihr?

Werd also nochmal alles durchmessen.
Mich wundert nur dass die Fehler so sporadisch auftreten.
Wenn irgendwo falscher Kontakt wäre würde doch öfter ein Fehler 
auftreten?

von Es (Gast)


Lesenswert?

Der Fehler liegt bei Pollin!
Bau die Taster um, die Schaltung verursacht durch die Stromspitzen in 
den Kondensatoren Spannungseinbrüche in der Versorgung.

von Luge (Gast)


Lesenswert?

Danke dir!
Hab deinen vorherigen Beitrag erst gesehen nachdem ich meinen letzten 
abgeschickt hatte.

Werd jetzt erstmal die C und R entfernen und dann weiterschauen.

Wobei, dass Erweiterungsmodul mit mehr LEDs und Taster liegt eh schon 
(ungelötet) hier rum, wenn ich das benutze und die Jumper abstecke 
interessieren mich die Teile auf dem Eva-Board eigentlich nicht mehr :)

Egal, mich interessierts trotzdem, ich probiers jetzt mal mit 
direkt-auf-Masse.

Aber noch ne Frage, inwieweit kann den der Spannungseinbruch zu solchen 
Fehlfunktionen führen? So ganz schlüssig ist mir das nicht.
Würd mich freuen wenn du mir das noch erklären könntest!

Bin erstmal löten :)

von Luge (Gast)


Lesenswert?

Sorry für mein wiederholtes Posten!

Aber ich hab mir grade den Schaltplan nochmal angeschaut.
Wenn ich die C und R entferne und durch Leitungen nach Masse ersetze, 
dann hab ich ja bei gedrückten Taster ne direkte Verbindung von +5V und 
GND?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Gut mitgedacht! Deshalb sollst du das ja auch nicht machen.

Wie man das Board ändern kann, ist im Artikel [[Pollin ATMEL 
Evaluations-Board]] bzw. auf dessen Seite diskussion erklärt.

von Luge (Gast)


Lesenswert?

Danke, du hast mir bestätigt was ich befürchtet habe.

Zusätzlich steht im Wiki ja noch dass bei 16MHz Quarz die Fuses in der 
PDF nicht stimmen. Da ich den ATmega16 verwende und dessen IC-Sockel ja 
am 16MHz Quarz liegt könnte dass noch eine Fehlerquelle sein.

Ich werd jetzt mal versuchen herauszufinden, wie schnell mein mC denn 
jetzt eigentlich rumpelt, und danach die Kondensatoren auslöten.

Danke an alle bis jetzt :)
Vielleicht fällt ja jemanden noch was ein?!

von Klaus (Gast)


Lesenswert?

Kauft halt nicht immer den Pollin-Schrott!!!

von Luge (Gast)


Lesenswert?

Och wieso nicht? Für 15€ is doch nichts kaputt, und durchs Fehlersuchen 
lernt man auch was :)

Durch Ändern des CLKOPT-Fuses (jetzt nicht aktiviert im Pony) und ändern 
des F_CPU auf 16000000 (schande über mich) läufts jetzt schon viel 
besser.

Lediglich ab und zu passiert es noch dass nach Aktivieren von Led 2 
durch T2 das Programm hängen bleibt. Auch nach wiederholten Drücken von 
T1 ändert sich am LED-Zustand nichts mehr. Andersrum passiert der Fehler 
aber nie.

Naja für heute reichts, danke nochmal an alle!

von oldmax (Gast)


Lesenswert?

hi
Auch wenn ich von Basic nich viel Ahnung hab und mich mit C ebenfalls 
mächtig schwer tu, muß ich hier etwas zum Pollin Board sagen. Ich 
arbeite damit zu meiner vollen Zufriedenheit, abgesehen von dem Umstand, 
das es nicht direkt mit AVR Studio zusammenarbeitet und man mit PonyProg 
flashen muß. Aber für den Preis muß man auch keinen Luxus erwarten. Die 
Taster auf dem Board kannst du getrost vergessen, kauf dir ein 
Steckbrett, damit bist du bei Experimenten völlig offen. Ein altes 
40pol. IDE Kabel einseitig auf eine 40polige Fassing gelötet und du hast 
die perfekte Verbindung. Es gibt aber auch fassungähnliche Teile zum 
aufquetschen.
Damit du wieder Spaß mit deinem Controler hast, nutze die RS 232. Ich 
habe hier irgendwo ein Tool, um in den Controler zu sehen und die 
Variablenwerte zu beobachten. Such mal nach OpenEye. Ist zwar Assembler 
orientiert, aber mit ein wenig Phantasie kannst du das auch für andere 
Programmiersprachen nutzen.
Dieses Tool kann auch als Basis für eine Kommunikation µC- PC dienen.
Gruß oldmax

von Werner B. (werner-b)


Lesenswert?

oldmax schrieb:
> ...und man mit PonyProg flashen muß...

Zwingt dich doch niemand. Das Board hat auch einen 10 poligen ISP und 
einen JTAG  Anschluss.

von oldmax (Gast)


Lesenswert?

Hi
Ja hat es, aber braucht's da nicht einen JTagIce oder sowas. ich bin da 
nicht soweit eingetaucht, weil ich die gefundene Info nicht so einfach 
umsetzen konnte. Wenn mal wieder ein wenig Zeit bleibt, werd ich mich 
damit mal befassen. Trotzdem, eine kurze Info nehm ich geern an.
Gruß oldmax

von Luge (Gast)


Lesenswert?

Ja, das Board hat auch zwei 10Pin Anschlüsse für ISP und JTAG.
Ich benutze aber erstmal noch die fertige serielle Schnittstelle und 
flashe über PP, man will sich ja langsam vorrantasten :)

@ Oldmax: Du sagst die Taster sind Schrott und ich sollte mir ein 
externes I/O Teil selber bauen. Das hab ich auch vor, aber erstmal will 
ich dass das "nackte" Board zu 100% funkt, damit ich andre Fehlerquellen 
ausschliesen kann.
Denn evtl liegts ja wirklch an ner falschen Schaltung/falscher 
Programmierung. Wenn ich jetzt schon ein komplexeres Gerät dazustecke 
und etwas nicht funkt kann ich den Fehler nicht sofort eingrenzen.

Wenn ich heute mittag daheim bin probier ichs erstmal mit der Entfernung 
der Kondensatoren bei den Tastern.
Oder hast du evtl ne andere Idee, bzw hast du bei dir das irgendwie in 
den Griff bekommen?

Mittlerweile bin ich soweit:
Steuere ich die LEDS mit der Software an kann ich sie leuchten und 
blinken lassen wie ich will, alles funkt.

Kommen aber Taster ins Spiel, die irgendwas triggern sollen, happerts.
(Wobei es mittlerweile scho besser wurde :))

Folgender Code:

DDRD = 0xE0;   // Pin 0-4 als Eingang, Pin 5-7 als Ausgang


  while(1){

  if (PIND & (1<<2))
    PORTD = (1<<5);      // T1 schaltet Led1 ein und alles andre aus

  if (PIND & (1<<3))
    PORTD = (1<<6);     // T2 schaltet Led2 ein und alles andre aus

  }

Funkt auch relativ gut, nur ganz selten kommt es vor, dass wenn ich Led2 
durch T2 einschalte mir das Programm hängen bleibt. Led2 leuchtet für 
immer und lässt sich auch durch T1 nicht ausschalten, nur ein Reset 
hilft.

Evtl weis ja noch jemand Rat!
Danke euch!

von Blackbird (Gast)


Lesenswert?

Wenn die Taster jetzt zwischen µC-Eingang und Masse liegen, sollte noch 
der intern Pullup-Widerstand geschaltet sein.
1
    DDRD  |= ~(1 << PD2);     // Pin PD2 input
2
    PORTD |= (1 << PD2);      // Pin PD2 pull-up enabled

Entprellen hilft auch noch.

Blackbird

von Luge (Gast)


Lesenswert?

Danke dir, bin aber noch nicht dazugekommen R und C auszulöten.
Wobei ich wohl den R drinnen lassen werde, weil irgendwann vergess ich 
bestimmt mal die Pull-ups zu setzen und dann gibts nen Kurzen :)

Kannst du mir vielleicht noch erklären inwiefern die Kapazitäten hier 
Fehler verursachen können?

von Blackbird (Gast)


Lesenswert?

>> ... vergess ich bestimmt mal die Pull-ups zu setzen und dann
>> gibts nen Kurzen ...

???
Wieso das?

Male Dir mal die Teilschaltung mit den Tastern auf und dann versuche zu 
verstehen, was da passiert.

Dein "Software-Problem" scheint in Wirklichkeit ein massives 
Hardware-Problem zu sein.

Vielleicht hat Dein Netzteil auch ein Macke (zu wenig Strom).

Die Cs werden von den Tastern kurzgeschlossen, da fließt kurzzeitig ein 
hoher Strom. Schlecht für die Tasten.


Blackbird

von oldmax (Gast)


Lesenswert?

Hi
Eines sollte klar sein, die Taster beim Pollin-Board sind von VCC auf 
den Eingang gelegt und haben, damit der Eingang den Wechsel mitbekommt 
einen PullDown extern beschaltet. Die internen Widerstände im µC sind 
PullUp's, das heißt, sie ziehen den Eingang intern gegen VCC. Damit nun 
ein Taster funktioniert, muß er nun gegen GND schalten.  Ich würd da 
nicht allzuviel rumlöten... lass es einfach drauf und arbeite mit einem 
Steckbrett. Kostet auch so ca. 15 € bei Pollin und man kann sich da 
schon schöne kleine Versuche einfallen lassen. Ein paar Transistoren, 
Widerstände, Relais und  was sonst noch so in Frage kommt sowie ein 
Telefonkabel ( massiv) dann brauchst du nicht die (relativ) teuren 
Steckbrücken. Und dann versuche dich mal mit den Tutorials anzufreunden, 
Das Assembler kann ich gut empfehlen und keine Angst, es sei 
schwierig... wenn du dich an die Regeln hälst, gibt's meiner Meinung 
nach nix besseres.... (nu haut mich aber nich....)
Wie gesagt, die RS solltest du dir so schnell wie möglich öffnen. Damit 
hast du dann eine gute Möglichkeit, dem µC auf die Bits zu schauen.
Gruß oldmax

von frank (Gast)


Lesenswert?

Hallo, da gebe ich doch auch noch meinen Senf dazu. Ich habe nur die 
Kondensatoren wieder ausgelötet, seit dem geht mein Board 100% so wie es 
soll. Ist für einen Anfänger natürlich nicht so schön, dass die Taster 
nach Ucc und die LED nach Uss beschalten sind, da aller Beispielcode in 
allen Tutorials genau anders rum ist, aber das schärft den Verstand. Und 
der Preis ist gerade für jemand, der noch nicht so genau weiß, ob er 
"dabei" bleibt einfach eine schön niedrige Einstiegshürde.
Frank

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
Noch kein Account? Hier anmelden.