Labortagebuch August 2013

 Elektronik-Labor  Notizen  Projekte  Labortagebuch

30.8.13: Serielle Ausgaben in Bascom

Noch ein Fall wo beim Übergang auf die neue Bascom-Version etwas beachtet werden muss: 
Es ging um einen Elektor-Aufsatz zum FTDI-Vinculum. Rudolf Kischkel berichtete von einem Problem: Meine Bascom Version 2.07.3 meckert bei "+ Chr(13);": Numeric Parametrer Expected (Dir). Wie kann ich das ändern? Denn ich kann den Stick nur lesen indem ich eine txt-Datei vom PC aus beschreibe. Der Test war Simpel "1234" das wurde mir auch angezeigt aber auf den Stick schreiben ging gar nicht.

 
Man kann das Problem lösen, indem man zwei Zeilen draus macht:

Print "rd todo.txt";
Print Chr(13);

Hier mein ursprüngliches Beispiel entsprechend angepasst:


'Bascom ATmega88, Vinculum

$regfile = "m88def.dat"
$crystal = 16000000
Baud = 9600
Open "com1:" For Binary As #1

Dim Samples As Word
Dim Delayms As Word
Dim Channels As Word
Dim N As Integer
Dim I As Integer
Dim L As Integer
Dim S As String * 20
Dim Ad As Integer

Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Off
Start Adc
Echo Off

Do
Input S
Loop Until S = "D:\>"
Portb.0 = 1
Waitms 1000
Print "rd todo.txt";
Print Chr(13);
Input Samples
Get #1 , L
Input Delayms
Get #1 , L
Input Channels
Get #1 , L
Input S
Print "OPW Log.txt";
Print Chr(13);
Input S
For N = 1 To Samples
S = ""
For I = 1 To Channels
Ad = Getadc(i)
S = S + Str(ad)
If I < Channels Then S = S + Chr(9)
Next I
S = S + Chr(13) + Chr(10)
L = Len(s)
Print "WRF ";
Put #1 , 0
Put #1 , 0
Put #1 , 0
Put #1 , L
Put #1 , 13
Print S ;
Input S
Waitms Delayms
Next N
Print "CLF log.txt";
Print Chr(13);
Input S
Portb.0 = 0
End




Zusatzhinweis von Sebastian Heyn, DL3SEH:

Bascom unterscheidet hier zwei unterschiedliche Fälle:

- Das Zusammensetzen von Stringvariablen: a=b+c

- Bei Print nutzt man allerdings Print b;c
   Also in Ihrem Fall:  Print "rd todo.txt";Chr(13);

Ich hatte damit auch meine Problemchen, vor allem wenn ich Bascom mal lange nicht genutzt habe ;-)


22.8.13: PWM-Ausgabe in Bascom

PWM habe ich schon oft benutzt, z.B. für 10-Bit-Ausgaben am Timer1 des ATmega:
 Config Timer1 = Pwm , Prescale = 8 , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Jetzt habe ich ein Projekt wieder ausgegraben und daran weiter gearbeitet. Aber irgendwie war alles falsch rum, hohe Spannung wenn ich kleine meinte und umgekehrt.  Lange habe ich nach dem Fehler gesucht, bis ich schon dachte, ich bin urlaubsreif. Also, was hat sich seit dem letzten mal geändert? Ein neuer PC, neu installierte Software... Stimmt, am alten PC hatte ich meist noch eine sehr frühe Version von Bascom im Einsatz , weil ich mit jemand kompatibel bleiben wollte, bei dem es auch so ist. Und irgendwann bin ich doch schon mal drüber gestolpert? Stimmt! Bascom hat vor langer Zeit mal die Richtung geändert. Statt "Clear Down" muss es jetzt "Clear Up" heißen! So funktioniert die Sache wieder:
 Config Timer1 = Pwm , Prescale = 8 , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Das war vermutlich eine Berichtigung eines Fehlers in einer frühen Version. Aber wer das Update scheut darf sich nicht beklagen ...


19.8.13: AM/FM-Empfänger CD2003



