Datenübertragung mit RS232 zum PC

Hallo,

Da ist noch so ein Teil, dessen Funktion mir nicht klar ist. Es sitzt links unten und sieht aus, wie zwei ineinander geschobene Dreiecke mit vier Anschlüssen.
Ist mir auch nicht ganz klar - deswegen bin ich auf Sleep auch nicht weiter eingegangen.

Ich hab mal versucht das rauszufinden. Jaja ... diese amerikanischen Schaltzeichen. die sind schon ein wenig komisch :rolleyes:

Also im Datenblatt steht über den Teil folgendes ...
13.2.5 Digital Input Enable and Sleep Modes
As shown in Figure 13-2, the digital input signal can be clamped to ground at the input of the
Schmitt Trigger.
The signal denoted SLEEP in the figure, is set by the MCU Sleep Controller in
Power-down mode, Power-save mode, and Standby mode to avoid high power consumption if
some input signals are left floating, or have an analog signal level close to VCC/2.
Der rot markierte Teil meint den MOSFET am SchmittTrigger des Eingangs. Also der MOSFET der zwischen diesem komischen Ding und dem Dreieck nach GND geht.

Das ist leider auch das einzige was ich so auf die Schnelle gefunden habe. Der Rest ist jetzt "zwischen den Zeilen gelesen" und logisch hergeleitet.

Also im Sleep-Mode wird der Eingang über diesen besagten MOSFET auf GND gelegt (wissen wir schon). Wenn man annimmt das da an dem Pin auch eine Außenbeschaltung dran ist,dann muß man verhindern das zB ein Kurzschluß auftritt. Das geht nur in dem man den Eingangspin von der inneren Schaltung trennt. Ich tippe also darauf das es etwas in der Art ist ...
Bilateraler_Switch.png
Das ist ein Ausschnitt aus dem Datenblatt des 4066 CMOS-ICs (Bilateraler Switch). Wenn man sich die Transistoren etwas hinbiegt dann kann man die beiden In/Out nach links und rechts legen. Die Ansteuerung mit dem Inverter erkennt man auch wieder (die beiden ersten Inverter fallen weg). Es wird also ein CMOS-Schalter sein der den Eingangspin von der inneren Schaltung trennt wenn der Prozessor in den Schlafmodus geht.

Gruß
Dino
 
reingefallen... PORTxn ist das n-te Bit des Registers PORTx.

Das ist klar.

PORTx ist das Port Latch Register von Portx, ...

:confused: Was meinst Du mit der groß bzw. klein geschriebenen Variante?

..., und nicht zu verwechseln mit dem Data Direction Register von Portx (DDRx)

Das ist auch klar.

PORTx ist nicht (!) gleich Portx.

:confused::confused::confused:

Achtung, der Ausgang des DDxn D-Q-Latches bedient den enable-Pin des Gatters.

Ahhh! Das hat mir gefehlt! Das erklärt vieles.

PORTE/AUX ist "J704" in Sheet7 auf Seite 5 der pdf.

Aber dort finden sich nur Kabelbäume und die Verbindung zu den Erweiterungsports. Die Verbindungen zwischen dem grünen Sockel und JP901(XTAL1), JP900 (OSCSEL) und den PORTB und PORTE Headern wird dort nicht aufgezeigt.

Der OSCSEL-Jumper verbindet entweder einen Oscillator, der mit einem Quarz festgelegt wird, oder einen softwaregenerierten Takt mit seinem Pin2. Dieser Pin kann über den XTAL1-Jumper mit dem XTAL1-Netz (also auch mit PB6 beim grünen Sockel) verbunden werden. Dann läßt sich der Prozessor mit einer externen Clock betakten (eben Software oder Hardware). Wenn der aber mit Seiner internen Clock läuft, und Du die Beinchen für irgendwas anderes (Taster, Leds, Whatever) benutzen willst, sind die ja im STK500 über den Sockel->XTAL1-Netz (inklusive PORTE-Header)->XTAL1-Jumper->OSCSEL-Jumper mit der Hardware/Software-Clock des STK500 verbunden, welche dann also ihren Takt an die LEDs/Taster/Whatever überträgt, klar?

Nein! Dann müßten meine LEDs, die an PB6/7 hängen ja im Takt des Mastercontrolers an und aus gehen. Sie sind aber aus.

