EMAC driver for the ENC28J60 Ethernet controller. This is a simplified fork of https://github.com/tobiasjaster/ENC28J60-EMAC-Driver published by Tobias Jaster.

Dependents:   MQTT_Hello MQTT_HelloENC28J60

EMAC driver for the ENC28J60 Ethernet controller

https://os.mbed.com/media/uploads/hudakz/enc28j60_module01.jpg

This is a fork (the INT and RST pins are not used) of the ENC28J60-EMAC driver published by Tobias Jaster at

https://github.com/tobiasjaster/ENC28J60-EMAC-Driver

Usage:

  • Connect the ENC28J60 module to the Mbed board as follows:

https://os.mbed.com/media/uploads/hudakz/enc28j60-emac.png

  • Import (add) this ENC28J60-EMAC library to your program.
  • Add a "mbed_app.json" file with the following content to the root directory of your program:

    {
        "target_overrides": {
            "*": {
                "platform.callback-nontrivial": true,
                "enc28j60-emac.mosi":  "D11",
                "enc28j60-emac.miso":  "D12",
                "enc28j60-emac.sck" :  "D13",
                "enc28j60-emac.cs"  :  "D10"
            }
        }
    }
  • Replace "D11", ..., "D10" with the actual pin names you selected on the Mbed board to be used for the SPI communication.
  • To set the MAC address define an array with the desired address bytes and call the "set_hwaddr(mac)" function before calling the network interface "connect" function.

