Forum: Mikrocontroller und Digitale Elektronik Impulswahl Wahlimpulse detektieren


von Michael R. (Firma: Brainit GmbH) (fisa)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

für meine "Micro-Nebenstellenanlage für alte Wählscheiben-Telefone" 
möchte ich die Wählimpulse erkennen und auswerten.

hardware-mäßig hängen bis zu 5 Telefone über einen 1k-Widerstand an 
+24V, und die andere Ader über einen 33Ohm-Widerstand an Masse. Der 
Spannungsabfall an den 33Ohm geht an die 5 ADC-Eingänge des ATmega328P. 
Der ADC verwendet die 1.1V Bandgap-Reference des AVR.

Nach Norm dauert ein Wahlimpuls 100msec, wobei für 62msec unterbrochen 
wird.

ich hab das mal exemplarisch mit 100Hz abgetastet, siehe Bilder. Zu 
sehen ist: Telefon am Anfang aufgelegt, dann abheben, Ziffer 5 wählen, 
kurz warten, auflegen. Erstes Bild zeigt die Gesamtsequenz, Bild 2 im 
Detail die ersten Wahlimpulse.

Warum das Signal so verschliffen ist, muss ich erst noch rausfinden.

Kurz dachte ich auch an den Analog-Komparator des AVR in Kombination mit 
einem interrupt, aber da ich 5 Quellen multiplexen muss, scheint mir das 
nicht optimal, ich tendiere doch eher zu ADC, regelmäßiges Abtasten, und 
Erkennen + Zählen der Wahlimpulse.

Bei der Wahl der Abtastfrequenz bin ich einigermaßen frei, bis auf den 
Umstand dass ich halt 5 Telefone hintereinander abfragen muss. Momentan 
scheinen mir die 100Hz pro Telefon (also 500 Hz insgesamt) mal nicht so 
schlecht.

Was ich versuche zu finden ist eine ähnlich super-elegante 
Software-Lösung wie Peter Danneggers Tastenentprellung (auch wenn ich 
diese nur zu 70% verstehe :-)

Meine idee wäre: Schwellwert definieren, und alle 10msec (100Hz) ein Bit 
in einen uint8 zu schieben, und danach auf ein Muster zu prüfen (auf 
xx110011 oder x1100011 oder 11000011, verschieden lange 0-Sequenzen, x = 
don't care)

Gute Idee?

Wenn nicht: bessere Ideen?

lg Michi

von c-hater (Gast)


Lesenswert?

Michael Reinelt schrieb:

> Warum das Signal so verschliffen ist, muss ich erst noch rausfinden.

Das ist der Einfluß der Klingelschaltung.

> Kurz dachte ich auch an den Analog-Komparator des AVR in Kombination mit
> einem interrupt, aber da ich 5 Quellen multiplexen muss, scheint mir das
> nicht optimal, ich tendiere doch eher zu ADC, regelmäßiges Abtasten, und
> Erkennen + Zählen der Wahlimpulse.

Den ADC muß du doch genauso multiplexen, der AVR hat doch auch davon nur 
einen.

Den ADC-Muxer kannst du auch für den Analogkomparator verwenden. Siehe 
Erläuterungen zum ACME-Bit in ADCSRB.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

c-hater schrieb:
> Michael Reinelt schrieb:
>
>> Warum das Signal so verschliffen ist, muss ich erst noch rausfinden.
>
> Das ist der Einfluß der Klingelschaltung.

Welche Klingelschaltung meinst du? Die im telefon sollte ja beim Abheben 
überbrückt sein... (müsst jetzt aber so einen Telefon-Schaltplan 
raussuchen...)

>> Kurz dachte ich auch an den Analog-Komparator des AVR in Kombination mit
>> einem interrupt, aber da ich 5 Quellen multiplexen muss, scheint mir das
>> nicht optimal, ich tendiere doch eher zu ADC, regelmäßiges Abtasten, und
>> Erkennen + Zählen der Wahlimpulse.
>
> Den ADC muß du doch genauso multiplexen, der AVR hat doch auch davon nur
> einen.
>
> Den ADC-Muxer kannst du auch für den Analogkomparator verwenden. Siehe
> Erläuterungen zum ACME-Bit in ADCSRB.

Ich weiss, aber der Charme am Analog-Komparator wäre der Interrupt, aber 
Interrupt und multiplexen beisst sich hier etwas...

von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

ein Schleifenwiderstand >= 1 kOhm bei nur 24 V Speisespannung ist 
bereits grenzwertig (20 mA <= Is <= 80 mA). Die vergleichsweise 
langsamen Einschwingvorgänge sind daher nicht überraschend.

Aber für die Wahlauswertung kommt es nur darauf an, dass die 
Schaltschwelle von 30% des Schleifenstroms zeitgerecht erreicht wird.

Die vordere Flanke des Wahlimpulses soll eigentlich so aussehen: Von 
100% auf 30% innerhalb von 2 ms, von 30% auf 3 mA in 3 ms und unter 2 mA 
in 10 ms (alle gerechnet ab dem Beginn des Wahlimpulses).
Die hintere Flanke soll innerhalb von 2 ms auf nahezu 100% ansteigen.

Das hat es in deinem aktuellen Aufbau nicht, aber die Pulsbreite bei 30% 
sieht noch ganz brauchbar aus.

Zum Einlesen würde ich (auch zum Schutz des Prozessors gegen Störungen) 
einen Tiefpass gefolgt von einem Komparator mit Hysterese bevorzugen. 
Dessen Ausgang dann simpel an einen Porteingang. Die Schaltschwelle 
würde ich auch bei ca. 30% des Schleifenstroms ansetzen.

Dann kannst du im Timerinterrupt (ich empfehle eine Abtastperiode < 2 
ms) alle 5 Eingänge parallel einlesen und zum Entprellen die 
Statemachine von Peter Danegger nehmen.

Die Längenerkennung von Puls und Pause macht dann eine zweite 
Statemachine.

In http://www.mikrocontroller.net/articles/Analoger_Telefonanschluss 
habe ich die Timings aufgeführt. Für die Auswertung solltest du als 
minimale Puls- und Pausenlänge die jeweils untere Grenze der Möglichkeit 
3 nehmen (ggf. noch 1 - 2 ms abziehen).

Grüße

Stefan

PS: Die "Technische Beschreibung der Analogen Wählanschlüsse am 
T-Net/ISDN der T-Com; Telefonanschlüsse ohne Durchwahl" (1 TR 110-1) 
findet man auf der Webseite der Telekom, einen Auszug aus dem Vorgänger 
FTZ 1 TR 2 hier 
http://www.mikrocontroller.net/attachment/165553/1TR2_IWV_MFV.pdf

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hallo Stefan!

Ah, ein "Auskenner", sehr gut :-)