Achtung, Du wirfst den Controller und das STK durcheinander:
mit den Fusebiteinstellungen legst (hierbei) Du im Controller fest, ob PB6 und/oder PB7 normale I/O-Pins sein sollen, oder als Takteingang dienen sollen. Das hat aber keinen Einfluß auf die Verdrahtung des STK.

Aha! Mit welchen Fusebiteinstellungen schalte ich PB6/7 denn auf I/O. Ich dachte das wäre die default-Einstellung durch die Wahl eines internen Taktes.

Nochmal, der Controller kann
-mittels internem RC-Oscillator betaktet werden, dann sind PB6 und PB7 freie I/Os

Also doch?

-mit unterschiedlichen Resonatoren/Quarzen Betaktet werden, dann werden die beiden Beinchen auf die Taktogik umgeschaltete (siehe oben "alternate functions")

Auch mittels Fusebits.

-mit einer externen Clock (Quarzoszillator etc) betaktet werden, dafür wird nur PB6 verbraucht, PB7 bleibt I/O

Den Unterschied zwischen den letzten beiden Varianten verstehe ich nicht.

Wie der Controller also mit den Impulsen an den Beinchen umgeht, hängt (in erster Linie) von den Fuses, und danach ggf vom Programm ab. Welche Signale/Impulse das STK auf die Beinchen legt, hängt von den Jumpern und der entsprechenden Einstellung um AVRStudio ab (Was der MasterController ausgeben soll, kann man da festlegen).

Das ist klar.

Nein, Dein Controller läuft so mit dem internen Oscillator, der Takt, den der MasterC generiert wird über die beiden Jumper und den PORTE-Header an PB6 weitergeleitet. Wenn Du PB6 als Eingang verwendest, bekommst Du da das entsprechende Signal/die entsprechende Frequenz. Wie das/die zu interpretieren ist, ist Sache Deines Programmes - es hat nichts mehr mit der Taktlogik des Controllers zu tun. Wenn das aber ein Ausgang ist, könnte sogar ein Kurzschluß vorliegen - keine Ahnung, wie das abgesichert ist (wenn die Clock zB grad hi ist, und Du das Prozessorbeinchen auf Gnd schaltest)

???

Also ich danke Euch vielmals für Die Zeit und Mühe, die Ihr aufwendet! Aber irgendwie verziehen sich die Nebel nicht wirklich. Teilweise wird es klarer, teils aber noch verworrener. Ich muß irgendwo einen massiven Knoten im Hirn haben.
 
...Aber dort finden sich nur Kabelbäume und die Verbindung zu den Erweiterungsports. Die Verbindungen zwischen dem grünen Sockel und JP901(XTAL1), JP900 (OSCSEL) und den PORTB und PORTE Headern wird dort nicht aufgezeigt....
Doch, die Kabelbäume sind doch die Verbindung... und der PORTB-Header hat beim grünen Sockel eben keine Verbindung zu PB6/PB7
Der grüne Sockel ist U402 in Sheet 4. Pin9=PB6 liegt demnach auf dem XT1-Netz des STK500, Pin10=PB7 auf dem XT2-Netz. Verfolgst Du die Netze, erkennst Du unter anderem, daß sie auch U403 landen, außerdem "verlassen" sie das Sheet rechts mit den anderen Bussen, und dem !RST-Netz. Beide sollen sich auf Sheet 5 und 7 wiederfinden lassen, XT1 zusätzlich noch auf Sheet 9.
Auf Sheet 5 befinden sich nur weitere Sockel, die (wie eben auch die in Sheet 4) auch mit den XT1/2-Netzen verbunden sind, klar.
Genau in der Mitte von Sheet 7 findet man die Netze XT1/XT2 wieder, und kann sie (über den Bus) zu J701 (Pin17/18) verfolgen (das ist einer der Expand-Header, ich denke(!) mal Expand1), und eben auch zu J704 (Pin 7/8). Das ist der PORTE/AUX-Header.
Auf Sheet 9 findet sich in der unteren Hälfte links das Signal PCLK. Das ist der, vom MasterController generierte Takt, der letztendlich auf JP900 (OSCSEL-Jumper) ankommt. Darunter erkennt man eine Schaltung, die mit dem Quarz(sockel) XC900 einen Takt generiert, der auch auf dem JP900 landet. Dieser kann eine der beiden Taktquellen (über Schutzdioden/Schmitt-Trigger) auf JP901 (XTAL1-Jumper) weiterleiten, welcher sie wiederum auf das XT1-Netzlegen kann.

