Arduino to Peripheral Module adapter library
This library assigns the proper pins for an Arduino compatible board with the ard2pmd adapter board.
- mux I2C pins
mux(D14, D15)
Digital I/O
pmd[8]
is an array of pointers to the DigitalInOut objects
Index | Name | Pmod |
---|---|---|
0 | pa1 | 1 |
1 | pa2 | 2 |
2 | pa3 | 3 |
3 | pa4 | 4 |
4 | pb1 | 7 |
5 | pb2 | 8 |
6 | pb3 | 9 |
7 | pb4 | 10 |
MAX14661 Multiplexer Abstraction
mux_a[17]
is an array of integers representing the bit mask of a multiplexer switch arranged in Arduino order
Index | Pin | Name |
---|---|---|
0 | D0 | RX |
1 | D1 | TX |
2 | D2 | D3 |
3 | D3 | D4 |
4 | D4 | PB1 |
5 | D5 | PB2 |
6 | D6 | PB3 |
7 | D7 | PB4 |
8 | D8 | D8 |
9 | D9 | D9 |
10 | D10 | PA1 |
11 | D11 | PA2 |
12 | D12 | PA3 |
13 | D13 | PA4 |
14 | D14 | SDA |
15 | D15 | SCL |
16 | na | 0 |
mux_p[9]
is an array of integers representing the bit mask of a multiplexer switch arranged in Pmod order
Index | Pin | Name |
---|---|---|
0 | D10 | PA1 |
1 | D11 | PA2 |
2 | D12 | PA3 |
3 | D13 | PA4 |
4 | D4 | PB1 |
5 | D5 | PB2 |
6 | D6 | PB3 |
7 | D7 | PB4 |
8 | na | 0 |
ARD2PMD.h@4:f016a009708c, 2014-05-10 (annotated)
- Committer:
- gsteiert
- Date:
- Sat May 10 04:22:17 2014 +0000
- Revision:
- 4:f016a009708c
- Parent:
- 3:18ae8990f74b
Cleaned up example in comments.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsteiert | 0:d42cfc64e43e | 1 | /* ARD2PMD Board Driver Library |
gsteiert | 0:d42cfc64e43e | 2 | * |
gsteiert | 0:d42cfc64e43e | 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software |
gsteiert | 0:d42cfc64e43e | 4 | * and associated documentation files (the "Software"), to deal in the Software without restriction, |
gsteiert | 0:d42cfc64e43e | 5 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, |
gsteiert | 0:d42cfc64e43e | 6 | * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is |
gsteiert | 0:d42cfc64e43e | 7 | * furnished to do so, subject to the following conditions: |
gsteiert | 0:d42cfc64e43e | 8 | * |
gsteiert | 0:d42cfc64e43e | 9 | * The above copyright notice and this permission notice shall be included in all copies or |
gsteiert | 0:d42cfc64e43e | 10 | * substantial portions of the Software. |
gsteiert | 0:d42cfc64e43e | 11 | * |
gsteiert | 0:d42cfc64e43e | 12 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
gsteiert | 0:d42cfc64e43e | 13 | * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
gsteiert | 0:d42cfc64e43e | 14 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
gsteiert | 0:d42cfc64e43e | 15 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
gsteiert | 0:d42cfc64e43e | 16 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
gsteiert | 0:d42cfc64e43e | 17 | */ |
gsteiert | 0:d42cfc64e43e | 18 | |
gsteiert | 0:d42cfc64e43e | 19 | #ifndef ARD2PMD_H |
gsteiert | 0:d42cfc64e43e | 20 | #define ARD2PMD_H |
gsteiert | 0:d42cfc64e43e | 21 | |
gsteiert | 0:d42cfc64e43e | 22 | #include "mbed.h" |
gsteiert | 0:d42cfc64e43e | 23 | #include "MAX14661.h" |
gsteiert | 0:d42cfc64e43e | 24 | |
gsteiert | 0:d42cfc64e43e | 25 | |
gsteiert | 0:d42cfc64e43e | 26 | /** ARD2PMD Library, Provides utilities for configuring the Maxim ARD2PMD Board |
gsteiert | 0:d42cfc64e43e | 27 | * |
gsteiert | 0:d42cfc64e43e | 28 | * Example: |
gsteiert | 0:d42cfc64e43e | 29 | * @code |
gsteiert | 0:d42cfc64e43e | 30 | * // Configure board to pass UART signals to peripheral connector. |
gsteiert | 0:d42cfc64e43e | 31 | * |
gsteiert | 0:d42cfc64e43e | 32 | * #include "ARD2PMD.h" |
gsteiert | 0:d42cfc64e43e | 33 | * |
gsteiert | 4:f016a009708c | 34 | * ARD2PMD a2p(); |
gsteiert | 0:d42cfc64e43e | 35 | * |
gsteiert | 0:d42cfc64e43e | 36 | * int main() { |
gsteiert | 4:f016a009708c | 37 | * a2p.mux.setAB((ARD2PMD::RX | ARD2PMD::PA3), (ARD2PMD::TX | ARD2PMD::PA2)); |
gsteiert | 0:d42cfc64e43e | 38 | * } |
gsteiert | 0:d42cfc64e43e | 39 | * @endcode |
gsteiert | 0:d42cfc64e43e | 40 | */ |
gsteiert | 0:d42cfc64e43e | 41 | class ARD2PMD |
gsteiert | 0:d42cfc64e43e | 42 | { |
gsteiert | 0:d42cfc64e43e | 43 | public: |
gsteiert | 0:d42cfc64e43e | 44 | |
gsteiert | 0:d42cfc64e43e | 45 | /** Create a ARD2PMD interface |
gsteiert | 0:d42cfc64e43e | 46 | * |
gsteiert | 0:d42cfc64e43e | 47 | * @param sda I2C data line pin |
gsteiert | 0:d42cfc64e43e | 48 | * @param scl I2C clock line pin |
gsteiert | 0:d42cfc64e43e | 49 | * @param addr MAX14661 I2C address |
gsteiert | 0:d42cfc64e43e | 50 | */ |
gsteiert | 3:18ae8990f74b | 51 | ARD2PMD(); |
gsteiert | 0:d42cfc64e43e | 52 | |
gsteiert | 0:d42cfc64e43e | 53 | ~ARD2PMD(); |
gsteiert | 0:d42cfc64e43e | 54 | |
gsteiert | 3:18ae8990f74b | 55 | /** Initialize the digital pins and PWM |
gsteiert | 3:18ae8990f74b | 56 | * |
gsteiert | 3:18ae8990f74b | 57 | */ |
gsteiert | 3:18ae8990f74b | 58 | void init(); |
gsteiert | 3:18ae8990f74b | 59 | |
gsteiert | 3:18ae8990f74b | 60 | /** ard2pmd resources mux, digital IO |
gsteiert | 3:18ae8990f74b | 61 | */ |
gsteiert | 3:18ae8990f74b | 62 | MAX14661 mux; |
gsteiert | 3:18ae8990f74b | 63 | DigitalInOut pa1; |
gsteiert | 3:18ae8990f74b | 64 | DigitalInOut pa2; |
gsteiert | 3:18ae8990f74b | 65 | DigitalInOut pa3; |
gsteiert | 3:18ae8990f74b | 66 | DigitalInOut pa4; |
gsteiert | 3:18ae8990f74b | 67 | DigitalInOut pb1; |
gsteiert | 3:18ae8990f74b | 68 | DigitalInOut pb2; |
gsteiert | 3:18ae8990f74b | 69 | DigitalInOut pb3; |
gsteiert | 3:18ae8990f74b | 70 | DigitalInOut pb4; |
gsteiert | 3:18ae8990f74b | 71 | |
gsteiert | 3:18ae8990f74b | 72 | /** Array of pointers to the DIO pins |
gsteiert | 3:18ae8990f74b | 73 | */ |
gsteiert | 3:18ae8990f74b | 74 | DigitalInOut *pmd[8]; |
gsteiert | 3:18ae8990f74b | 75 | |
gsteiert | 3:18ae8990f74b | 76 | /** LUT for multiplexer micro connections |
gsteiert | 3:18ae8990f74b | 77 | */ |
gsteiert | 3:18ae8990f74b | 78 | static const int mux_a[17]; |
gsteiert | 3:18ae8990f74b | 79 | |
gsteiert | 3:18ae8990f74b | 80 | /** LUT for multiplexer PMOD connections |
gsteiert | 3:18ae8990f74b | 81 | */ |
gsteiert | 3:18ae8990f74b | 82 | static const int mux_p[9]; |
gsteiert | 3:18ae8990f74b | 83 | |
gsteiert | 0:d42cfc64e43e | 84 | /** Name the register addresses |
gsteiert | 0:d42cfc64e43e | 85 | */ |
gsteiert | 0:d42cfc64e43e | 86 | enum MUXsignals { |
gsteiert | 2:722a0e1df9a9 | 87 | RX = MAX14661::SW01, /**< UART Receive */ |
gsteiert | 2:722a0e1df9a9 | 88 | TX = MAX14661::SW02, /**< UART Transmit */ |
gsteiert | 2:722a0e1df9a9 | 89 | D2 = MAX14661::SW03, /**< Digital 2 */ |
gsteiert | 2:722a0e1df9a9 | 90 | D3 = MAX14661::SW04, /**< Digital 3 */ |
gsteiert | 2:722a0e1df9a9 | 91 | PB1 = MAX14661::SW05, /**< Pmd row B pin 1 */ |
gsteiert | 2:722a0e1df9a9 | 92 | PB2 = MAX14661::SW06, /**< Pmd row B pin 2 */ |
gsteiert | 2:722a0e1df9a9 | 93 | PB3 = MAX14661::SW07, /**< Pmd row B pin 3 */ |
gsteiert | 2:722a0e1df9a9 | 94 | PB4 = MAX14661::SW08, /**< Pmd row B pin 4 */ |
gsteiert | 2:722a0e1df9a9 | 95 | D8 = MAX14661::SW16, /**< Digital 8 */ |
gsteiert | 2:722a0e1df9a9 | 96 | D9 = MAX14661::SW15, /**< Digital 9 */ |
gsteiert | 2:722a0e1df9a9 | 97 | PA1 = MAX14661::SW14, /**< Pmd row A pin 1 */ |
gsteiert | 2:722a0e1df9a9 | 98 | PA2 = MAX14661::SW13, /**< Pmd row A pin 1 */ |
gsteiert | 2:722a0e1df9a9 | 99 | PA3 = MAX14661::SW12, /**< Pmd row A pin 1 */ |
gsteiert | 2:722a0e1df9a9 | 100 | PA4 = MAX14661::SW11, /**< Pmd row A pin 1 */ |
gsteiert | 2:722a0e1df9a9 | 101 | SDA = MAX14661::SW10, /**< I2C Data */ |
gsteiert | 2:722a0e1df9a9 | 102 | SCL = MAX14661::SW09 /**< I2C Clock */ |
gsteiert | 0:d42cfc64e43e | 103 | }; |
gsteiert | 0:d42cfc64e43e | 104 | |
gsteiert | 0:d42cfc64e43e | 105 | }; |
gsteiert | 0:d42cfc64e43e | 106 | |
gsteiert | 0:d42cfc64e43e | 107 | #endif |