Vielen Dank für deine Erklärungen!

Die 24V werden von einem kleinen Step-Up-Wandler aus 5V erzeugt, der ist 
ohnehin einstellbar ausgeführt, mal sehen wie weit ich noch raufkomme. 
Auch der 1k-Widerstand ist natürlich austauschbar. Von daher hab ich 
also noch Optimierungspotential.

Das mit den 30% werd ich mal beherzigen.

Eingänge analog über einen Komparator führen möcht ich mir gern 
ersparen, aus einem trivialen Grund: Platine liegt fertig geätzt vor mir 
:-) Als Schutz liegt eh eine 5V Suppressor-Diode parallel zum 
AVR-Eingang. Aber ist gibt immer noch die Möglichkeit eine V2.0 zu 
machen...

Was vielleicht nicht ganz deutlich rausgekommen ist: es wird keine 
"herkömmliche" Nebenstellenanlage, da kein Amtsanschluss vorgesehen ist, 
sonern eine ganz und gar eigenständige Anlage. Eigentlich nur 
"Spielzeug" für meine Kinder, damit sie "wie echt" telefonieren können.

Und drei schöne W48 warten auch schon im Keller auf ihre Reinigung :-)

Wenns interessiert (und funktioniert) stell ich dann gerne Schaltung und 
Software ein.


lg Michi

von Christian B. (casandro)


Lesenswert?


von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

dann filterst und vergleichst du halt in Software. So viel anderes 
dürfte der Prozessor wohl nicht zu tun haben, oder?

Wie gesagt: Prellen darf sowohl bei der Leitungsbelegung (ohne 
nachgesehen zu haben: bis gut 150 ms) als auch beim Wahlimpuls (max. 3 
ms) vorkommen. Eine Entprellung im Rahmen der Abfrage ist also ein Muss.

Übrigens: Impulswahl ist ein recht "handfestes" Verfahren, entstanden in 
einer Zeit, als Relais Stand der Technik waren. Da musste man immer mit 
kurzen Unterbrechungen oder Spikes rechnen. Faustregel: Unter 5 ms Dauer 
ist nichts wichtig.

Die "alte" 1 TR 2 geht noch intensiv darauf ein. Ich habe sie hier und 
könnte bei Bedarf auch einen kompletten Scan zur Verfügung stellen.

Grüße

Stefan

PS: Zu den W48: Sehr schön! Ich sammele mittlerweile die "grauen 
Apparate" der 60er, den FeTAp 611 und die "Privatapparate". Letztlich 
fand sich sogar ein S&H "FG tist 282 cb" im E-Schrott, den ich natürlich 
vor einem schmählichen Ende rettete. (Bild z.B. unter 
http://www.wasser.de/telefon-alt/datenbank/inhalt.pl?tin=-146283309514732-0747506570509984-1372266623-89.244.118.4-&achtung=1&kategorie=1000154&artikel=1000656&job=bildansicht 
).

von Bernd S. (bernds1)


Lesenswert?

