# spi_host_hw2

SPI host, driving MSSP2 module

Author | Sebastien Lelong Copyright © 2011, all rights reserved.
Adapted-by |
Compiler | 2.4n

Description

    SPI host hardware control.
    Routines for sending and receiving through the SPI in host mode, using MSSP2

Sources

    good overview of SPI at http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
    also at: http://elm-chan.org/docs/spi_e.html

Notes

    this is a rough duplication of spi_host_hw.jal at rev 1537,
    (http://code.google.com/p/jallib/source/browse/trunk/include/peripheral/spi/spi_host_hw.jal?r=1537)
    originally written by William Welch, from which MSSP1 registers were modified to match MSSP2 names.

Dependencies

- spi_common

## Summary

### Global variables/contants

### Procedures

- `spi_host_hw2_set_mode_00()`
- `spi_host_hw2_set_mode(byte in spi_mode)`
- `spi_host_hw2'put(byte in data)`
- `spi_host_hw2_set_mode_11()`
- `spi2_init(byte in spi_mode, byte in spi_rate)`
- `spi_host_hw2_set_speed(byte in spi_rate)`
- `spi_host_hw2_set_mode_10()`
- `spi_host_hw2_set_mode_01()`

### Functions

- `spi_host_hw2'get() return byte`
- `spi_host_hw2_exchange(byte in m_data) return byte`

## API details

### Global variables/contants

### Procedures

- `spi_host_hw2_set_mode_00()`

  No documentation found

- `spi_host_hw2_set_mode(byte in spi_mode)`

      Specify SPI mode (see spi_common for predefined constant you can use
      as parameters)

- `spi_host_hw2'put(byte in data)`

      half-duplex convenience function. send data to slave, discard reply

- `spi_host_hw2_set_mode_11()`

  No documentation found

- `spi2_init(byte in spi_mode, byte in spi_rate)`

      Initialize the SPI registers.
      Note: check your datasheet -- TRIS settings, any SPI errata?

- `spi_host_hw2_set_speed(byte in spi_rate)`

  No documentation found

- `spi_host_hw2_set_mode_10()`

  No documentation found

- `spi_host_hw2_set_mode_01()`

  No documentation found

### Functions

- `spi_host_hw2'get() return byte`

      half-duplex convenience function. send 0xFF, get slave data

- `spi_host_hw2_exchange(byte in m_data) return byte`

      SPI is full-duplex, so we exchange host and slave data byte

## Related samples

Here are the list of samples which use this library:

16f1829 | 16f1829_nrf24l01.jal