source: rtos_arduino/trunk/arduino_lib/libraries/Ciao/src/lib/SC16IS750.h@ 224

Last change on this file since 224 was 224, checked in by ertl-honda, 8 years ago

1.7.10のファイルに更新

File size: 5.2 KB
Line 
1/*
2Description:
3This is a example code for Sandbox Electronics' I2C/SPI to UART bridge module.
4You can get one of those products on
5http://sandboxelectronics.com
6
7Version:
8V0.1
9
10Release Date:
112014-02-16
12
13Author:
14Tiequan Shao info@sandboxelectronics.com
15
16Lisence:
17CC BY-NC-SA 3.0
18
19Please keep the above information when you use this code in your project.
20*/
21
22
23#ifndef _SC16IS750_H_
24#define _SC16IS750_H_
25
26#if ARDUINO >= 100
27 #include "Arduino.h"
28#else
29 #include "WProgram.h"
30#endif
31
32//Device Address
33
34//A:VDD
35//B:GND
36//C:SCL
37//D:SDA
38#define SC16IS750_ADDRESS_AA (0X90)
39#define SC16IS750_ADDRESS_AB (0X92)
40#define SC16IS750_ADDRESS_AC (0X94)
41#define SC16IS750_ADDRESS_AD (0X96)
42#define SC16IS750_ADDRESS_BA (0X98)
43#define SC16IS750_ADDRESS_BB (0X9A)
44#define SC16IS750_ADDRESS_BC (0X9C)
45#define SC16IS750_ADDRESS_BD (0X9E)
46#define SC16IS750_ADDRESS_CA (0XA0)
47#define SC16IS750_ADDRESS_CB (0XA2)
48#define SC16IS750_ADDRESS_CC (0XA4)
49#define SC16IS750_ADDRESS_CD (0XA6)
50#define SC16IS750_ADDRESS_DA (0XA8)
51#define SC16IS750_ADDRESS_DB (0XAA)
52#define SC16IS750_ADDRESS_DC (0XAC)
53#define SC16IS750_ADDRESS_DD (0XAE)
54
55
56//General Registers
57#define SC16IS750_REG_RHR (0x00)
58#define SC16IS750_REG_THR (0X00)
59#define SC16IS750_REG_IER (0X01)
60#define SC16IS750_REG_FCR (0X02)
61#define SC16IS750_REG_IIR (0X02)
62#define SC16IS750_REG_LCR (0X03)
63#define SC16IS750_REG_MCR (0X04)
64#define SC16IS750_REG_LSR (0X05)
65#define SC16IS750_REG_MSR (0X06)
66#define SC16IS750_REG_SPR (0X07)
67#define SC16IS750_REG_TCR (0X06)
68#define SC16IS750_REG_TLR (0X07)
69#define SC16IS750_REG_TXLVL (0X08)
70#define SC16IS750_REG_RXLVL (0X09)
71#define SC16IS750_REG_IODIR (0X0A)
72#define SC16IS750_REG_IOSTATE (0X0B)
73#define SC16IS750_REG_IOINTENA (0X0C)
74#define SC16IS750_REG_IOCONTROL (0X0E)
75#define SC16IS750_REG_EFCR (0X0F)
76
77//Special Registers
78#define SC16IS750_REG_DLL (0x00)
79#define SC16IS750_REG_DLH (0X01)
80
81//Enhanced Registers
82#define SC16IS750_REG_EFR (0X02)
83#define SC16IS750_REG_XON1 (0X04)
84#define SC16IS750_REG_XON2 (0X05)
85#define SC16IS750_REG_XOFF1 (0X06)
86#define SC16IS750_REG_XOFF2 (0X07)
87
88//
89#define SC16IS750_INT_CTS (0X80)
90#define SC16IS750_INT_RTS (0X40)
91#define SC16IS750_INT_XOFF (0X20)
92#define SC16IS750_INT_SLEEP (0X10)
93#define SC16IS750_INT_MODEM (0X08)
94#define SC16IS750_INT_LINE (0X04)
95#define SC16IS750_INT_THR (0X02)
96#define SC16IS750_INT_RHR (0X01)
97
98//Application Related
99
100#define SC16IS750_CRYSTCAL_FREQ (14745600UL)
101//#define SC16IS750_CRYSTCAL_FREQ (1843200UL)
102//#define SC16IS750_CRYSTCAL_FREQ (16000000UL)
103//#define SC16IS750_DEBUG_PRINT (0)
104#define SC16IS750_PROTOCOL_I2C (0)
105#define SC16IS750_PROTOCOL_I2C (0)
106#define DELIMITER "<!--~-->"
107#define EOL '\0'
108
109class WifiData : public Stream
110{
111 public:
112 WifiData();
113 void begin(uint32_t baud);
114 int read();
115 size_t write(uint8_t val);
116 int available();
117 void pinMode(uint8_t pin, uint8_t io);
118 void digitalWrite(uint8_t pin, uint8_t value);
119 uint8_t digitalRead(uint8_t pin);
120 uint8_t ping();
121 int peek();
122 void flush();
123 uint8_t GPIOGetPortState(void);
124 uint8_t InterruptPendingTest(void);
125 void SetPinInterrupt(uint8_t io_int_ena);
126 void InterruptControl(uint8_t int_ena);
127 void ModemPin(uint8_t gpio); //gpio == 0, gpio[7:4] are modem pins, gpio == 1 gpio[7:4] are gpios
128 void GPIOLatch(uint8_t latch);
129
130
131 private:
132 uint8_t device_address_sspin;
133 uint8_t protocol;
134 // uint32_t timeout;
135 int16_t SetBaudrate(uint32_t baudrate);
136 uint8_t ReadRegister(uint8_t reg_addr);
137 void WriteRegister(uint8_t reg_addr, uint8_t val);
138 void SetLine(uint8_t data_length, uint8_t parity_select, uint8_t stop_length );
139 void GPIOSetPinMode(uint8_t pin_number, uint8_t i_o);
140 void GPIOSetPinState(uint8_t pin_number, uint8_t pin_state);
141
142 uint8_t GPIOGetPinState(uint8_t pin_number);
143 void GPIOSetPortMode(uint8_t port_io);
144 void GPIOSetPortState(uint8_t port_state);
145 void ResetDevice(void);
146
147
148
149 void __isr(void);
150 void FIFOEnable(uint8_t fifo_enable);
151 void FIFOReset(uint8_t rx_fifo);
152 void FIFOSetTriggerLevel(uint8_t rx_fifo, uint8_t length);
153 uint8_t FIFOAvailableData(void);
154 uint8_t FIFOAvailableSpace(void);
155 void WriteByte(uint8_t val);
156 int ReadByte(void);
157 void EnableTransmit(uint8_t tx_enable);
158 // int16_t readwithtimeout();
159 int peek_buf;
160 uint8_t peek_flag;
161
162};
163
164#endif
Note: See TracBrowser for help on using the repository browser.