|Top Previous Next|
GA1000 is an add-on Wi-Fi module implementing 802.11b/g protocols (for documentation see Programmable Hardware Manual). This add-on device cannot work by itself and requires "external brains" in the form of one of Tibbo devices.
The GA1000 communicates with Tibbo devices through an SPI interface. Your device will control the GA1000 through five GPIO lines:
•CS — SPI bus, chip select (active low);
•CLK — SPI bus, clock;
•DI — SPI bus, data in (must be connected to the GA1000's DO);
•DO — SPI bus, data out (must be connected to the GA1000's DI);
•RST — reset (active low). This line can be eliminated — see below for details.
Providing hardware reset
The wln. object directly controls CS, CLK, DI, and DO lines. Your application, however, must take care of the proper hardware reset for the GA1000. There are two methods for doing this:
•Use a dedicated GPIO line to act as the RST line of the GA1000 interface (shown on diagram A below):
•Use 2 NAND gates to combine CS and CLK signals and produce the reset signal for the GA1000 (shown on diagram B). This approach takes advantage of the fact that during SPI communications, CLK line will never be LOW while the CS line is HIGH. Schematic diagram on figure B generates reset when CS=HIGH and CLK=LOW. This way you save one GPIO line of your programmable module. Here is the code that will reset the GA1000:
Tibbo devices differ in whether the CS, CLK, DI, and DO lines are remappable. On devices with remappable lines, you can choose any set of GPIOs to control the GA1000. On devices where remapping isn't provided, you just have to use "prescribed" GPIO lines. For information on this, see Miscellaneous information section of your platform's documentation (for example, EM1000W's is here).
Special case — the EM500
Diagram C shows the recommended way of connecting the GA1000 to the EM500 module. GPIO lines are a precious commodity on the EM500 — there are only eight of them available. As seen on the diagram C, you can get away with using only three lines to control the GA1000 (against the standard five lines). One line is saved by producing the reset out of CS and CLK lines. The second line is saved because EM500's bidirectional GPIOs allow interconnecting DI and DO. The EM500 does not allow remapping of GA1000 lines, so GPIO line assignment shown below cannot be changed.