Wenn der Controller also per Fuses mit seinem internen Oscillator läuft (ja, das ist default), folglich die beiden Beinchen normale I/Os sind (default ist tristate), und Dein Programm jetzt irgendwas mit den Beinchen macht, liegt das Ergabnis eben auch auf dem Expand-Header, dem PORTE-Header, und bei PB6 auch auf Pin2 vom XTAL1-Jumper an. Wenn dieser geschlossen ist, das STK mit seiner Takt-Logik aber irgendwas anderes über den OSCSEL-Jumper dahin schickt, treffen sich hier eventuell wiedersprüchliche Signale.

Nochwas zu den anderen PortB-Beinchen. Diese landen in Sheet 4 auf dem PBT[7..0]-Bus (ohne PB6,PB7 !). Dieser läßt sich unter anderem auch (unten) auf Sheet 7 wiederfinden, wo er zum PORTB-Header (J705) läuft.
*************************************************************
So, nun räume ich mal mit den restlichen Sachen da oben auf...
...:confused: Was meinst Du mit der groß bzw. klein geschriebenen Variante?...
Oft findet man irgendwo auch die Bezeichnung Port bzw Portx für die Schnittstelle, als (mehrere) Beinchen des Controllers. Diese sind nicht mit dem PORT-LATCH-Register (eben auch PORTx) zu verwechseln. Letztendlich hat zur Auflösung Deiner Verwirrung aber nur der Fakt gefehlt, daß der Ausgang des DDRxn-D-Q-Latches den Ausgangstreiber (vom PORT) des Beinchens sperren kann. Wie die 3 Signale auf den Pullup wirken war ja bereits klar, oder?
...Nein! Dann müßten meine LEDs, die an PB6/7 hängen ja im Takt des Mastercontrolers an und aus gehen. Sie sind aber aus...
Du hast aber an PB6/7 des Controllers (grüner Sockel) gar keine LEDs hängen, oder?
Wenn Du den LED-Header mit dem PortB-Header verbindest, liegt (siehe oben) PB6/PB7 des grünen Sockels ja nicht mit auf dem PortB-Header. deswegen sind die LEDs aus. Was Dein Programm mit den Beinchen tut, läßt sich am PortE-Header abgreifen, und der ist mit der STK-internen Takt-Geschichte verbunden... aber das hatte wir ja auch schon oben...
...Den Unterschied zwischen den letzten beiden Varianten verstehe ich nicht...
Schau dazu mal ins Datenblatt des Controllers (S.28 bis 34).
Der Controller kann über die beiden Beinchen XTAL1 und XTAL2 einen (externen) Quarz oder Resonator "treiben/zum schwingen bringen". Das ist ein aktiver Prozeß. Aus diesen Schwingungen wird dann der Takt abgeleitet. Hierfür werden beide Beinchen von der normalen I/O-Logik von PortB getrennt. Es gibt dabei unterschiedliche Modi (unterschiedliches Schwingverhalten, unterschiedliche Frequenzbereiche), die bei der Festlegung der Fuses (CKSEL und ggf daraus folgend auch die SUT) zu beachten sind.
Der Controller kann mit einem seiner internen Oszillatoren betrieben werden (8MHz(default, aber durch 8 geteilt -> effektiv also 1MHz) oder 128kHz), dann bleiben beide Beinchen I/Os.
Der Controller kann seinen Takt aus einer externen Clock an XTAL1 ableiten. dann ist PB6 von der I/O-Logik getrennt, PB7 nicht. Bei dieser Methode wird die Clock aber nicht "getrieben", die Flanken müssen "von sich aus" vorliegen, klar?
(und um Deine Mißverständnisse dazu zu beseitigen: Die Clock-Möglichkeiten des STK500 nutzen nur diesen Weg - Der Quarz in Sockel des STK wird durch das STK getrieben, am OSCSEL-Jumper liegt also schon eine "externe Clock" an (XTAL2 nutzt das STK also gar nicht). Dementsprechend wäre bei dieser Methode im Controller die Fuse für externe Clock zu setzen (CKSEL3..0 = 0000). Wenn man den Controller aber wirklich einen Quarz treiben lassen will, muß dieser (mit den entsprechenden Abblockkondensatoren) an die XTAL1/2-Netze (am PORTE-Header), dann sollte aber keine Verbindung zur Clockerzeugung des STK bestehen (XTAL1-Jumper)
Warum spielt das aber genau genommen keine Rolle? Weil die externe Clock "stärker" ist, als der Controller interne Quarz-Treiber. Wenn die Fuses also irgendeinen externen Quarz erwarten lassen (und den zu treiben versuchen), da aber eine externe Clock drauf liegt, übersteuert diese den eventuellen Quarz, und zwingt dem Controller ihren Takt auf. Auf diesem Wege kann man also zT "verfuste" Controller "reanimieren" (<- genau genommen sind die ja nicht tot oder so - sie warten nur auf den korrekten Takt)
 
Hallo wer,

also mal was zu der Taktung. :rolleyes:

Wenn du per Fuse den internen RC-Oszillator aktiverst, dann braucht der ja keine externen an den Pins hängenden Bauteile. Also sind dann beide Pins PB6+PB7 für IO frei.

Wenn du auf externen Quarz oder Keramikresonator schaltest dann benötigt dieser Quarz zwei Anschlüsse am Atmel. Damit sind deine beiden Pins PB6+PB7 nun XTAL1 und XTAL2 (die alternative Funktion). XTAL1 ist der Eingang des internen Verstärkers und XTAL2 ist der Ausgang. Dieser interne Verstärker bildet zusammen mit dem Quarz/Keramikresonator der an den beiden Pins hängt den Taktoszillator des Atmels.

Wenn du auf externen Quarzoszillator stellst, dann hast du eine externe Taktquelle. Der Takt wird also direkt von einem externen Baustein angeliefert. Du benötigst also am Atmel kein frequenzbestimmendes Bauteil wie zB einen Quarz. Da der Takt auf einer Signalader angeliefert wird (Quarzoszillatoren haben nur einen Ausgang. Das sind KEINE Quarze) benötigst du nur den Pin XTAL1 und PB7 ist frei als IO verwendbar.

Ein externes RC-Glied kann man auch noch anschließen. Das ist aber Mumpitz. Keine Ahnung wer sowas macht. :p Laß ich also mal weg ;)

