3 * @author Copyright(C) 2012 Shinichiro Nakamura
4 * @brief BlueTank ACB-BF592 Application Sample Codes.
8 * ===============================================================
10 * ===============================================================
11 * Copyright (c) 2012 Shinichiro Nakamura
13 * Permission is hereby granted, free of charge, to any person
14 * obtaining a copy of this software and associated documentation
15 * files (the "Software"), to deal in the Software without
16 * restriction, including without limitation the rights to use,
17 * copy, modify, merge, publish, distribute, sublicense, and/or
18 * sell copies of the Software, and to permit persons to whom the
19 * Software is furnished to do so, subject to the following
22 * The above copyright notice and this permission notice shall be
23 * included in all copies or substantial portions of the Software.
25 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
27 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
29 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
30 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
31 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
32 * OTHER DEALINGS IN THE SOFTWARE.
33 * ===============================================================
36 #include <cdefBF592-A.h>
40 /* SSM2603のI2Cデバイスアドレス */
41 #define TWI_DEVICE_ADDR (0x1A)
43 /* SSM2603 TWI初期化データ列 */
44 static const uint8_t ssm2603_initdata[] =
46 (0x0F << 1) | 0, 0x00,
47 (0x00 << 1) | 1, 0x17,
48 (0x01 << 1) | 1, 0x17,
49 (0x02 << 1) | 1, 0x79,
50 (0x03 << 1) | 1, 0x79,
51 (0x04 << 1) | 0, 0x12,
52 (0x05 << 1) | 0, 0x00,
53 (0x06 << 1) | 0, 0x02,
54 (0x07 << 1) | 0, 0x4E,
55 (0x08 << 1) | 0, 0x00,
56 (0x09 << 1) | 0, 0x01,
59 void ssm2603_init(void)
71 *pPORTG_MUX &= ~(PG1 | PG2 | PG3 | PG5 | PG6 | PG7);
72 *pPORTG_FER |= (PG1 | PG2 | PG3 | PG5 | PG6 | PG7);
75 * PG13(MUTE#)を出力ピンに設定する。
77 *pPORTGIO_DIR |= PG13;
87 for (i = 0; i < sizeof(ssm2603_initdata); i+=2) {
88 twi_master_write(TWI_DEVICE_ADDR, TWI_STOP, &ssm2603_initdata[i], 2);
90 * STOP CONDITIONから600ns以上空ける
92 for (j = 0; j < 300; j++) {
98 void ssm2603_mute(bool mute)
101 *pPORTGIO_CLEAR = PG13;
103 *pPORTGIO_SET = PG13;