Was mir noch an deinem ersten Bild auffällt:
Vor der Wahl der Ziffer 5 steigt der Strom an, das passiert 
normalerweise durch den sogenannten nsa-Kontakt des Nummernschalters. 
Der überbrückt die ganze Sprech- und Klingelschaltung des Telefons und 
sort dafür, daß während der Wahl der Impulse nur der nsi-Kontakt (i für 
Impuls) öffnet und schließt und damit den Strom vollständig unterbricht 
(in dem Falle 5 mal). Wenn die Ziffer 5 jetzt abgelaufen ist, also der 
Nummernschalter wieder in Ruhelage ist, öffnet der nsa-Kontakt wieder 
und damit ist der Sprechstromkreis nicht mehr kurzgeschlossen.
Was ich in deinem Falle vermisse, ist das öffnen des nsa-Kontaktes. Das 
heißt, nach dem letzten Impuls müßte der Strom eigentlich nochmal ganz 
hochgehen (wegen dem Kurzschluß duch den nsa), und erst dann wieder auf 
den Zwischenwert, der durch den Widerstand der Sprechschaltung im 
Telefon gebildet wird. Der nsa muß also immer dann geschlossen sein und 
einen Kurzschluß der Sprecheinrichtung bilden, wenn der Nummernschalter 
außerhalb der Ruhestellung ist. In dem Falle hörst du auch nichts im 
Hörer. Wenn doch, ist der nsa kaputt.
Schau doch mal nach, ob das Impulsbild bei allen Telefonen so aussieht 
oder nur bei einem.

Die Detektion kannst du auf alle Fälle mit dem ADC machen. Taste oft 
genug ab, der ADC ist schnell genug. Und dann kannst du auch ordentlich 
entprellen und die Impulsfolge erkennen. Das ist ja für den Prozessor 
stinklangweilig, so langsam kommen die Impulse...

P.S.: Achte gut auf deine W48 und behandle sie gut :-)

Gruß Bernd

von Michael R. (Firma: Brainit GmbH) (fisa)


Angehängte Dateien:

Lesenswert?

Hallo alle,

danke für eure Hinweise. Dank eines genial einfachen und einfach 
genialen Tricks von Peter Danegger in einem anderen Thread bin ich jetzt 
nochmal viel flexibler, was die Abtasrate des ADC anbelangt. Ich hab 
jetzt nochmal ein anderes telefon mit 166Hz abgetastet, siehe Bild. Das 
Signal sieht jetzt sehr sauber aus.

ich denke ich werd beim ADC bleiben, und das Ergebnis mittels eines 
Schwellwertes in die Peter-Entprellung schicken.

@Bernd: auch dieses telefon zeigt keinen Anstieg des Stromes am Schluß 
der Wahl.... kann es sein dass nsa einfach früher (also gleichzeitig mit 
dem letzten Impuls) aufmacht?


Ganz andere Frage, nachdem hier ein paar Liebhaber versammelt sind: was 
ist eure favorisierte Methode, abgegriffenes Bakelit zu behandeln? ich 
reinige die (zerlegten) Gehäuse mit Seifenwasser gründlich, momentan bin 
ich bei in Wundbenzin aufgelöstem Paraffin, aber so richtig glücklich 
bin ich noch nicht. Andere Geheimtricks (Ballistol, Vaseline, ...) 
funktionieren auch nicht so recht. Es mzuss kein Hochglanz sein, soll 
einfach nur gut aussehen, sich aber nicht fettig angreifen.



lg Michi

von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

das sieht doch ganz gut aus. Ich denke, so geht das. Übrigens: Welchen 
"Trick" von PeDa meinst du denn?

Zum Auffrischen der stumpfen Oberfläche habe ich leider auch kein 
Geheimrezept. Aber letztendlich geht es ja darum, die erhöhte 
Oberflächenrauigkeit wieder zu verringern. Spontan fielen mir da 
Hartwachse (z.B. Carnaubawachs) ein, die in einer Lösung sehr dünn 
aufgetragen und nach dem Ablüften poliert werden. Eine Suche nach 
"Bakelit" und "Carnaubawachs" lieferte z.B. diese Links:

http://www.oldtimeradio.de/restaurieren.php
http://www.gut-rasiert.de/forum/index.php?topic=11519.0
http://www.militaria-fundforum.de/showthread.php?t=296317

Vielleicht findet sich mit etwas Suche noch mehr.

Grüße

Stefan

von Peter D. (peda)


Lesenswert?

Michael Reinelt schrieb:
> Warum das Signal so verschliffen ist, muss ich erst noch rausfinden.

Zum Kontakt parallel ist ein Funkenlöschglied (1µF + 100R).
Im Amt ist ein Relais 1k in Reihe mit 60V. Unterbricht man den Strom, 
würde sonst eine hohe Induktionsspannung entstehen und den Wählkontakt 
schnell verschleißen.
Der 1µF übernimmt den Strom, bis sich der Kontakt weit genug geöffnet 
hat.
Und der 100R vermeidet den Schweißfunken beim Schließen.

Diese alten Nummernschalter waren noch richtig intelligent konstruiert, 
die prellen so gut wie nicht.

Im Gegensatz dazu sind heutige Drehencoder der reinste Schrott. Das sind 
nur Schleifkontakte und die prellen wie Sau. Da ist selbst mit 
intelligenter Software oder/und RC-Gliedern kaum was zu machen.
Diese billigen Schleifkontakte versagen eher früher, als später.
Wer auf lange Haltbarkeit Wert legt, muß optische oder magnetische 
Encoder nehmen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

> Übrigens: Welchen "Trick" von PeDa meinst du denn?

Beitrag "Re: AVR: Prolog/Epilog in Funktion statt ISR"
Eigentlich kein Trick, sondern einfach nur "fortschrittliches Denken" 
:-)

hab das heut früh implementiert, unglaublich einfach, unglaublich 
effektiv, danke nochmal, Peter!

Danke für die Links zu Carnaubawachs. Aber auch dort kommt immer wieder 
der Verweis zu Paraffin. Vielleicht hab ich einfach nur zu wenig 
Geduld...

