RC5 9-Kanal Sender mit Attiny2313 mit Powerdown Problem

TubeFiebig

Mitglied
30. Jan. 2012
34
0
6
Delmenhorst
Sprachen
Moin zusammen,

Für meinen Röhren Vorverstärker baue ich gerade einen RC5 Sender mit dem Attiny2313. Habe den Code von einem Atmega8 übernommen.
Dann an den Attiny2313 angepasst. Sende-Dioden mit Treiber an PB3 ( OCI ). Kontroll-LED an PB7. Dioden-Netzwerk von Anschluss PD2 ( INT0 )
an die Taster. Bei Betätigung eines Tasters wird der Eingang PD2 mit nach Masse gezogen und sollte jetzt den Interrupt Int0 auslösen.
RC5 Code senden ist OK. Haben einen Test Empfänger.
Der Powerdown Befehl geht so nicht. Da habe ich einen Fehler , und komme nicht weiter.
Was habe ich da übersehen.
Hänge noch mal einen ähnlichen Schaltplan mit dran.

'***********************************************
'Controler : Attiny 2313 *
'Schaltung : RC5 - Fernbedienung *
'Compiler : BASCOM-AVR v2.0.7.1 *
'Hardware : IR-LED an PB.3 (OC1) *
' : LED an PB.7 (SCK) *
'Last update : 18.02.2013 *
'***********************************************

$regfile = "attiny2313.dat"
$crystal = 4000000
'$lib "mcsbyte.lbx" !!!! geht auch ohne
$framesize = 32
$swstack = 10
$hwstack = 40

Ddrd = &B00000000 'alle PortD Pins auf Eingang definieren
Portd = &B11111111 'alle PortD Pins auf High setzen

Ddrb = &B10001000 'PortB 0,1,2,4,5,6 Auf Eingang / PB3 als Ausgang IR-Diode
Portb = &B011110111 ' Pull-Up Widerständ einschalten / PB7 LED Ein/Aus


' Portb.0 = Output 1 / Command: 20
' Portb.1 = Output 2 / Command: 21
' Portb.6 = Mute / Command: 13
' Portd.0 = CD / Command: 25
' Portb.2 = Tuner / Command: 26
' Portb.4 = Tape / Command: 27
' Portb.5 = Aux / Command: 28
' Portd.1 = Volume + / Command: 16
' Portd.3 = Volume - / Command: 17
' Portd.4 = Frei
' Portd.5 = Frei
' Portd.6 = Frei

Led Alias Portb.7 ' Kontroll-LED

Dim Togbit1 As Byte
Dim Togbit2 As Byte
Dim Command As Byte
Dim Address As Byte

Reset Led ' Kontoll-LED ausschalten
Togbit1 = 0
Togbit2 = 32
Address = 16 ' Sende_Adresse 16 = Pre_Amp1

Config Int0 = Low Level
Enable Interrupts
On Int0 Isr_int0
Disable Int0

'--------------------- Start Programmschleife --------------------------------

Do

If Pinb.0 = 0 Then
Command = 20
Gosub Code

Elseif Pinb.1 = 0 Then
Command = 21
Gosub Code

Elseif Pinb.6 = 0 Then
Command = 13
Gosub Code

Elseif Pind.0 = 0 Then
Command = 25
Gosub Code

Elseif Pinb.2 = 0 Then
Command = 26
Gosub Code

Elseif Pinb.4 = 0 Then
Command = 27
Gosub Code

Elseif Pinb.5 = 0 Then
Command = 28
Gosub Code

Elseif Pind.1 = 0 Then
Command = 16
Gosub Code

Elseif Pind.3 = 0 Then
Command = 17
Gosub Code

Elseif Pind.4 = 0 Then
Command = 1
Gosub Code

Elseif Pind.5 = 0 Then
Command = 2
Gosub Code

Elseif Pind.6 = 0 Then
Command = 3
Gosub Code
End If

Loop
'===============================================================================
End

'--------------------- Sende RC5 Code -----------------------------------------

Code:

Set Led 'Kontroll-LED einschalten
Rc5send Togbit1 , Address , Command
Rc5send Togbit2 , Address , Command
Waitms 80
Enable Int0
Reset Led 'Kontroll-LED ausschaltet
'Powerdown !!!! geht so nicht
Return

'____________________ Starte Interrupts --------------------------------------

Isr_int0:
Disable Int0
Return

remote-control-schematic.png

Für eure Hilfe wäre ich sehr dankbar,
Wolfgang
 
Hallo Wolfgang!

