Sofern möglich, an TOSC1 TOSC2 einen 32,768kHz Uhrenquarz anschließen. Dann kannst Du direkt damit arbeiten. Ansonsten empfehlen sich statt des 16MHz Quarzes, Baudratenquarze (14,756MHz)
Hallo
iche benötige ein 32,768Khz Signal auf einen I/O Port eines Mega 128.
Dieses Signal braucht ein Drucksensor um seine internen Werte zu berechnen.
Ein auszug vom Datenblatt
It is strongly recommended that a crystal oscillator be used because the device is sensitive to clock jitter. A
square-wave form of the clock signal is a must.
Wie kann ich dieses Signal erzeugen.
Der Mega hat ein 16Mhz Quarz.
Habe mal diesen Code Probiert komme aber nur auf ca 31Khz.
void init_pwm(void)
{
TCCR1A = ( 1 << WGM10 ) | (1<<COM1A1);
TCCR1B = (1<<CS10);
OCR1A=156;
DDRB |=(1<<PB5);
PORTB |=(1<<PB5);
}
Sofern möglich, an TOSC1 TOSC2 einen 32,768kHz Uhrenquarz anschließen. Dann kannst Du direkt damit arbeiten. Ansonsten empfehlen sich statt des 16MHz Quarzes, Baudratenquarze (14,756MHz)
einen externen Uhrenquarz kann ich anschalten an TOSC1 TOSC2
Aber wie bekomme ich dien Square Wavfe aus dem Mega 128???
Direkt an TOSC2 abgreifen oder kann ich das Signal an einen i/O Port ausgeben???
Wie mache ich so was???
Danke
Ich würde auch den Baudratenquarz mit 14,7MHz nehmen, wenn sonst nichts dagegen spricht..
sigo
Wenn es sich bei deinem Drucksensor um den MS5534 von Intersema handeln sollte ? Der verträgt laut Datenblatt Frequenzen von 30,000 bis 35,000 kHz und das sollte sich eigentlich einstellen lassen ?
Siehe Datenblatt auf Seite 3.
Allerdings solltest Du auf den DUTY CYCLE achten, soweit ich das Datenblatt richtig interpretiere.
Hallo
wenn ein genaues Tastverhältnis von 50:50 per Software nicht zu erreichen ist, setze ein D-FlipFlop ein.
Mit freundlichen Grüßen
Benno
Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde
Hallo
Ja es handelt sich um den Sensor
Ich habe Ihn schon in einem Höhenmesser Verbaut wo ich auch eine RC von MAXIM DS1390 verbaut habe und von der RTC die 32,786Khz abnehme der hat einen Square Wave ausgang das funktioniert alles einwandfrei.
Nur will ich mir jetzt einen Ladedruckmesser Bauen wo ich keine RTC zur verfügung habe und mir ein Signal selber erzeugen muß.
mit diesem Code bekomme ich ca 31.76Khz laut Oszi.
Wie muß das Tastverhältnis aussehen???
Wieviel %Height und wieviel % low?????
void init_pwm(void)
{
TCCR1A = ( 1 << WGM10 ) | (1<<COM1A1);
TCCR1B = (1<<CS10);
OCR1A=156; //?????
DDRB |=(1<<PB5);
PORTB |=(1<<PB5);
}
Danke
PS:
Habe jetzt ein Tastverhältniss von 50:50 mit dem Wert OCR1A=128.
Habe mir mal eine Excel Berechnungsdatei die ich mal von Intersema bekommen habe zur hand genommen und ich mus festellen das die Calibrierungsdaten stimmen nur meine ADC Werte nicht weil er zeigt mir ca 100mbar zu wenig an.
Die ADC werte sind ja abhängig vom Masterclock 32,768 Khz.
Wenn diese nicht Jitterfrei ist kommen da messfehler.
Hallo
steht doch im Datenblatt.External clock signal (4) MCLK 30.000 32.768 35.000 kHz
Duty cycle of MCLK 40/60 50/50 60/40 %
Mit freundlichen Grüßen
Benno
Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde
Lesezeichen