SMBus_ Frequenz

Gast #832422
Lesenswert?
• ▲
▼
Hallo und einen guten Tag zusammen...
Ich habe ein Verständnisproblem mit dem SMBus.
Gegeben ist folgender Codeausschnitt für die Initialisierung eines 
Timers, der die Frequenz der SCL- Leitung des SM Bus bestimmt.

// Timer1 configured as the SMBus clock source as follows:
// - Timer1 in 8-bit auto-reload mode
// - SYSCLK or SYSCLK / 4 as Timer1 clock source
// - Timer1 overflow rate => 3 * SMB_FREQUENCY
// - The resulting SCL clock rate will be ~1/3 the Timer1 overflow rate
// - Timer1 enabled
//
void Timer1_Init (void)
{

// Make sure the Timer can produce the appropriate frequency in 8-bit 
mode
// Supported SMBus Frequencies range from 10kHz to 100kHz.  The CKCON 
register
// settings may need to change for frequencies outside this range.
#if ((SYSCLK/SMB_FREQUENCY/3) < 255)
   #define SCALE 1
      CKCON |= 0x08;                   // Timer1 clock source = SYSCLK
#elif ((SYSCLK/SMB_FREQUENCY/4/3) < 255)
   #define SCALE 4
      CKCON |= 0x01;
      CKCON &= ~0x0A;                  // Timer1 clock source = SYSCLK / 
4
#endif

1) Was ist hier mit SMB_Frequency gemeint ? 1/3 der Timer overflow rate 
? oder 3* Timer overflow rate
2) SMB_FRequency ist ist oben mit #define SMB_Frequency 100000 ? also 
100kHz.
Wie passt das zusammen, wenn die SMB_Frequency doch vom Timer 
beeinflusst wird ?
3) Ich habe eine Sysclk von 24,5MHz.
Dann ist doch, wenn ich keinen Prescaler benutze die Timeroverflow rate:
1/24,5MHz*2^8 ; da 8bit Timer !  , oder ?
Das entspricht einer Frequenz von: 95,7kHz
Wie groß ist jetzt die SMB_Frequency ?

Vielen Dank für eure Hilfe
mfg hans m.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren