@@ -169,10 +169,11 @@ def _configure_registers(self, p1, p2, p3):
169
169
self ._si5351 ._write_u8 (_SI5351_REGISTER_177_PLL_RESET , (1 << 7 ) | (1 << 5 ))
170
170
171
171
def configure_integer (self , multiplier ):
172
- """Configure the PLL with a simple integer mulitplier for the most
172
+ """Configure the PLL with a simple integer multiplier for the most
173
173
accurate (but more limited) PLL frequency generation.
174
174
"""
175
- assert 14 < multiplier < 91
175
+ if multiplier >= 91 or multiplier <= 14 :
176
+ raise Exception ("Multiplier must be in range 14 to 91." )
176
177
multiplier = int (multiplier )
177
178
# Compute register values and configure them.
178
179
p1 = 128 * multiplier - 512
@@ -192,9 +193,14 @@ def configure_fractional(self, multiplier, numerator, denominator):
192
193
multiplier and numerator/denominator. This is less accurate and
193
194
susceptible to jitter but allows a larger range of PLL frequencies.
194
195
"""
195
- assert 14 < multiplier < 91
196
- assert 0 < denominator <= 0xFFFFF # Prevent divide by zero.
197
- assert 0 <= numerator < 0xFFFFF
196
+ if multiplier >= 91 or multiplier <= 14 :
197
+ raise Exception ("Multiplier must be in range 14 to 91." )
198
+ if denominator > 0xFFFFF or denominator <= 0 : # Prevent divide by zero.
199
+ raise Exception (
200
+ "Denominator must be greater than 0 and less than 0xFFFFF."
201
+ )
202
+ if numerator >= 0xFFFFF or numerator < 0 :
203
+ raise Exception ("Numerator must be in range 0 to 0xFFFFF." )
198
204
multiplier = int (multiplier )
199
205
numerator = int (numerator )
200
206
denominator = int (denominator )
@@ -279,7 +285,8 @@ def r_divider(self):
279
285
280
286
@r_divider .setter
281
287
def r_divider (self , divider ):
282
- assert 0 <= divider <= 7
288
+ if divider > 7 or divider < 0 :
289
+ raise Exception ("Divider must in range 0 to 7." )
283
290
reg_value = self ._si5351 ._read_u8 (self ._r )
284
291
reg_value &= 0x0F
285
292
divider &= 0x07
@@ -306,10 +313,12 @@ def configure_integer(self, pll, divider):
306
313
divider. This is the most accurate way to set the clock output
307
314
frequency but supports less of a range of values.
308
315
"""
309
- assert 3 < divider < 2049
316
+ if divider >= 2049 or divider <= 3 :
317
+ raise Exception ("Divider must be in range 3 to 2049." )
310
318
divider = int (divider )
311
319
# Make sure the PLL is configured (has a frequency set).
312
- assert pll .frequency is not None
320
+ if pll .frequency is None :
321
+ raise Exception ("PLL must be configured." )
313
322
# Compute MSx register values.
314
323
p1 = 128 * divider - 512
315
324
p2 = 0
@@ -331,14 +340,20 @@ def configure_fractional(self, pll, divider, numerator, denominator):
331
340
fractional divider with numerator/denominator. Again this is less
332
341
accurate but has a wider range of output frequencies.
333
342
"""
334
- assert 3 < divider < 2049
335
- assert 0 < denominator <= 0xFFFFF # Prevent divide by zero.
336
- assert 0 <= numerator < 0xFFFFF
343
+ if divider >= 2049 or divider <= 3 :
344
+ raise Exception ("Divider must be in range 3 to 2049." )
345
+ if denominator > 0xFFFFF or denominator <= 0 : # Prevent divide by zero.
346
+ raise Exception (
347
+ "Denominator must be greater than 0 and less than 0xFFFFF."
348
+ )
349
+ if numerator >= 0xFFFFF or numerator < 0 :
350
+ raise Exception ("Numerator must be in range 0 to 0xFFFFF." )
337
351
divider = int (divider )
338
352
numerator = int (numerator )
339
353
denominator = int (denominator )
340
354
# Make sure the PLL is configured (has a frequency set).
341
- assert pll .frequency is not None
355
+ if pll .frequency is None :
356
+ raise Exception ("PLL must be configured." )
342
357
# Compute MSx register values.
343
358
p1 = int (128 * divider + math .floor (128 * (numerator / denominator )) - 512 )
344
359
p2 = int (
0 commit comments