For example:

    const uint8_t       MAC[6] = { 0, 1, 2, 3, 4, 5 };
    EthernetInterface   net;
 
    int main()
    {
        net.get_emac().set_hwaddr(MAC);             // set MAC address
        if (net.connect() != 0) {
            printf("Error: Unable to connect to the network.\n");
            return -1;
        }
     ...
Committer:
hudakz
Date:
Mon Mar 29 08:37:01 2021 +0000
Revision:
3:aa88808326b9
Parent:
0:b599e748252c
Mbed OS Ethernet MAC (EMAC) driver for the ENC28J60 Ethernet controller. This a simplified fork of https://github.com/tobiasjaster/ENC28J60-EMAC-Driver published by Tobias Jaster.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:b599e748252c 1 Apache License
hudakz 0:b599e748252c 2 Version 2.0, January 2004
hudakz 0:b599e748252c 3 http://www.apache.org/licenses/
hudakz 0:b599e748252c 4
hudakz 0:b599e748252c 5 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
hudakz 0:b599e748252c 6
hudakz 0:b599e748252c 7 1. Definitions.
hudakz 0:b599e748252c 8
hudakz 0:b599e748252c 9 "License" shall mean the terms and conditions for use, reproduction,
hudakz 0:b599e748252c 10 and distribution as defined by Sections 1 through 9 of this document.
hudakz 0:b599e748252c 11
hudakz 0:b599e748252c 12 "Licensor" shall mean the copyright owner or entity authorized by
hudakz 0:b599e748252c 13 the copyright owner that is granting the License.
hudakz 0:b599e748252c 14
hudakz 0:b599e748252c 15 "Legal Entity" shall mean the union of the acting entity and all
hudakz 0:b599e748252c 16 other entities that control, are controlled by, or are under common
hudakz 0:b599e748252c 17 control with that entity. For the purposes of this definition,
hudakz 0:b599e748252c 18 "control" means (i) the power, direct or indirect, to cause the
hudakz 0:b599e748252c 19 direction or management of such entity, whether by contract or
hudakz 0:b599e748252c 20 otherwise, or (ii) ownership of fifty percent (50%) or more of the
hudakz 0:b599e748252c 21 outstanding shares, or (iii) beneficial ownership of such entity.
hudakz 0:b599e748252c 22
hudakz 0:b599e748252c 23 "You" (or "Your") shall mean an individual or Legal Entity
hudakz 0:b599e748252c 24 exercising permissions granted by this License.
hudakz 0:b599e748252c 25
hudakz 0:b599e748252c 26 "Source" form shall mean the preferred form for making modifications,
hudakz 0:b599e748252c 27 including but not limited to software source code, documentation
hudakz 0:b599e748252c 28 source, and configuration files.
hudakz 0:b599e748252c 29
hudakz 0:b599e748252c 30 "Object" form shall mean any form resulting from mechanical
hudakz 0:b599e748252c 31 transformation or translation of a Source form, including but
hudakz 0:b599e748252c 32 not limited to compiled object code, generated documentation,
hudakz 0:b599e748252c 33 and conversions to other media types.
hudakz 0:b599e748252c 34
hudakz 0:b599e748252c 35 "Work" shall mean the work of authorship, whether in Source or
hudakz 0:b599e748252c 36 Object form, made available under the License, as indicated by a
hudakz 0:b599e748252c 37 copyright notice that is included in or attached to the work
hudakz 0:b599e748252c 38 (an example is provided in the Appendix below).
hudakz 0:b599e748252c 39
hudakz 0:b599e748252c 40 "Derivative Works" shall mean any work, whether in Source or Object
hudakz 0:b599e748252c 41 form, that is based on (or derived from) the Work and for which the
hudakz 0:b599e748252c 42 editorial revisions, annotations, elaborations, or other modifications
hudakz 0:b599e748252c 43 represent, as a whole, an original work of authorship. For the purposes
hudakz 0:b599e748252c 44 of this License, Derivative Works shall not include works that remain
hudakz 0:b599e748252c 45 separable from, or merely link (or bind by name) to the interfaces of,
hudakz 0:b599e748252c 46 the Work and Derivative Works thereof.
hudakz 0:b599e748252c 47
hudakz 0:b599e748252c 48 "Contribution" shall mean any work of authorship, including
hudakz 0:b599e748252c 49 the original version of the Work and any modifications or additions
hudakz 0:b599e748252c 50 to that Work or Derivative Works thereof, that is intentionally
hudakz 0:b599e748252c 51 submitted to Licensor for inclusion in the Work by the copyright owner
hudakz 0:b599e748252c 52 or by an individual or Legal Entity authorized to submit on behalf of
hudakz 0:b599e748252c 53 the copyright owner. For the purposes of this definition, "submitted"
hudakz 0:b599e748252c 54 means any form of electronic, verbal, or written communication sent
hudakz 0:b599e748252c 55 to the Licensor or its representatives, including but not limited to
hudakz 0:b599e748252c 56 communication on electronic mailing lists, source code control systems,
hudakz 0:b599e748252c 57 and issue tracking systems that are managed by, or on behalf of, the
hudakz 0:b599e748252c 58 Licensor for the purpose of discussing and improving the Work, but
hudakz 0:b599e748252c 59 excluding communication that is conspicuously marked or otherwise
hudakz 0:b599e748252c 60 designated in writing by the copyright owner as "Not a Contribution."
hudakz 0:b599e748252c 61
hudakz 0:b599e748252c 62 "Contributor" shall mean Licensor and any individual or Legal Entity
hudakz 0:b599e748252c 63 on behalf of whom a Contribution has been received by Licensor and
hudakz 0:b599e748252c 64 subsequently incorporated within the Work.
hudakz 0:b599e748252c 65
hudakz 0:b599e748252c 66 2. Grant of Copyright License. Subject to the terms and conditions of
hudakz 0:b599e748252c 67 this License, each Contributor hereby grants to You a perpetual,
hudakz 0:b599e748252c 68 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
hudakz 0:b599e748252c 69 copyright license to reproduce, prepare Derivative Works of,
hudakz 0:b599e748252c 70 publicly display, publicly perform, sublicense, and distribute the
hudakz 0:b599e748252c 71 Work and such Derivative Works in Source or Object form.
hudakz 0:b599e748252c 72
hudakz 0:b599e748252c 73 3. Grant of Patent License. Subject to the terms and conditions of
hudakz 0:b599e748252c 74 this License, each Contributor hereby grants to You a perpetual,
hudakz 0:b599e748252c 75 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
hudakz 0:b599e748252c 76 (except as stated in this section) patent license to make, have made,
hudakz 0:b599e748252c 77 use, offer to sell, sell, import, and otherwise transfer the Work,
hudakz 0:b599e748252c 78 where such license applies only to those patent claims licensable
hudakz 0:b599e748252c 79 by such Contributor that are necessarily infringed by their
hudakz 0:b599e748252c 80 Contribution(s) alone or by combination of their Contribution(s)
hudakz 0:b599e748252c 81 with the Work to which such Contribution(s) was submitted. If You
hudakz 0:b599e748252c 82 institute patent litigation against any entity (including a
hudakz 0:b599e748252c 83 cross-claim or counterclaim in a lawsuit) alleging that the Work
hudakz 0:b599e748252c 84 or a Contribution incorporated within the Work constitutes direct
hudakz 0:b599e748252c 85 or contributory patent infringement, then any patent licenses
hudakz 0:b599e748252c 86 granted to You under this License for that Work shall terminate
hudakz 0:b599e748252c 87 as of the date such litigation is filed.
hudakz 0:b599e748252c 88
hudakz 0:b599e748252c 89 4. Redistribution. You may reproduce and distribute copies of the
hudakz 0:b599e748252c 90 Work or Derivative Works thereof in any medium, with or without
hudakz 0:b599e748252c 91 modifications, and in Source or Object form, provided that You
hudakz 0:b599e748252c 92 meet the following conditions:
hudakz 0:b599e748252c 93
hudakz 0:b599e748252c 94 (a) You must give any other recipients of the Work or
hudakz 0:b599e748252c 95 Derivative Works a copy of this License; and
hudakz 0:b599e748252c 96
hudakz 0:b599e748252c 97 (b) You must cause any modified files to carry prominent notices
hudakz 0:b599e748252c 98 stating that You changed the files; and
hudakz 0:b599e748252c 99
hudakz 0:b599e748252c 100 (c) You must retain, in the Source form of any Derivative Works
hudakz 0:b599e748252c 101 that You distribute, all copyright, patent, trademark, and
hudakz 0:b599e748252c 102 attribution notices from the Source form of the Work,
hudakz 0:b599e748252c 103 excluding those notices that do not pertain to any part of
hudakz 0:b599e748252c 104 the Derivative Works; and
hudakz 0:b599e748252c 105
hudakz 0:b599e748252c 106 (d) If the Work includes a "NOTICE" text file as part of its
hudakz 0:b599e748252c 107 distribution, then any Derivative Works that You distribute must
hudakz 0:b599e748252c 108 include a readable copy of the attribution notices contained
hudakz 0:b599e748252c 109 within such NOTICE file, excluding those notices that do not
hudakz 0:b599e748252c 110 pertain to any part of the Derivative Works, in at least one
hudakz 0:b599e748252c 111 of the following places: within a NOTICE text file distributed
hudakz 0:b599e748252c 112 as part of the Derivative Works; within the Source form or
hudakz 0:b599e748252c 113 documentation, if provided along with the Derivative Works; or,
hudakz 0:b599e748252c 114 within a display generated by the Derivative Works, if and
hudakz 0:b599e748252c 115 wherever such third-party notices normally appear. The contents
hudakz 0:b599e748252c 116 of the NOTICE file are for informational purposes only and
hudakz 0:b599e748252c 117 do not modify the License. You may add Your own attribution
hudakz 0:b599e748252c 118 notices within Derivative Works that You distribute, alongside
hudakz 0:b599e748252c 119 or as an addendum to the NOTICE text from the Work, provided
hudakz 0:b599e748252c 120 that such additional attribution notices cannot be construed
hudakz 0:b599e748252c 121 as modifying the License.
hudakz 0:b599e748252c 122
hudakz 0:b599e748252c 123 You may add Your own copyright statement to Your modifications and
hudakz 0:b599e748252c 124 may provide additional or different license terms and conditions
hudakz 0:b599e748252c 125 for use, reproduction, or distribution of Your modifications, or
hudakz 0:b599e748252c 126 for any such Derivative Works as a whole, provided Your use,
hudakz 0:b599e748252c 127 reproduction, and distribution of the Work otherwise complies with
hudakz 0:b599e748252c 128 the conditions stated in this License.
hudakz 0:b599e748252c 129
hudakz 0:b599e748252c 130 5. Submission of Contributions. Unless You explicitly state otherwise,
hudakz 0:b599e748252c 131 any Contribution intentionally submitted for inclusion in the Work
hudakz 0:b599e748252c 132 by You to the Licensor shall be under the terms and conditions of
hudakz 0:b599e748252c 133 this License, without any additional terms or conditions.
hudakz 0:b599e748252c 134 Notwithstanding the above, nothing herein shall supersede or modify
hudakz 0:b599e748252c 135 the terms of any separate license agreement you may have executed
hudakz 0:b599e748252c 136 with Licensor regarding such Contributions.
hudakz 0:b599e748252c 137
hudakz 0:b599e748252c 138 6. Trademarks. This License does not grant permission to use the trade
hudakz 0:b599e748252c 139 names, trademarks, service marks, or product names of the Licensor,
hudakz 0:b599e748252c 140 except as required for reasonable and customary use in describing the
hudakz 0:b599e748252c 141 origin of the Work and reproducing the content of the NOTICE file.
hudakz 0:b599e748252c 142
hudakz 0:b599e748252c 143 7. Disclaimer of Warranty. Unless required by applicable law or
hudakz 0:b599e748252c 144 agreed to in writing, Licensor provides the Work (and each
hudakz 0:b599e748252c 145 Contributor provides its Contributions) on an "AS IS" BASIS,
hudakz 0:b599e748252c 146 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
hudakz 0:b599e748252c 147 implied, including, without limitation, any warranties or conditions
hudakz 0:b599e748252c 148 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
hudakz 0:b599e748252c 149 PARTICULAR PURPOSE. You are solely responsible for determining the
hudakz 0:b599e748252c 150 appropriateness of using or redistributing the Work and assume any
hudakz 0:b599e748252c 151 risks associated with Your exercise of permissions under this License.
hudakz 0:b599e748252c 152
hudakz 0:b599e748252c 153 8. Limitation of Liability. In no event and under no legal theory,
hudakz 0:b599e748252c 154 whether in tort (including negligence), contract, or otherwise,
hudakz 0:b599e748252c 155 unless required by applicable law (such as deliberate and grossly
hudakz 0:b599e748252c 156 negligent acts) or agreed to in writing, shall any Contributor be
hudakz 0:b599e748252c 157 liable to You for damages, including any direct, indirect, special,
hudakz 0:b599e748252c 158 incidental, or consequential damages of any character arising as a
hudakz 0:b599e748252c 159 result of this License or out of the use or inability to use the
hudakz 0:b599e748252c 160 Work (including but not limited to damages for loss of goodwill,
hudakz 0:b599e748252c 161 work stoppage, computer failure or malfunction, or any and all
hudakz 0:b599e748252c 162 other commercial damages or losses), even if such Contributor
hudakz 0:b599e748252c 163 has been advised of the possibility of such damages.
hudakz 0:b599e748252c 164
hudakz 0:b599e748252c 165 9. Accepting Warranty or Additional Liability. While redistributing
hudakz 0:b599e748252c 166 the Work or Derivative Works thereof, You may choose to offer,
hudakz 0:b599e748252c 167 and charge a fee for, acceptance of support, warranty, indemnity,
hudakz 0:b599e748252c 168 or other liability obligations and/or rights consistent with this
hudakz 0:b599e748252c 169 License. However, in accepting such obligations, You may act only
hudakz 0:b599e748252c 170 on Your own behalf and on Your sole responsibility, not on behalf
hudakz 0:b599e748252c 171 of any other Contributor, and only if You agree to indemnify,
hudakz 0:b599e748252c 172 defend, and hold each Contributor harmless for any liability
hudakz 0:b599e748252c 173 incurred by, or claims asserted against, such Contributor by reason
hudakz 0:b599e748252c 174 of your accepting any such warranty or additional liability.
hudakz 0:b599e748252c 175
hudakz 0:b599e748252c 176 END OF TERMS AND CONDITIONS
hudakz 0:b599e748252c 177
hudakz 0:b599e748252c 178 APPENDIX: How to apply the Apache License to your work.
hudakz 0:b599e748252c 179
hudakz 0:b599e748252c 180 To apply the Apache License to your work, attach the following
hudakz 0:b599e748252c 181 boilerplate notice, with the fields enclosed by brackets "[]"
hudakz 0:b599e748252c 182 replaced with your own identifying information. (Don't include
hudakz 0:b599e748252c 183 the brackets!) The text should be enclosed in the appropriate
hudakz 0:b599e748252c 184 comment syntax for the file format. We also recommend that a
hudakz 0:b599e748252c 185 file or class name and description of purpose be included on the
hudakz 0:b599e748252c 186 same "printed page" as the copyright notice for easier
hudakz 0:b599e748252c 187 identification within third-party archives.
hudakz 0:b599e748252c 188
hudakz 0:b599e748252c 189 Copyright [yyyy] [name of copyright owner]
hudakz 0:b599e748252c 190
hudakz 0:b599e748252c 191 Licensed under the Apache License, Version 2.0 (the "License");
hudakz 0:b599e748252c 192 you may not use this file except in compliance with the License.
hudakz 0:b599e748252c 193 You may obtain a copy of the License at
hudakz 0:b599e748252c 194
hudakz 0:b599e748252c 195 http://www.apache.org/licenses/LICENSE-2.0
hudakz 0:b599e748252c 196
hudakz 0:b599e748252c 197 Unless required by applicable law or agreed to in writing, software
hudakz 0:b599e748252c 198 distributed under the License is distributed on an "AS IS" BASIS,
hudakz 0:b599e748252c 199 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
hudakz 0:b599e748252c 200 See the License for the specific language governing permissions and
hudakz 0:b599e748252c 201 limitations under the License.