Der integrierte AM/FM-Empfänger CD2003 wird im Fledermausdetektor eingesetzt, kommt aber auch im Zusammenhang mit dem Radiobau und mit Gewitter-Warnern im Elektronik-Labor vor.  Es gab immer mal wieder Fragen, wo man dieses IC bekommen kann. Jetzt endlich gibt es eine Bezugsquelle. Das IC kann in der SMD-Version bei Modul-Bus bestellt werden:

www.ak-modul-bus.de/stat/am_fm_empfaenger_cd2003.html

9.8.13: Der SMD-Grabsteineffekt



Immer wenn meine Bausätze neu aufgelegt werden bekomme ich Testmuster. Diesmal war es ein Fledermausdetektor. Der beste Test ist es ein Gerät zusammenzubauen.  Aber irgendwas war faul. Der Oszillator arbeitete nicht auf der richtigen Frequenz, am Oszilloskop war eine eigenartige Schwingung zu sehen. Was kann das sein? Ein scharfer Blick zeigte den Übeltäter. Der frequenzbestimmende Kondensator mit 1 nF stand auf einer Seite in der Luft. Da reichte ein Tropfen Lötzinn und alles lief perfekt.

Von so einem Fehler hatte ich schon gehört, es aber noch nie selbst gesehen.  Der Grabsteineffekt kann beim SMD-Löten durch Oberflächenspannungen des flüssigen Lötzinns auftreten. Ein Bauteil, das eigentlich liegen sollte, stellt sich dann auf und steht im Extremfall wie ein Grabstein auf der Platine. Dieser Fehler ist extrem selten, weil die SMD-Bestückungsfirmen schon wissen, wie man sowas verhindert. Aber was man daraus lernen kann ist dies: Es lohnt sich, eine SMD-Platine mit der Lupe genau zu inspizieren bevor man alles zusammenbaut. Oder nachher, wenn ein Fehler auftritt. Einen sichtbaren Fehler reparieren ist einfach und meist wesentlich weniger aufwendig als der Austausch der kompletten Platine.

Nachtrag von Rudolf Drabek: Ich kenne diesen Effekt aus meiner aktiven Zeit unter dem Begriff tombstoning. Habe dazu ein nettes Video gefunden:
http://www.youtube.com/watch?v=Lq6zJAUn74Q



6.8.13: Arduino Leonardo kaputt



In letzter Zeit geht alles kaputt. Diesmal ist ein Leonardo einem dumm herumbaumelndem 12-V-Kabel zum Opfer gefallen. Nichts geht mehr. Aber was genau ist denn nun kaputt? Zum Test wurde ein Labornetzteil mit Strombegrenzung angeschlossen. Estmal langsam die Spannung erhöhen. Bei über 1 V beginnt schon ein zu großer Strom zu fließen. Der 5-V-Spanunsgregler bringt die Spannung mit einem Drop von nur 0,5 V an den Controller, scheint also in Ordnung zu sein. Ein Temperaturtest soll nun zeigen wo der Fehler steckt. Dazu stelle ich die Spannung etwas höher auf 3 V ein und spendiere bis zu 1 A. Was nun wirklich warm wird ist der Mikrocontroller. Damit ist der Fall klar, den Controller hat es erwischt. Schade.

Könnte man mit der Platine vielleicht noch etwas anfangen? Die ganze Stromversorgung ist noch in Ordnung. Man müsste den Controller auslöten.  Dann hätte man ein schönes System mit USB- und 12-V-Versorgung und zwei stabilen Spannungen von 5 V und 3,3 V. Oder vielleicht kommt auch mal ein Controller in gleicher Bauform drauf. Ein fast gleicher USB-Controller mit weniger Flash von Atmel liegt hier noch rum. Daraus könnte mal ein Komplettsystem werden, das man mit Flip programmieren kann.  So ist das fast immer, wenn etwas kaputtgeht. Zum Wegwerfen zu schade, und dann kommen neue Ideen hoch.


 Elektronik-Labor  Notizen  Projekte  Labortagebuch