@Peter: Danke für die Erklärung. ich hatte die R/C Kombination eh schon 
im Verdacht, nur wusste ich nicht wozu die gut ist.

Du hast recht, ich bin auch fasziniert, wie die "damals" die 
beschränkten Möglichkeiten mit intelligenten Lösungen kompensiert 
haben... erst vor kurzem bin ich über etwas ähnlich geniales gestoßen: 
Hab mich gewundert warum bei meinem alten Röhrenradio die 
Eingangsspannung nach (Röhren-)Vollweggleichrichtung über den 
Lautsprecher-übertrager geführt wird... ganz einfach: Brummunterdrückung 
durch gegenphasiges Einspeisen.... (effektive Glättung war damals 
offensichtlich in Ermangelung guter Elkos nicht so einfach)

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Zurück zu meiner Impuls-Erkennung: ich hatte heute zwei Stunden im Auto 
zeit, darüber nachzudenken...

ich glaube, Peters Tastenentprellung ist nciht ganz das Richtige hier: 
Der Charme seiner Lösung liegt ja darin, bis zu 8 Taster (idealerweise 
an einem Port) parallel zu bearbeiten. Das hab ich hier so nicht, 
sondern gehe ja reihum über die ADC;; bei jedem ADC-interrupt wird auf 
den nächsten kanal weitergeschaltet.

Weiters brauch ich die Entprellung im Prinzip dreimal: Einmal 
"klassisches" Entprellen des Wähl-Unterbrechers. Zum zweiten muss ich 
die Rufspannung (25Hz AC beim Klingeln) ausfiltern, ich muss ja wissen 
ob das gerufene Telefon abhebt (muss ich heut abend erst ausprobieren 
was der ADC in dem Fall liefert). Und zum dritten "grobes" Entprellen, 
das Unterdrücken der Wählimpulse bzw. zu unterscheiden ob Wahlimpuls 
oder aufgelegt.

Andererseits kann mir hier Peters Lösung schon weiterhelfen: Deren 
Grundprinzip ist ja, dass ein neuer Zustand nur dann akzeptiert wird, 
wenn er dreimal hintereinander identisch erkannt wird.

Ich könnte das so machen: bei jedem Durchlauf wird der momentane Zustand 
in ein 8 bit Schieberegister geschoben. Danach wird geprüft ob die 
niederwertigsten n bits alle 0 oder alle 1 sind (also n mal derselbe 
zustand erkannt wurde). das ist dann mein neuer Zustand. hat auch den 
Vorteil dass ich mir aussuchen kann ob dreimal, viermal, ... ist ja nur 
eine andere bitmaske. Die höherwertigen Bits werden zwar mitgeschoben, 
aber einfach ignoriert.

dieses Spiel kann ich nun kaskadieren: alle x Durchläufe wird der im 
ersten Schirtt ermittelte zustand wieder in ein zweites Schieberegister 
geschoben, und auch hier wieder die m niederwertigsten bits ausgewertet. 
Dieser zweite zustand wäre dann das telefon (abgehoben/aufgelegt, 
unabhängig von den Wählimpulsen).

comments welcome!



lg Michi

von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

eine Mischung von Carnaubawachs und Paraffinen (Stearin = "Kerzenwachs") 
ist aber durchaus sinnvoll. Reines Carnaubawachs könnte u.U. fast schon 
zu hart sein.

Beim schnellen Suchen fand sich z.B. der Hinweis, dass Pfeifen mit 
solchen Mischungen poliert werden. Soweit ich weiß, fühlen die sich doch 
nicht "fettig" an?

Übrigens: Das von Peter erwähnte Funkenlöschglied wird gleichzeitig dazu 
verwendet, den Wecker gleichspannungsmäßig zu entkoppeln. Damals waren 
diese Bauteile noch teuer. "Umgehängt" wurde er über den 
Gabelumschalter.

Zu dem Röhrenradio: Gerade alte Unterhaltungselektronik ist eine 
Fundgrube für solche "Kniffs und Tricks". Man denke nur mal an die 
Horizontalendstufe von Röhrenfernsehern.

Grüße

Stefan

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hi Stefan,

gut, werd ich Carnaubawachs probieren (woher krieg ich das?)

Welcher Trick verbirgt sich hinter der Horizontalendstufe (hab ich vor 
25 jahren sicher mal gelernt...)

von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

ich würde zunächst man nach Politurrezepten mit Carnaubawachs suchen. 
Dabei müsstest du eigentlich auch auf Bezugsquellen stoßen.

Die alten TV-Horizontalendstufen kombinierten nach meiner Erinnerung 
sowohl den Oszillator für die Zeilenfrequenz, die Leistungsstufe dafür 
und die Hochspannungserzeugung in einer Röhre* (die berühmte PL 509). 
Dabei wurde die Horizontalspule (als Schwingkreis) in Resonanz gebracht, 
so dass nur die Verluste ausgeglichen werden mussten. Aus dem Ganzen 
wurde dann noch Energie für die Hochspannung ausgekoppelt. (Und dann gab 
es für die Hochspannungsstabilisierung noch die berühmte 
"Ballasttriode", die beim dunklen Bild nur Energie vernichtete...)

