Abstract: In a Bluetooth controller, the microprocessor is relieved of the duty to perform operations at time critical points in relation to Bluetooth transmission and receive time slots by using a hardware circuit that stores data from a number of Bluetooth SCO/ACL data packets received into a storage or forms such packets by retrieving data from the storage in a timely manner according to predetermined time slots without assistance from the microprocessor at time critical points. The hardware circuit also handles time critical information in relation to FHS data packets so that the microprocessor is also relieved of the duty to perform such time critical tasks. The number of buffers used to support data communication can be reduced by checking the expiration times of the buffer when the buffer is assigned to support a Bluetooth data connection. Then, when the connection experiences difficulties, the buffer will be released upon expiration timeout.
Abstract: A phase locked loop is employed to provide a clock signal for controlling the reading or writing of audio data from or into a memory to avoid memory overflow and underrun. The difference between the write and read pointers is monitored and used for adjusting a divider counter used in the feedback loop of the phase locked loop, by incrementing, decrementing by one or leaving unchanged the value of the counter. The counter is used to divide the output of the phase locked loop to provide a reference signal to the phase locked loop. A reference frequency for reading the audio data may be set close to the writing speed by incrementing or decrementing the reading speed by fine adjustment steps until the reference frequency is reached. After the reference frequency is reached, the reading speed is changed between the reference frequency and a frequency one fine adjustment step away from the reference frequency so that the average reading speed is equal to the writing speed.