Gruß
Dino
 
...Ein externes RC-Glied kann man auch noch anschließen. Das ist aber Mumpitz. Keine Ahnung wer sowas macht. :p Laß ich also mal weg ;)...
Hatte das so eigentlich auch in Erinnerung - aber es geht ja hier um den 168er, oder? Die entsprechende CKSEL-Einträge sind durch den Full Swing Crystal Oscillator belegt. Ein externer R-C ist demnach nicht mehr drin. Hab das jetzt extra nochmal mit dem DB vom Mega8 verglichen.
P.S.: ich hab den auch noch nie benutzt... eigentlich nur interner R-C, oder externer Quarz (war bisher immer ausreichend genau).
 
Hatte das so eigentlich auch in Erinnerung - aber es geht ja hier um den 168er, oder? Die entsprechende CKSEL-Einträge sind durch den Full Swing Crystal Oscillator belegt. Ein externer R-C ist demnach nicht mehr drin. Hab das jetzt extra nochmal mit dem DB vom Mega8 verglichen.
P.S.: ich hab den auch noch nie benutzt... eigentlich nur interner R-C, oder externer Quarz (war bisher immer ausreichend genau).

Dino: Soweit wie Du das beschrieben hast, ist es klar.

LotadaC: Was meinst Du denn mit "EXTERNER R-C ist nicht mehr DRIN"? Wo drin? Im ATmega168? Dann ist er doch nicht extern?

Bezüglich der PORTB Problematik will ich jetzt erst mal einen vereinfachten, schematischen Schaltplan zeichnen. Vielleicht wird es dann klar. Gibt es die Möglichkeit sowas hier im Forum einzustellen und solange durch eine korrigierte Fassung zu ersetzen, bis alles korrekt ist?
 
wer schrieb:
...Nein! Dann müßten meine LEDs, die an PB6/7 hängen ja im Takt des Mastercontrolers an und aus gehen. Sie sind aber aus...
Du hast aber an PB6/7 des Controllers (grüner Sockel) gar keine LEDs hängen, oder?
Wenn Du den LED-Header mit dem PortB-Header verbindest, liegt (siehe oben) PB6/PB7 des grünen Sockels ja nicht mit auf dem PortB-Header. deswegen sind die LEDs aus. Was Dein Programm mit den Beinchen tut, läßt sich am PortE-Header abgreifen, und der ist mit der STK-internen Takt-Geschichte verbunden... aber das hatte wir ja auch schon oben...
So weit wie ich es jetzt verstehe müßte eine LED blinken, wenn ich sie mit PIN7 (XT1) des PORTE-Headers verbinde.
 
