Forum: Mikrocontroller und Digitale Elektronik SMBus_ Frequenz


von hans m. (Gast)


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.

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.