Ich erinnere mich, dass ein Kommilitone mal einen gebrauchten 
Studiomonitor (Konstruktion geschätzt späte 60er / frühe 70er) 
ergatterte und wir im Vergleich bass erstaunt waren, wie aufwendig das 
dort gemacht wurde. (H-Oszillator und Treiber getrennt, Hochspannung 
nochmals separat, alle Platinen im Betrieb ausklappbar, beschriftete 
Messpunkte... Wog fast 50 kg, das gute Stück.)

Grüße

Stefan

* Ok, eine (Röhren-)Diode als Gleichrichter gab es dann doch noch.

von Klaus (Gast)


Lesenswert?

Michael Reinelt schrieb:
> hardware-mäßig hängen bis zu 5 Telefone über einen 1k-Widerstand an
> +24V, und die andere Ader über einen 33Ohm-Widerstand an Masse. Der
> Spannungsabfall an den 33Ohm geht an die 5 ADC-Eingänge des ATmega328P.
> Der ADC verwendet die 1.1V Bandgap-Reference des AVR.

Ich hab soetwas vor vielen Jahren mal gebaut. Aus der Erinnerung war das 
etwa so:

Aus 24V~ durch einfaches Gleichrichten und Elko DC gemacht und als 
Speisung genommen. Für jedes Interface gab es eine 
2-Transistor-Konstantstromquelle mit ca. 20mA. An dieser wurde über 1µF 
(???) die Sprechwechselspannung ausgekoppelt. Zur onhook/offhook und 
Ringtrip Erkennung gabs einen Doppeloptokoppler mit antiparallel 
geschalteten LEDs. Mit einem Paralllelwiderstand (Wert ???) war er so 
eingestellt, daß er bei ca. 10mA ansprach. Die Auswertung ging über 
Portpin und Timerinterrup.

Zum Klingeln wurde die Leitung zweipolig an die 24V~ gelegt. Die 
antiparallelen Optos haben dann Ringtrip in jeder Polarität erkannt. Wie 
gut das Klingeln bei mechanischen Glocken klang, weiß ich nicht mehr. 
Ebenso weiß ich nicht mehr, welche Tricks noch in SW waren.

MfG Klaus

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Heureka!

Die Erkennung funktioniert sehr zuverlässig!
1
// ADC ISR
2
ISR(ADC_vect)
3
{
4
    static uint8_t dials[ADC_CHANNELS];
5
    static uint8_t ticks[ADC_CHANNELS];
6
    static uint8_t fast_bits[ADC_CHANNELS];
7
    static uint8_t slow_bits[ADC_CHANNELS];
8
9
    uint8_t channel = ADMUX & 0x07;  // 3 bits 
10
    uint8_t value = ADCH;  // read upper 8 bits
11
12
    uint8_t dial = dials[channel];
13
    uint8_t tick = ticks[channel];
14
    uint8_t fast_bit = fast_bits[channel];
15
    uint8_t slow_bit = slow_bits[channel];
16
17
    uint8_t threshold = (fast_bit & 1) ? ADC_THRESHOLD_LO : ADC_THRESHOLD_HI;
18
    fast_bit <<= 1;
19
    if (value > threshold)
20
  fast_bit |= 1;
21
22
    // debounce: fast_bit has not changed three times
23
    if ((fast_bit & 7) == 0) {
24
  slow_bit &= ~1;
25
    } else if ((fast_bit & 7) == 7) {
26
  slow_bit |= 1;
27
    }
28
    // slow bits
29
    if (++tick > 2) {
30
  tick = 0;
31
32
#if 1
33
  slow_bit = __builtin_avr_insert_bits(0x65432100, slow_bit, 0);
34
#else
35
  slow_bit <<= 1;
36
  if (slow_bit & 0x03)
37
      slow_bit |= 0x01;
38
#endif
39
40
  // detect dial pulse
41
  // pattern: x100001x or xx10001x or xxx1001x
42
  // mask:    01111110    00111110    00011110
43
  // hex:     7e/42       3e/22       1e/12
44
  if ((slow_bit & 0x7e) == 0x42) {
45
      dial++;
46
      Histo1++;
47
  } else if ((slow_bit & 0x3e) == 0x22) {
48
      dial++;
49
      Histo2++;
50
  } else if ((slow_bit & 0x1e) == 0x12) {
51
      dial++;
52
      Histo3++;
53
  }
54
  // all bits high: phone engaged, dial pause
55
  else if (slow_bit == 0xff) {
56
      State[channel] = 1;
57
      if (dial > 0) {
58
    Dial[channel] = 10 * Dial[channel] + dial;
59
    dial = 0;
60
      }
61
  }
62
  // all bits low: phone hung up
63
  else if (slow_bit == 0x00) {
64
      dial = 0;
65
      State[channel] = 0;
66
      Dial[channel] = 0;
67
  }
68
    }
69
70
    dials[channel] = dial;
71
    ticks[channel] = tick;
72
    fast_bits[channel] = fast_bit;
73
    slow_bits[channel] = slow_bit;
74
75
    channel = (channel < 4) ? channel + 1 : 0;  // switch to next channel
76
    ADMUX = __builtin_avr_insert_bits(0xffff3210, channel, ADMUX);
77
}

Zuerst geht der Input des ADC über einen Schmitt-Trigger (je nachdem ob 
der letzte Wert als low oder high interpretiert wurde, wird die Schwelle 
anders gesetzt). Dann wird der Wert in ein 8-bit-Schieberegister 
(fast_bits) geschoben. Wurde der Wert dreimal identisch erkannt 
(unterste bits 000 oder 111) wird das bit der nächsthöhern Stufe 
(slow_bits) auch auf 0 oder 1 gesetzt.

auf slow_bits erfolgt dann die Erkennung des Wahlimpulses: zwei, drei 
oder vier low-bits umgeben von jeweils einem high-bit. zur 
Feinabstimmung schreib ich noch ein Histogramm mit, damit lässt sich der 
Timer-Wert gut abstimmen, sodaß am häufigsten die drei Bit erkannt 
werden.

slow_bits wird auch verwendet um den Zustand des Gabelumschalters zu 
erkennen, wobei die (kurzen) Wahlimpulse nicht stören.


@Klaus: Deine Lösung hat einen entscheidenden nachteil: ich hab keine 
24V AC. Das Ding soll nur mit 5V DC versorgt werden, die Speisespannung 
erzeuge ich über einen Step-Up-Wandler, die Klingel-Wechselspannung über 
einen "umgedrehten" Transformator. Wichtig waren mir, dass ich wirklich 
25Hz kriege, weil speziell die Wecker von alten telefonen bei 50Hz 
furchtbar klingen (schnarren). Dazu gabs aber eh einen extra Thread...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nochmal zum Putzen: Ich glaube mich zu erinnern, das in der 
Originalanleitung zum FeTap 611 schlichtes lauwarmes Seifenwasser 
empfohlen wurde. Ob das nur deswegen war, weil man dem Endverbraucher 
nicht zumuten wollte, Paraffin zu besorgen, ist mir allerdings nicht 
bekannt.

von Stefan W. (dl6dx)


Lesenswert?

Hallo Michael,

das sieht gut aus!
Bin gespannt auf deine Ergebnisse im Betrieb.

Grüße

Stefan

von Volker S. (sjv)


Lesenswert?

Michael Reinelt schrieb:
> Bei der Wahl der Abtastfrequenz bin ich einigermaßen frei, bis auf den
> Umstand dass ich halt 5 Telefone hintereinander abfragen muss. Momentan
> scheinen mir die 100Hz pro Telefon (also 500 Hz insgesamt) mal nicht so
> schlecht.

Muß man nicht!
Deine Anlage wird doch nur eine Innenverbindung haben. Da reicht es wenn 
man bei Erkennung der Gleichstromschleife über eine UND Verknüpfung nur 
bei diesen Apparat die Wahl auswertet bzw. zuläßt. Die anderen Apparate 
müßten beim abheben einen Besetztton erhalten.

MfG

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Volker S. schrieb:
> Deine Anlage wird doch nur eine Innenverbindung haben. Da reicht es wenn
> man bei Erkennung der Gleichstromschleife über eine UND Verknüpfung nur
> bei diesen Apparat die Wahl auswertet bzw. zuläßt. Die anderen Apparate
> müßten beim abheben einen Besetztton erhalten.

ich hab nur eine Sprech- und eine "Freiton-Schiene". Wenn ein telefon 
abhebt, kriegt es den Freiton, und könnte wählen. Wenn währenddessen ein 
zweites telefon auch abhebt (und versucht zu wählen) möchte ich das 
erkennen und beiden einen besetztton senden.

Auch wenn während eines gesprächs (beide telefone hängen auf der 
Sprechschiene) ein drittes telefon abhebt, möchte ich das auch erkennen 
und dem einen besetzttone liefern.

ich mag also schon immer den Zustand aller 5 telefone wissen.

von Wilhelm F. (Gast)


Lesenswert?

Matthias Sch. schrieb:

> Nochmal zum Putzen: Ich glaube mich zu erinnern, das in der
> Originalanleitung zum FeTap 611 schlichtes lauwarmes Seifenwasser
> empfohlen wurde. Ob das nur deswegen war, weil man dem Endverbraucher
> nicht zumuten wollte, Paraffin zu besorgen, ist mir allerdings nicht
> bekannt.

Der 611 bestand nicht mehr aus Bakellit, sondern bereits aus den ersten 
modernen termoplastischen Kunststoffen wie PVC oder ABS, ich könnte es 
mal suchen und nachschlagen. Die Apparateschaltung habe ich in alten 
Büchern noch, man findet sie aber auch im Internet. Meiner Meinung nach 
hatte man beim 611 die selben Kunststoffe, die auch heute noch verwendet 
werden, bzw. in späteren Standard-Apparaten 751 oder 01.

In meiner Anfangszeit hatte ich es ja die ersten Jahre hauptsächlich mit 
den 611-ern zu tun. Oma-Haushalte hatten oft noch einen Apparateschoner, 
den es im freien Handel exakt passend gab, das ist sowas wie z.B. 
Hundebekleidung. ;-)