Was meinst Du denn mit "EXTERNER R-C ist nicht mehr DRIN"? Wo drin? Im ATmega168? Dann ist er doch nicht extern?

Bezüglich der PORTB Problematik will ich jetzt erst mal einen vereinfachten, schematischen Schaltplan zeichnen. Vielleicht wird es dann klar. Gibt es die Möglichkeit sowas hier im Forum einzustellen und solange durch eine korrigierte Fassung zu ersetzen, bis alles korrekt ist?
Im Datenblatt drin. Du kannst es aber als "so nichtmehr machbar" (laut Datenblatt) interpretieren.
Klar kannst Du (mit Eagle oder sonstwas) einen Schaltplan zeichnen, und den als Bild (png, gif) in Deinen Beitrag einbinden (wie das geht, erklärt Dino immer wieder gern:p ->siehe Button Anhänge verwalten). Allerdings kannst Du den Beitrag nur 24h lang bearbeiten, danach kann Dir nur noch ein Mod helfen. Was ist eigentlich, wenn man eine veränderte Datei mit demselben (alten) Namen neu hochlädt?
So weit wie ich es jetzt verstehe müßte eine LED blinken, wenn ich sie mit PIN7 (XT1) des PORTE-Headers verbinde.
Naja, wenn Du so fix gucken kannst, (und der Schmitt-Trigger den Strom schafft (AFAIR sind da 20mA absolute Maximum ratings), dann schon. Käme also drauf an, was Die LED über R925 (und den Schmitt-Trigger) letztendlich zieht.
 
Hallo,

Was ist eigentlich, wenn man eine veränderte Datei mit demselben (alten) Namen neu hochlädt?
also ich tippe mal drauf das die Dateien über eine SQL-Datenbank als Indexnummern verwaltet werden. Wenn man also eine Datei mit selbem Namen hochlädt wird die wohl zusätzlich vorhanden sein. Ist aber nur ne Vermutung. Ausprobiert habe ich es noch nicht. Genaues wird da wohl Dirk erzählen können. OOder man probiert es einfach mal aus :rolleyes:

Gruß
Dino
 
Danke! Eine gute Idee. Das werde ich auf alle Fälle machen. Und das IC sockeln. Dummerweise geht jetzt wieder die Bestellerei los.

Also mit der Hardware tue ich mir nach wie vor schwer. Habe mir jetzt IC Sockelleisten gekauft. Dummerweise passen die Pins der mitgelieferten Stiftleisten da nicht rein, sie sind eindeutig zu dick. Wenn man nicht weis, wie das heißt, was man sucht, dann ist der Reichelt ein Heuhaufen in dem irgendwo die Gesuchte Stecknadel steckt. Oder auch nicht? Vielleicht gibt es das Gesuchte ja gar nicht, oder nicht bei Reichelt? Habe neulich die Firma Mouser gefunden und war beeindruckt von der riesigen Menge an Produkten. Habe dort eine dreiviertel Stunde nach Lochrasterplatinen gesucht und sie nicht gefunden. Das blöde ist ja, daß solche Fehlkäufe zwar nur Pfennigsbeträge sind, aber jedesmal dicke Portokosten da drauf kommen. Ganz abgesehen von der Zeit, die das kostet.

Aber nicht alles ging schief. Habe mein erstes Projekt jetzt so weit, daß ich Daten über die RS232 zum PC schicken kann. Ich kann einen Temperatursensor auslesen (TSIC 306) und die Temperatur stimmt, zumindest bei Zimmertemperatur, mit der eines Vergleichsthermometers überein. Will jetzt noch ein paar extremere Temperaturen testen und meine Arithmetik vereinfachen, denn wie ich jetzt festgestellt habe, kann der ATmega168 multiplizieren.

Mein LCD-Modul habe ich, bis auf die Stiftleisten :angry:, zusammengebraten. Teilweise unter abenteuerlichen Verrenkungen. Für mich ist immer noch eine offene Frage, wie man z.B. eine dreipolige Jumper-Stiftleiste GERADE einlötet, OHNE sich die Finger zu grillen. Bevor ich das Teil in Betrieb nehme möchte ich unbedingt irgendwelche Tests machen. Was könnte man den da so testen? Wie geht man da systematisch vor?
 
Hallo,

Also mit der Hardware tue ich mir nach wie vor schwer. Habe mir jetzt IC Sockelleisten gekauft. Dummerweise passen die Pins der mitgelieferten Stiftleisten da nicht rein, sie sind eindeutig zu dick. Wenn man nicht weis, wie das heißt, was man sucht, dann ist der Reichelt ein Heuhaufen in dem irgendwo die Gesuchte Stecknadel steckt. Oder auch nicht? Vielleicht gibt es das Gesuchte ja gar nicht, oder nicht bei Reichelt? Habe neulich die Firma Mouser gefunden und war beeindruckt von der riesigen Menge an Produkten. Habe dort eine dreiviertel Stunde nach Lochrasterplatinen gesucht und sie nicht gefunden. Das blöde ist ja, daß solche Fehlkäufe zwar nur Pfennigsbeträge sind, aber jedesmal dicke Portokosten da drauf kommen. Ganz abgesehen von der Zeit, die das kostet.

Wenn du mal richtig erschlagen werden willst dann sieh dir mal das an ...
http://de.farnell.com/
https://hbe-shop.de/
dagegen ist Conrad oder Reichelt nen Bastelladen :p :rolleyes:

Du mußt bei den Steckern unterscheiden zwischen den viereckigen Pins (Pfostenstecker) und denen mit runden Pins (gedrehte Kontakte / Präzisionskontakte). Teilweise werden auch beide als Platinenverbinder benannt. Es gibt sie auch in verschiedenen Längen und die Pfostenstecker auch als Kabelstecker mit Crimpanschluß.

Aber nicht alles ging schief. Habe mein erstes Projekt jetzt so weit, daß ich Daten über die RS232 zum PC schicken kann. Ich kann einen Temperatursensor auslesen (TSIC 306) und die Temperatur stimmt, zumindest bei Zimmertemperatur, mit der eines Vergleichsthermometers überein. Will jetzt noch ein paar extremere Temperaturen testen und meine Arithmetik vereinfachen, denn wie ich jetzt festgestellt habe, kann der ATmega168 multiplizieren.
Die neueren haben Multiplikationsbefehle bereits im Assembler-Befehlssatz drin. Unter ner Hochsprache geht das aber bei allen. Mit Assembler geht es aber auch bei allen wenn man sich das als Subroutine zusammenschreibt.

Mein LCD-Modul habe ich, bis auf die Stiftleisten :angry:, zusammengebraten. Teilweise unter abenteuerlichen Verrenkungen. Für mich ist immer noch eine offene Frage, wie man z.B. eine dreipolige Jumper-Stiftleiste GERADE einlötet, OHNE sich die Finger zu grillen. Bevor ich das Teil in Betrieb nehme möchte ich unbedingt irgendwelche Tests machen. Was könnte man den da so testen? Wie geht man da systematisch vor?
Finger grillen ist schonmal gut :cool: Dann weißt du das du wenigstens das Bauteil nicht gegrillt hast weil das mehr Temperatur abkann :sarcastic:

Zuerst würde ich mal ein Programm schreiben das ein "Hello World" auf das Display zaubert oder die LEDs blinken läßt. Bei nem UART evtl nen Testtext ausgibt oder nen eingegebenen Text einfach zurückschickt oder aufs Display bringt. Dann weißt du das die Hardware genau das tut was sie soll. So gehe ich zB vor wenn ich zuerst mal meine zusammengelötete Hardware teste. Dann ist man sicher das die Hardware läuft und man kann sich bei der Fehlersuche auf die Software konzentrieren.

Bei der dreipoligen Jumper-Stiftleiste ... steck nen Jumper drauf und pack den an. Der hat Kunststoff drum rum und isoliert deinen Finger etwas gegen den Lötkolben.

Gruß
Dino
 
Zuerst würde ich mal ein Programm schreiben das ein "Hello World" auf das Display zaubert oder die LEDs blinken läßt. Bei nem UART evtl nen Testtext ausgibt oder nen eingegebenen Text einfach zurückschickt oder aufs Display bringt. Dann weißt du das die Hardware genau das tut was sie soll. So gehe ich zB vor wenn ich zuerst mal meine zusammengelötete Hardware teste. Dann ist man sicher das die Hardware läuft und man kann sich bei der Fehlersuche auf die Software konzentrieren.

Ich meinte die Tests, die man sinnvoller Weise macht, bevor man Spannung drauf gibt. Ich möchte möglichst Rauchzeichen vermeiden! ;)

