Forum: Mikrocontroller und Digitale Elektronik PWM mit 455kHz


von Fragender (Gast)


Lesenswert?

Hallo,

ich brauche für eine IR Fernbedinung eine Trägerfrequenz von 455kHz.
Im Moment schaffe ich nur 245kHz. Ich benutze einen Atmega 328p.
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#define F_CPU 16000000
4
5
6
int main(void)
7
{
8
  DDRB =0b00000001;
9
  DDRB = (1<<PB0);
10
  // Timer 0 konfigurieren
11
  TCCR0A=(1<<WGM02) | (1<<WGM01)| (1<<WGM00);
12
    TCCR0B=(1<<WGM02)|(1<<CS00);
13
    OCR0A=7;
14
15
  // Compare Interrupt erlauben
16
  TIMSK0 |= (1<<OCIE0A);
17
18
  // Global Interrupts aktivieren
19
  sei();
20
21
  while(1)
22
  {
23
24
  }
25
}
26
27
ISR (TIMER0_COMPA_vect)
28
{
29
  PORTB ^= (1 << PB0);
30
}

von Wolfgang (Gast)


Lesenswert?

Fragender schrieb:
> Im Moment schaffe ich nur 245kHz.

Dann guck dir mal den erzeugten Code an und zähle die Taktzyklen, die 
deine ganze Interrupterei erfordert.

Warum überlässt du die Takterzeugung nicht der Hardware und verwendest 
einen der OC0x-Pins?

von c-hater (Gast)


Lesenswert?

Fragender schrieb:

> ich brauche für eine IR Fernbedinung eine Trägerfrequenz von 455kHz.

Welche soll das denn sein? Normalerweise spielt sich das zwischen 25 und 
80kHz ab, wobei alles über 40kHz schon eher die Ausnahme als die Regel 
ist. Und wohl auch eher nur von historischem Interesse, ich bin fast 
sicher, dass kein aktuelles Gerät mehr als 40kHz Trägerfrequenz 
verwendet.

Aber natürlich: Ausnahmen bestätigen die Regel. Ich wage aber zu 
bezweifeln, dass es eine derart extreme Ausnahme mit 455kHz gibt. Gut 
möglich, dass die FB als superbillige Taktquelle einen 455kHz-ZF-Filter 
verwendet, aber die Trägerfrequenz wird dann trotzdem nicht 455kHz sein, 
sondern sehr wahrscheinlich entweder 455/8 oder 455/16, also entweder 
56kHz oder 28kHz.

von jemand (Gast)


Lesenswert?

Machs doch in Hardware.

Einen Clock gibst du auf eine Buffer mit Enable (Beispiel : 75HC1G125) 
und du schaltest mit dem Output-Enable den Carrier aus und ein:
https://assets.nexperia.com/documents/data-sheet/74HC_HCT1G125.pdf

Vorteil: Du kannst zum Senden ein passendes Peripheral verwenden.

Möglicherweise kann der ATMEGA das sogar selber, müsstest du kucken.

Theoretisch sollte man synchron zum Carrier schalten weil man sonst 
Oberwellen produziert, das ist bei IR aber wurscht.

Es gibt Controller, bei denen man den Timerausgang mit Enable schalten 
kann.

von Sascha W. (sascha-w)


Lesenswert?

c-hater schrieb:
> Fragender schrieb:
>
>> ich brauche für eine IR Fernbedinung eine Trägerfrequenz von 455kHz.
>
> Welche soll das denn sein? Normalerweise spielt sich das zwischen 25 und
> 80kHz ab, wobei alles über 40kHz schon eher die Ausnahme als die Regel
> ist. Und wohl auch eher nur von historischem Interesse, ich bin fast
> sicher, dass kein aktuelles Gerät mehr als 40kHz Trägerfrequenz
> verwendet.
>
> Aber natürlich: Ausnahmen bestätigen die Regel. Ich wage aber zu
> bezweifeln, dass es eine derart extreme Ausnahme mit 455kHz gibt. Gut
> möglich, dass die FB als superbillige Taktquelle einen 455kHz-ZF-Filter
> verwendet, aber die Trägerfrequenz wird dann trotzdem nicht 455kHz sein,
> sondern sehr wahrscheinlich entweder 455/8 oder 455/16, also entweder
> 56kHz oder 28kHz.

455kHz werden von Bang & Olufsen verwendet - also eher nicht der billig 
Kram.

Sascha

von Rolf S. (audiorolf)


Lesenswert?

Sascha W. schrieb:
> 455kHz werden von Bang & Olufsen verwendet

Auf welches Gerät beziehst Du Dich hiermit?

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Rolf S. schrieb:
> Auf welches Gerät beziehst Du Dich hiermit?

Es könnte die Beolink 1000 Fernbedienung sein, die auch von IRMP 
unterstützt wird, oder die FB namens "Video Terminal Bang&Olufsen":
https://www.mikrocontroller.net/articles/IRMP#B.26O

Und ja, B&O verwendet wirklich 455kHz. Es wird aber einfacher sein, IRMP 
zu kompilieren, als alles selbst zu erfinden.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Nimm einfach einen Timer mit fast-PWM.
Reload bei 34, PWM auf 17.
16MHz / 35 = 457kHz.

von Fragender (Gast)


Lesenswert?

Erstmal danke für die hilfreichen Antworten.

Ich studiere Elektrotechnik und die Aufgabe ist Teil einer Veranstaltung 
zum Thema Hard- und Softwareentwicklung.
Es soll eine neue IR Fernbedingung für ein bestehendes Messsystem 
entwickelt werden. Den Hardware teil habe ich schon erfolgreich 
abgeschlossen. Nur die Software bereitet mir Probleme. Ich habe früher 
schonmal mit einem Atmega gearbeitet, aber noch nie in diesem 
Frequenzbereich. Ein Hersteller zu diesem Messsystem ist nicht bekannt. 
Ich vermute, dass es selbst entwickelt wurde. Leider hat der vorherige 
Professor wohl alle Informationen über den internen Aufbau des Systemes 
mit in den Ruhestand genommen. Als Empfänger wird ein TSOP5700 
verwendet. Das verwendete Protokoll ist leider ein selbstgemachtes.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Fragender schrieb:
> Den Hardware teil habe ich schon erfolgreich abgeschlossen.
Nicht, wenn du den falschen Pin an die Sende-LED angeschlossen hast. 
Denn genau diese Ressourcenverteilung muss man vorher recherchieren.

Und wenn du keine Fast-PWM hast, dann musst du die Quarzfrequenz so 
wählen, dass du einen Teiler für den Timer findest, der die 455kHz 
erzeugt.

Beides ist Hardware. Also ist deren Entwicklung offenbar doch noch nicht 
so ganz "erfolgreich abgeschlossen"...

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.