Die Reinigung wurde nur mit einem weichen fusselfreien feuchten Tuch 
empfohlen, und an die Gummifüße sollten keine Reinigungsmittel dran 
kommen. Weiter wurde empfohlen, einen Standort, Möbel, auszusuchen, 
dessen Oberfläche nicht z.B. mit Möbelpolitur behandelt ist, die 
Gerätefüße könnten evtl. Spuren hinterlassen. In der Praxis passierte 
aber rein gar nichts, wie ich bei vielen hundert Kunden sah, und wurde 
auch nie darauf angesprochen. Tatsächlich sah ich auch nie spröde oder 
angelöste Gummifüße.

So einen verkratzten 611 könnte man mit aktuellen 
Kunststoffpflegemitteln wieder etwas glatter bekommen.

Übrigens fand ich den sehr robust und wartungsfreundlich. Wir Azubis 
schraubten die Geräte in der Ausbildungswerkstatt viele Male jährlich 
auf und wieder zu, unter Ziehen und Stecken aller Steckverbinder und 
Bauteile. Da war nichts ausgeleiert, auch keine Schraubenlöcher 
ausgeschlagen. Die im Kunststoff eingelassenen Schraubenbuchsen war so 
was wie richtig harter Stahl, auch die Schrauben selbst, man konnte sie 
mit dem Schraubendreher so gut wie nicht verstümmeln, die 
Schraubendreherklinge ist weicher. Bereits beim 751 (erster 
Tastwahlapparat) wurden die Schrauben nur noch in Kunststoff eingedreht. 
Nach 5-10 mal öffnen ist das hin.

Die Kundengeräte hatten eine verplombte Schraube am Geräteboden, damit 
sie nicht selbst dran herum basteln. Die Plombe störte aber von den 
Serviceleuten kaum jemanden wirklich, denn Stromklau wie am Energienetz 
o.ä. gab es ja beim Telefon nicht.

Der 611-er wurde zur Wiederverwendung sogar vom FZA aufgearbeitet, um 
ihn bei einem neuen Kunden als Neugerät wieder einzubauen. Neugeräte 
hatten an der Unterseite einen Aufkleber mit 611-1, überholte Geräte 
611-2. Der Apparat war dann mindestens gleichwertig oder besser als ein 
Neugerät, darauf konnte man sich verlassen. Der Apparat war für uns 
Monteure auch wieder genau so verpackt, wie die Originalapparate vom 
Hersteller verpackt waren. Womit man Gehäuse beim FZA polierte, weiß ich 
nicht. Vielleicht tauschte man aber auch das Gehäuse komplett aus, eine 
neue Anschlußschnur und Hörerschnur bekamen die Geräte auch, das Mikro 
und die Hörkapsel ebenfalls, sowas ist meistens angeschmutzt und damit 
unhygienisch. Die Grundplatte und die Innereien waren zur Überholung gut 
und wiederverwendbar.

Man muß bedenken: Der Apparat war Posteigentum. Und wenn er wirklich 
defekt wurde, dann wurde er kostenlos repariert oder ausgetauscht.

Zum Ende des 611, als modernere Geräte raus kamen, um 1980 herum, flogen 
die 611-er zu Tausenden oder gar Millionen einfach auf den Schrott. 
Selbst das FZA brauchte solche Mengen an Gebrauchtgeräten nicht mehr, um 
sie wieder aufzuarbeiten. In den 1960-er Jahren, am Ende des W48, wird 
es bei diesem nicht anders gewesen sein. Bis dahin war die Anzahl der 
Telefonteilnehmer und die Netzgröße noch klein, vielleicht zwei bis drei 
Millionen aller Bundesbürger, viele Geschäftsleute, die große Masse kam 
erst ab ca. 1970 auf, ungefähr auch parallel mit der Zunahme der Autos, 
das immer noch fort schreitende Wirtschaftswunder.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Habe fertig!

Beitrag "Re: drei alte Telefone verbinden"

Danke nochmal allen die mich mit Rat und Hilfe unterstützt haben!

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Dei 7er wurden beim FZA in irgendwelche Bäder gesteckt. Die hatten da 
einen Bereich, der wie eine Galvanikanlage aussah. Hatte das mal 
gesehen, als ich dort arbeitete. Aber ich war in einer anderen 
Abteilung, daher kann ich leider keine Details liefern. Jedenfalls sahen 
die Gehäuse danach wie neu aus und waren für einen Kunden ganz sicher 
nicht zu unterscheiden.

Manche Apparate kamen unglaublich verdreckt in die Aufarbeitung.

von HH (Gast)


Lesenswert?

Vor der Postreform waren die Telefonapparate von Privatkunden stets 
Eigentum der Deutschen Bundespost und wurden in der Regel vermietet. 
Andere Apparate waren nicht zugelassen. Zuwiderhandlungen wurden als 
Verstoss gegen das Fernmeldeanlagengesetz gewertet und mit saftigen 
Bussgeldern in drei- bis vierstelliger Höhe (DM) geahndet!

Ein einfaches Standard-Modell der obengenannten 7er-Serie war der
FeTAp 751:

http://www.flickr.com/photos/10990944@N07/8616599894/in/photolist-e8qjX9-e8qoUb-e8jFGV-e8jFa4-e8qmzb-e8jJ3n-e8jHte-ekXRsN-ekS6on-ekXRBm-ekXRvq-8xT9Nh-9KgnbY-aFABAa-b29Lwz-aJYUAK-aKuyuc-aGdFYa-aLsxjF-aGMB8r-a26YF6-8EumU2-edF6m1