Bei der dreipoligen Jumper-Stiftleiste ... steck nen Jumper drauf und pack den an. Der hat Kunststoff drum rum und isoliert deinen Finger etwas gegen den Lötkolben.

Naja, Kunsstoff ist ja durchaus auch temperaturempfindlich. Aber unabhängig von der Temperatur: Ich presse mit dem Zeigefinger der linken Hand das Bauteil gegen die Platine. Der Daumen der linken Hand hält von der anderen Seite dagegen. Dann drehe ich die ganze Geschichte um, so daß ich die Lötseite sehe. Ob das Bauteil jetzt noch richtig sitzt kann ich nur ahnen. Die rechte Hand hält den Lötkolben. Mit den Zähnen führe ich jetzt das Lötzinn an die Lötstelle. -- Ok, der letzte Satz war geschwindelt, aber er beschreibt das Problem.
 
Bezüglich der PORTB Problematik will ich jetzt erst mal einen vereinfachten, schematischen Schaltplan zeichnen. Vielleicht wird es dann klar. Gibt es die Möglichkeit sowas hier im Forum einzustellen und solange durch eine korrigierte Fassung zu ersetzen, bis alles korrekt ist?

Ist das so weit richtig?

portb.png

Edit: habe den alten Beitrag gelöscht und hier neu eingefügt um die 24 Stunden Bearbeitungsgrenze nicht zu überschreiten. Hoffe, das ist so ok?
 