Vielleicht solltest du deine Fernbedienung noch mal überdenken.

Was mir nicht "gefällt" ist das doppelte Senden des Togbits.
Das Bit hat schon seinen Sinn und den solltest du auch ruhig berücksichtigen. :wink:

Was das Thema "WakeUp" betrifft, da würde ich die PCINT`s nutzen.
Das geht aber natürlich nur, wenn du deine FB hardwareseitig noch nicht hergestellt hast, denn die PCINT-Pins liegen an PORTB. :cool:

Du kannst dir ja auch mal DIESEN Beitrag (und die folgenden) durchelesen.
Vielleicht bringt es dich ja auf Ideen.

Ansonsten kann ich dir auch meinen fertigen Code als "Beispiel" zur Verfügung stellen...... auch wenn er für einen Tiny24v ist.


Viele Grüße,
Cassio
 
Hallo Cassio,
die von dir genannten Beiträge bringen mich nicht weiter. Platine wäre fertig, aber wie man so schön sagt : alles neu macht der Mai. wenn ich auf den PB-Port ändere hätte ich aber nur noch 7 Taster zur Verfügung. PB3 ( OCI) muß ja bleiben. Das würde auch noch gehen.
Wie wird denn der PCINI Befehl angewandt. Hast du Beispiele für mich.
eine schönen Tag noch.
Wolfgang
 
Platine wäre fertig....

Hallo Wolfgang!

Tja, das ist genau der Grund, warum ich immer erst mal alles auf Steckbrettern (Breadboards) aufbaue. :wink:

Also wenn du die Platine noch mal neu machen möchtest.....
Warum dann nicht gleich den Tiny24v nehmen? :hmmmm:

Wenn es nun doch der Tiny2313v sein soll (das V ist wichtig, wegen der kleineren Betriebsspannung), dann hast du immer noch die Pins:
PB0, PB1, PB2, PB5, PB6 und PB7 für Taster zur Verfügung.

Auf deinem Schaltplan sind auch nur fünf Taster eingezeichnet. Von daher müsste es doch reichen? :hmmmm:


Mit einer kleinen "Mini-Matrix" von 3x3, könntest du immerhin schon 9 Taster betreiben.
Ich habe das zwar persönlich in der Verbindung mit dem PCINT noch nicht gemacht, müsste aber trotzdem gehen.

Wo liegt denn nun das Problem?


Grüße,
Cassio
 
Nicht ini, PCINT - Pin Change Interrupt.
Beim Tiny2313 können alle Pins von PortB einen gemeinsamen Interrupt triggern
Schau mal ins Datenblatt des Controllers...;)

Beim PCINT gibt es pro Port ein Maskenregister in dem man einstellen kann welche Pins denn einen Interrupt auslösen können wenn sich dort der Zustand ändert. MMeißt ist es so das jeder Port seinen eigenen PCINT-Vektor hat. Bei 2 Ports also zwei verschiedene Vektoren. Man kann aber alle Interruptvektoren auf eine Routine zeigen lassen. Dann ist es egal welchen Pin man von welchem Port verwendet. Es wird dann immer die selbe Routine angesprungen.

Gruß
Dino
 
Dann ist es egal welchen Pin man von welchem Port verwendet. Es wird dann immer die selbe Routine angesprungen.

Hallo!

Genau so ist es.

Bevor ihr aber den armen Wolfgang mit Datenblätter und Registern den Kopf verdreht....

In BASCOM müsste das dann für einen Tiny2313 so aussehen:
Code:
' ---------------------------------------------
' PCINT = Pin Change Interrupt aktivieren
' Pin Change Mask  (PCINT7-0)
Enable Pcint

' Bei einem Interrupt, springe zur ISR Aktiv
On Pcint Aktiv

' Überwache PCINT 0, 1, 2 und 5, 6 ,7
Pcmsk = &B1110_0111
' ---------------------------------------------


Grüße,
Cassio
 
Hallo!

Zum Thema Powerdown:
Schreib mal anstelle von Powerdown folgendes: Config Powermode Powerdown

Mein Tipp wie so oft: Wenns mal hakt auch in die Hilfe schauen!

MfG


 
danke, danke Cassio

das du mich vor Datenblätter und Registern Hinweisern schützen möchtest. Nicht jeder Bastler verfügt über gute englisch Kenntnisse um Datenblätter zu durchforsten.
Ich werde mich nun mal mit einem Attiny24 auseinandersetzen. Da können ja viele Port's mit dem PCINT überwacht werden. Hänge mal Fotos von meinem neuen Röhrenvorverstärker mit dran.
Liebe Grüße,
Wolfgang
CIMG0022.jpgCIMG0002.jpgCIMG0004.jpg
Cimg0010.jpg
 
Moin Cassio,
Das FB Projekt ruht erst mal. Ich nehme zur Zeit eine Philips-FB. In meinem Röhrenvorverstärker benutze ich noch zur Lautstärkeeinstellung
einen Schrittmotor. Leider sind die Eingangs Line Verstärkerröhren sehr stark Mikrofonie empfindlich. Jede Stellungsänderung ist in den
Lautsprechern hörbar. Bin dabei den Schrittmotor gegen ein 360° Servo auszutauschen.
Bei der Ansteuerung dieses Servotypes habe ich noch meine Probleme. Bei den Standartservos mit bis zu 160° ist alle OK.
einen schönen Tag noch,
Wolfgang
 
Hallo Wolfgang!

Ich weiß nicht ob es dir weiter hilft,
aber User Pirx hat HIER mal einen Kopfhörerverstärker vorgestellt.

Zum Regeln der Lautstärke hat er ein PGA2310 eingesetzt.
Vielleicht wäre das ja auch eine Möglichkeit für dich?


Grüße,
Cassio
 
Moin Cassio,
Igit. Keine elektronischen Potis im analogen Signalweg. Habe schon mit diversen elk. Poti IC's Versuche gefahren.
Alles klanglicher Mist. Es geht nichts über lasergetrimmte Leitplastic-Potis.
Viele Grüße,
Wolfgang
 
Hallo Wolfgang,

ich habe schon des öfteren erlebt, dass Röhrenfans von elektronischen Potis in ihren Röhrenverstärkern rein gar nichts halten.

Davon mal abgesehen muss ich dir aber sagen, dass dein Pauschalurteil :
Igit. Keine elektronischen Potis im analogen Signalweg. ... Alles klanglicher Mist.

beim PGA 2310 definitiv nicht zutrifft. Der kommt nach wie vor viel in analoger Tonstudiotechnik zum Einsatz. Hersteller wie z.B. Neumann (http://www.neumann.com/) würden das nicht tun, wenn der IC klanglich daneben läge.

Gruß
Pirx
 
Hallo,

ich habe schon des öfteren erlebt, dass Röhrenfans von elektronischen Potis in ihren Röhrenverstärkern rein gar nichts halten.

Davon mal abgesehen muss ich dir aber sagen, dass dein Pauschalurteil :

beim PGA 2310 definitiv nicht zutrifft. Der kommt nach wie vor viel in analoger Tonstudiotechnik zum Einsatz. Hersteller wie z.B. Neumann (http://www.neumann.com/) würden das nicht tun, wenn der IC klanglich daneben läge.

ich tippe mal das es einfacher ist ein normales Poti einzubauen da in Röhrenverstärkern doch teilweise recht hohe Spannungen auftauchen die bei elektronischen Potis Probleme bereiten könnten. Im Endeffekt heißt es zwar elektronisches Poti aber die "Potianschlüsse" des ICs sind ja nicht wirklich galvanisch vom Steuerkreis getrennt sondern nur über Halbleiterübergänge "quasi isoliert". Bei entsprechendem Spannungsunterschied fliegt einem das also um die Ohren. Es kommt also sehr auf das Design der Verstärkerschaltung an ob man an einer Stelle ein elektronisches Poti einsetzen kann oder doch eher ein normales nimmt.

Die Schrittweite eines Potis kann da auch nicht unbedingt einen Ausschlag geben. Wenn man einen Schrittmotor an ein normales Poti baut dann hat der auch "nur" 400 Schrittepro Umdrehung bei Halbschrittbetrieb. Wenn man das dann auf die 270° Drehwinkel des Potis umrechnet, dann bleiben 300 Schritte übrig. Das ist von den 256 Schritten der einfacheren elektronischen Potis auch nicht so weit entfernt.

Im Endeffekt wird es also nur auf die reinen elektrischen Werte und die Spannungsfestigkeit des ICs ankommen ob es ein normales Poti ersetzen kann.

Gruß
Dino
 
Hallo Dino,

ich tippe mal das es einfacher ist ein normales Poti einzubauen da in Röhrenverstärkern doch teilweise recht hohe Spannungen auftauchen

Dem kann ich nur zustimmen. Und ich kann auch nicht sagen, ob der PGA 2310 oder irgendein anderes elektronisches Poti den elektrischen "Umweltbedingungen" in einem Röhrenverstärker standhalten würde.

Gruß
Pirx
 

Ü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)