Mitte der 80er-Jahre betrug die Jahresmiete etwa 25DM (12,50€). Man 
konnte das Telefon auch käuflich erwerben. Dafür forderte der 
Staatsmonopolist den stolzen Betrag von rund 70DM (35€). Im Ausland 
(Philippinen) wurde das identische SIEMENS-Modell fabrikneu für gerade 
mal einem Drittel dieses Betrags regulär angeboten.

von Wilhelm F. (Gast)


Lesenswert?

Abdul K. schrieb:

> Dei 7er wurden beim FZA in irgendwelche Bäder gesteckt. Die hatten da
> einen Bereich, der wie eine Galvanikanlage aussah. Hatte das mal
> gesehen, als ich dort arbeitete. Aber ich war in einer anderen
> Abteilung, daher kann ich leider keine Details liefern. Jedenfalls sahen
> die Gehäuse danach wie neu aus und waren für einen Kunden ganz sicher
> nicht zu unterscheiden.

Dann wird das bei den 6-ern auch so gewesen sein. Elektrisch wurden die 
Geräte jedenfalls sorgfältigst aufgearbeitet, z.B. der Nummernschalter 
neu auf Impulsdauern und Ablaufzeiten eingestellt, und gefettet.

Im Ausbildungsbetrieb hatten wir ein Oszi, was nur der 
Nummernschalterjustierung diente. Sowas sah ich später nirgend wo 
wieder. Die Periodendauer betrug knapp mehr als eine Sekunde, und der 
Strahl fluoreszierte wirklich mehrere Sekunden nach. Bei einer 
aufgezogenen Null konnte man immerhin ziemlich genau die Impulsdauern 
erkennen, und den Gesamtablauf. Speicheroszi gab es ja noch lange nicht. 
Solche Oszis hatte man aber bestimmt seit oder sogar vor dem Krieg 
schon. Das Oszi hatte auch eine Art Gesichtsanpassung aus Gummi vor dem 
Bildschirm. Da konnte man direkt mit dem Gesicht Augenbereich dran, 
damit kein Umgebungslicht mehr einfällt. An so einem Prüfplatz bekam man 
auch schöne Rechtecksignale.

Der automatische Prüfplatz bei Abnahme beim Kunden testete aber auch den 
Nummernschalter, richtig am Netz. Auch der manuelle Prüfplatz. Auch wenn 
da verschliffene Rechtecke auftauchen, Relais machen das wieder gerade. 
Denn die Amtsrelais in der Vermittlung sollten ja mit dem selben Timing 
des Nummernschalters weiter arbeiten. Auch wenn eine Spannungskurve im 
Leitungsnetz mal wie ein Sinus aus sieht.

> Manche Apparate kamen unglaublich verdreckt in die Aufarbeitung.

Ganz selten, vielleicht drei mal in mehr als zehn Jahren, hatte ich beim 
Kunden dermaßen verdreckte Apparate, die ich aber auch nur mit dem 
Papiertaschentuch anfaßte, und mich sofort zum nächsten Müllcontainer 
begab. Z.B. aus einem Fleischverarbeitungsbetrieb. Der Apparat lebte 
dann nicht nur elektrisch, sondern auch ein wenig biologisch, außen wie 
innen. Das konnte man keinem Kollegen nirgendwo mehr zumuten, z.B. in 
der Altgeräterücklieferung am Lager. Da könnte ja einer die Pest oder 
Cholera bekommen, oder auch nur Übelkeit, und das wäre viel mehr 
betriebsschädigend. So ein Apparat stank bestialisch nach Verwesung, den 
konnte man noch nicht mal im Servicewagen mehr transportieren. Dann kam 
halt ein geringer Prozentsatz solcher Dinge nicht mehr im 
Materialrücklauf an, und in so einem Fall störte das auch keinen.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Naja, wenn ich mir so heutige Telefone ansehe, dann waren die 70DM 
durchaus angebracht. So ein Apparat überlebte problemlos die 
1m-Runterfall-Norm. Mach das mal mit einem Handy.

Das enge Timing war weniger den Relais im Amt geschuldet, sonder mehr 
den asynchron laufenden Wählern. Die liefen nämlich teils nicht synchron 
zu den Wählimpulsen. Zum Impuls schon, da stoppte das Ding im Freiflug 
sozusagen kurz, dazwischen flog aber der Wähler über 10 abgehende 
Leitungen und das eben asynchron. Er lief also etwas schneller und 
wartete dann kurz auf den eingehenden nächsten Impuls. Wenn ein time-out 
erkannt wurde, war die Wahl der Ziffer (=Impulsfolge) beendet, damit war 
klar welche Ziffer gemeint war und der Wähler lief danach auf den 
nächsten 10 Leitungen weiter auf der Suche nach einer freien Leitung. 
Wenn ich mich recht erinnere, flog er dabei etwas langsamer (da er auf 
allen vorbeilaufenden Leitunge den Belegungszustand prüfen mußte). Auf 
der ersten gefundenen freien Leitung blieb er stehen und das Spiel 
wiederholte sich für die nächste gewählte Ziffer der Rufnummer in der 
nächsten Wahlstufe.

-> EMD-Wähler Wikipedia

Speicherscopes gab es schon Anfang der 70er.

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.