Naja, Kunsstoff ist ja durchaus auch temperaturempfindlich. Aber unabhängig von der Temperatur: Ich presse mit dem Zeigefinger der linken Hand das Bauteil gegen die Platine. Der Daumen der linken Hand hält von der anderen Seite dagegen. Dann drehe ich die ganze Geschichte um, so daß ich die Lötseite sehe. Ob das Bauteil jetzt noch richtig sitzt kann ich nur ahnen. Die rechte Hand hält den Lötkolben. Mit den Zähnen führe ich jetzt das Lötzinn an die Lötstelle. -- Ok, der letzte Satz war geschwindelt, aber er beschreibt das Problem.

Wenns der Platz zuläßt mit 2 Kreuzpinzetten, oder ein Tropfen Sekundenkleber ersparen verbrannte Finger.

MfG
caargoo
 
Hallo,

Ich meinte die Tests, die man sinnvoller Weise macht, bevor man Spannung drauf gibt. Ich möchte möglichst Rauchzeichen vermeiden! ;)
also wenn die ICs gesockelt sind würde ich erstmal die ICs aus den Sockeln entfernen und nur Saft auf die Schaltung geben. Mehr nicht. Dann an den Sockeln und anderen wichtigen Punkten messen ob da die Spannung ankommt die man nach dem Schaltplan erwarten würde.

Naja, Kunsstoff ist ja durchaus auch temperaturempfindlich.
Wenn du den Kunststoff der Jumper zum schmelzen bringst, dann wirst du auch problemlos Transistoren, ICs und Dioden kaputtbraten. Das mit dem "Finger verbrennen" ist schon OK :cool: Wenn es zwar warm wird aber man die Hitze noch aushalten kann, dann lötest du schnell genug :p Übung macht den Meister. Wenn der Finger zu heiß wird, dann nimm den Lötkolben weg und laß alles wieder richtig abkühlen. Dann einen neuen Versuch. Aber nicht zwanzig mal probieren!

[/B][/B]Aber unabhängig von der Temperatur: Ich presse mit dem Zeigefinger der linken Hand das Bauteil gegen die Platine. Der Daumen der linken Hand hält von der anderen Seite dagegen. Dann drehe ich die ganze Geschichte um, so daß ich die Lötseite sehe. Ob das Bauteil jetzt noch richtig sitzt kann ich nur ahnen. Die rechte Hand hält den Lötkolben. Mit den Zähnen führe ich jetzt das Lötzinn an die Lötstelle. -- Ok, der letzte Satz war geschwindelt, aber er beschreibt das Problem.
Alles viel zu kompliziert. :rolleyes:

Halte den Lötkolben wie einen Bleistift (also zwischen Daumen und Zeigefinger). Dann kannst du entweder mit den anderen Fingern der Hand das Lötzinn nachführen. Die linke Hand ist dann vollkommen frei für die Bauteile.

Alternativ führst du mit dem linken Daumen und Zeigefinger das Lötzinn zu und hast dann bei der linken Hand wieder drei Finger für die Bauteile frei.

Alles Übungssache :p Denk mal an die Chinesen mit ihren Stäbchen.

