Title: RF Bandits USB Radio
1RF Bandits USB Radio
- Team Members
- Maksymilian Keska
- David Sawyer
- Brent Holden
- Trushil Shah
- Advisor Dr. John Ayers
- Sponsor UCONN ECE Department
2Introduction
- Computer controlled radio that uses a Universal
Serial Bus port for communication. - Tuning and volume are controlled from the PC.
- A graphical interface for both Windows and Linux
which allows the user to control the operation of
the radio.
3Goals
- Design of a radio reception circuit which can be
controlled digitally. - Design of a USB system which supports Windows and
Linux. - Development of a user friendly graphical
interface which supports every function of the
radio. - Interfacing between the graphical program, the
USB module, and the hardware circuit.
4Design (Radio Receiver)
- Philips TEA5757 self tuning radio IC
- Tuning Frequency set by a three wire digital
interface - Radio and Tuning Synthesizer on a single chip
- Requires less external RF components
5Tuning Circuit
- Oscillation frequency is set by a tuning voltage
from the radio chip - The internal frequency counter of the IC counts
the oscillation frequency - Tuning voltage is re-adjusted until the measured
frequency matches the desired frequency
6Design (Printed Circuit Board)
- Professionally manufactured
- Double sided
- 3.8 x 2.5
- Pads sized for each surface mount component
- Radio circuit, microcontroller, and USB module
integrated on one board
7Design (Printed Circuit Board)
- Minimal Trace Lengths
- Solid Power and Ground Line
- IF Filters and Oscillator placed closer to the
chip
8Design (USB Communication)
- FTDI FT8U245AM USB Communication Module
- Drivers for both Windows and Linux
- Powered by the USB port
- 1Mb/sec max data throughput
- USB 1.1 Compliant
9Microcontroller Atmega8
- The microcontroller is a low power device. USB
offers us a limited amount of power. This is
sufficient enough to power the microcontroller. - Logic was implemented by a software program vs. a
hardware solution. - The tuning data from the computer ie reformatted
for the radio chip and sent through a serial
interface.
10Microcontroller Atmega8
8 DATA
Atmega8
2 RE,WE
2 R,W
1 R/W
USB
TEA 5757
1 CLK
Send to TEA5757 RE goes low R goes high Receive
data WE goes low W goes high
1 DATA
11Microcontroller Flow Chart
START
Set Read 1, Set Write 0 Set READ ENABLE
and WRITE ENABLE pins as input pins Reset USB
module
Set W 1 Set data pins from USB as output pins
no
Set R 0 Set data pins from USB as input pins
READ ENABLE 1?
Input 3 bytes from TEA5757 to microcontroller
Input 3 bytes from USB to microcontroller
YES
Output3 bytes to USB
YES
Set read 1
no
WRITE ENABLE 1?
Output3 bytes to TEA5757
Set W 0
12Design (Windows HAL)
- Designed to function as a bridge between the
hardware and software. - Controls basic functions of tuning the radio and
controlling mixer levels. - Communicates with the Windows USB driver
subsystem. - Programmed in C and exported as a shared
library (DLL). - Linked into the Windows GUI program at runtime.
13Design (Linux HAL)
- Performs the same basic functions of the Windows
HAL. - Uses the FTDI-SIO serial interface driver
included with the latest Linux kernels (greater
than 2.4.10) - Programmed in C and exported as a static
library. - Linked into the Linux GUI program at compilation
time.
14Implementation (Windows)
Windows Interface v1.0
- Programmed using C with Microsoft Foundation
Classes. - Application can be minimized to tray, and is
skinnable. - Approximately 4,200 lines of C code.
- Graphics were designed using Adobe Photoshop.
- A drastic improvement over Version 0.2b
Windows Interface v0.2b
15Implementation (Linux)
- Programmed using C with Qt libraries.
- Supports all functions available to it from the
radio. - Requires the K Desktop Environment to run.
- Look and feel controlled by KDE configuration.
- Approximately 1,400 lines of C code.
Linux KDE Interface v1.0
16Basic Program Flow Chart
Program Initialization
Preferences Read
If no preferences exist, create default
GUI Created With Button Action Listeners
Favorite Clicked
Edit Preferences
Tune Clicked
VolumeControl
17Implementation Overview
- Linux program based on Qt requires less code to
accomplish similar tasks compared to the Windows
program using MFC. - Linux HAL requires less code because of the
kernel driver being used on Linux. - Both programs necessitated the use of C for
easy cross-platform transition. - Windows and Linux programs come with self
installers. - Amount of code between both HALs and both GUIs is
7,800 lines of C.
18Design (System Integration)
Functional Block Description
Software
Hardware
USB Interface
Hardware Abstraction Layer
Microcontroller
User Interface
Radio IC
19Challenges
- How to obtain hard to find semiconductor
components. - PCB layout and precision soldering using surface
mount components. - RF circuit design using high frequencies and low
voltages.
- Understanding large and complex datasheets for
commercial integrated circuits. - Interfacing with USB operating system drivers.
- Interface programming and skinning.
20Design Alternatives
- Radio Receivers
- Atmel U2455BM-M
- Sanyo LV23000M
- USB Communication
- Microchip PIC16C745
- Cypress CY7C64113
- Visual Basic
21Timeline
22Budget
23Related Documents
- Datasheets
- FTDI USB controller
- http//www.ftdichip.com
- Atmel microcontroller
- http//www.atmel.com
- Philips radio tuner
- http//www.semiconductors.philips.com
- Further information
- USB
- http//www.usb.org
- http//www.beyondlogic.org
- Microcontroller
- http//www.avrfreaks.net
24Final Product Information
- Power USB Powered
- Environments Windows and Linux compatible
- Band FM
- Communication USB 1.1 compliant
25Acknowledgements
- Dr. John Ayers, UCONN
- Dr. Joel Rosiene, ECSU
- Ricardo Silva
- Angel Rodriguez
- Tom Mealy
26Conclusion
- Any computer running Linux or Windows with USB is
able to use this radio. - The graphical interface is simple enough such
that people with a basic knowledge of computers
are able to use it. - Device doesnt have any buttons, knobs or
display. - The team gained software and hardware experience
through a substantial project.
27Questions