Und das mit dem "Bauteil richtig sitzt und ahnen". Entlöte mal größere Platinen. Also auf der Lötseite brutzeln und auf der Bauteilseite im Blindflug das richtige Bauteil greifen und ziehen. Das geht problemlos. Das Gehirn kann beide Hände sauber koordinieren so das man auf beiden Seiten der Platine die richtige Stelle trifft.

Gruß
Dino
 
Die neueren haben Multiplikationsbefehle bereits im Assembler-Befehlssatz drin.

Was genau meinst Du mit 'die neueren'? Sind das die gleichen, die auch 'movw' kennen?

Hier die Routine, die die Temperatur umrechnet:

Code:
#define KANNMUL

.DEF	temp1	= R16
.DEF	temp2	= R17
.DEF	tempL	= R18
.DEF	tempH	= R19

; Testfile für die Temperaturumrechnung
; Der TSIC liefert einen 11 Bit Wert (0 - 0x07ff) der dem Temperaturbereich von 
; -50°C - 150°C entspricht. D.h. T = 200*TSIC-Wert/2047 - 50
;
; Die folgende Routine erwartet den Meßwert in tempH/L und liefert 
; den ganzzahl. Anteil der Temp. in tempH
; und die erste Nachkommastelle in tempL
; 
; Der Einfachheit halber wird durch 2048 statt durch 2047 dvidiert.
; Die Werte werden durch Addition von 0,05 auf eine Stelle hinter dem Komma gerundet.

Main:
	ldi	tempL,  LOW(0x07ff)
	ldi	tempH, HIGH(0x07ff)

; nur für den Simulator !!!

GetTemp:

#ifdef	KANNMUL

	ldi	temp1, 25
	mul	tempH, temp1
	mov	tempH, R0
	mul	tempL, temp1
	add	R1, tempH
	movw	tempL, R0

#else

	push	tempH
	push	tempL
	lsl	tempL
	rol	tempH
	lsl	tempL
	rol	tempH
	lsl	tempL
	rol	tempH
	mov	temp1, tempL
	mov	temp2, tempH	;  *8
	lsl	tempL
	rol	tempH		; *16
	add	tempL, temp1
	adc	tempH, temp2	; *24
	pop	temp1
	add	tempL, temp1
	pop	temp2
	adc	tempH, temp2	; *25

#endif

	ldi	temp1,  LOW(50*256-13)	; 13=256*5/100=128/10 zum Runden
	ldi	temp2, HIGH(50*256-13)	           ; 50°C Offset abziehen
	sub	tempL, temp1
	sbc	tempH, temp2


#ifdef	KANNMUL

	ldi	temp1, 10
	mul	tempL, temp1
	mov	tempL, R1
	
#else

	push	tempH
	clr	tempH
	lsl	tempL
	rol	tempH
	mov	temp1, tempL
	mov	temp2, tempH	;  *2
	lsl	tempL
	rol	tempH
	lsl	tempL
	rol	tempH		;  *8
	add	tempL, temp1
	adc	tempH, temp2	; *10
	mov	tempL, tempH
	pop	tempH		

#endif

	ret

Sicher ist da noch was zu verbessern!
 
Vielleicht kann mir jemand sagen, wie der folgende Stecker heißt? pic007.jpg Man beachte die Nasen links und rechts, sicher ein Verpolschutz. Das war mal das Ende einer Maus. Ich suche das Gegenstück. Das ganze paßt auch auf eine 5 polige Stiftleiste, aber dann kann man den Stecker auch falsch rum stecken.
 
Hallo,

mal als Tip: besorg dir von Reichelt den Papier-Katalog. Da kann man recht schnell durch rumblättern und ansehen der Bolder das richtige finden :cool:

Versuch mal diese hier ...

- PS 25/5G WS :: Platinensteckverbinder gerade, weiss, 5-polig

- PSK 254/5W :: Kupplungs-Leergehäuse, Crimptechnik, 5-polig
- PSS 254/5W :: Printstecker, Einzelstecker, gewinkelt, 5-polig
- PSS 254/5G :: Printstecker, Einzelstecker, gerade, 5-polig

Ich hab bei der einen Sorte jeweils Stecker/Kupplung rausgesucht.

Gruß
Dino
 
Wenns der Platz zuläßt mit 2 Kreuzpinzetten, oder ein Tropfen Sekundenkleber ersparen verbrannte Finger.

Kreuzpinzetten? Mußte erst mal schauen, was das eigentlich ist. Das scheint mir aber eine gute Idee. Gegen Sekundenkleber spicht, daß man das Teil dann nur noch schwer ersetzen kann.oder?
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)