Benoît Thébaudeau
6b76ead49c
enc28j60: Prevent enc28j60_read() from running before init
...
This is a precaution in case enc28j60-ip64-driver.c is skipped.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:16 +02:00
Benoît Thébaudeau
b4c32954a6
enc28j60: Fix workaround for erratum #14
...
Only odd addresses may be programmed to the ERXRDPT registers, so
initialize them to RX_BUF_END instead of RX_BUF_START.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:15 +02:00
Benoît Thébaudeau
8615b77da0
enc28j60: Print the status vector in case of transmit error
...
This makes debugging easier.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:15 +02:00
Benoît Thébaudeau
8c6e3e348a
enc28j60: Program ETXND after the data packet
...
Just follow the steps from the data sheet to transmit a packet.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:15 +02:00
Benoît Thébaudeau
15d1b177d6
enc28j60: Use hardware padding for transmissions
...
There is no reason to use software when a feature is available in
hardware.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:15 +02:00
Benoît Thébaudeau
2cd3eaf310
enc28j60: Implement and use the BFS and BFC commands
...
The Bit Field Set and Bit Field Clear commands are more efficient than
the Read Control Register + Write Control Register combination, so use
them whenever possible, i.e. for the ETH registers.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:15 +02:00
Benoît Thébaudeau
356d17737c
enc28j60: ERXFCON needs to be set only once
...
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
8a20e7c05c
enc28j60: Fix the MAC address configuration comment
...
The MAADRx register numbering was wrong.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
31e0c87a6f
enc28j60: Do not initialize MAIPGH for full duplex
...
MAIPGH should be programmed only if half duplex is used.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
121b066f04
enc28j60: Update the MACON4 configuration comment
...
This only applies to half duplex, so the actual configuration of MACON4
does not need to be changed.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
2b08c32528
enc28j60: The MACON2 register is reserved
...
The register 0x01 in bank 2, named MACON2 in the code, is actually
reserved, so its contents must not be changed.
This register has been marked as reserved from the revision B of the
data sheet in July 2006. The current revision of the data sheet is E,
and it is quite clear about this register.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
b21da96e67
enc28j60: Print revision during initialization
...
This is useful as debug information since the revisions of this device
have notable differences.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:14 +02:00
Benoît Thébaudeau
ba6a0bc381
enc28j60: Add workaround for erratum #2 "CLKRDY set early"
...
A delay of 1 ms must be added after the System Reset Command. Still wait
for ESTAT.CLKRDY afterwards as a precaution.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:13 +02:00
Benoît Thébaudeau
48f269e4f5
enc28j60: Fix RCR command for MAC and MII registers
...
The Read Control Register command requires that a dummy byte be read
before the register value for the MAC and MII registers.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:13 +02:00
Benoît Thébaudeau
35544e81ee
enc28j60: Reuse read/writedata() for read/writedatabyte()
...
The read/writedatabyte() functions are just a special case of
read/writedata() with a simpler API, so reuse these instead of
duplicating code.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-07-16 21:14:13 +02:00
Simon Duquennoy
333e076b24
Disable PACKETBUF_ATTR_PACKET_TYPE in the non-Rime case by default
2015-05-06 16:36:15 +02:00
Adam Dunkels
12beebeec0
IP64 bindings for the ENC28j60 Ethernet driver
2015-04-15 08:30:26 +02:00
Nicolas Tsiftes
132b31d6de
Merge pull request #715 from adamdunkels/pr/enc28j60
...
ENC28j60 Ethernet driver code
2015-03-30 13:45:12 +02:00
Nicolas Tsiftes
a785405b36
Make it possible to set and get the CC2420's CCA threshold through the extended radio API.
2015-02-19 11:26:43 +01:00
kkrentz
f513ef9ef0
CC2420: Added RSSI_OFFSET as described in the manual
2014-08-05 05:07:06 -07:00
kkrentz
75d2914aaf
CC2420: Added GET_LOCK/RELEASE_LOCK to set_key & encrypt
2014-08-05 05:07:06 -07:00
kkrentz
c6a98f2968
CC2420: Turned SPI macros to functions and removed redundant AES API
2014-08-05 05:07:06 -07:00
kkrentz
6486c51692
CC2420: Hardware-accelerated aes_128_driver
2014-08-05 05:07:06 -07:00
kkrentz
2bac58f7b6
CC2420: Reusing getrxdata instead of getrxbyte.
2014-08-05 05:07:06 -07:00
kkrentz
e977da8fe2
CC2420: Eliminated duplicated code in cc2420_read
2014-08-05 05:07:05 -07:00
kkrentz
e3eb924f13
CC2420: Removed unused variables
2014-08-05 05:07:05 -07:00
kkrentz
1cb60b27de
CC2420: Removed commented code
2014-08-05 05:07:05 -07:00
kkrentz
b53e35b2a0
CC2420: The crystal oscillator only needs to stabilize at startup
2014-08-05 05:07:05 -07:00
kkrentz
06d3225aa7
CC2420: CC2420_WRITE_RAM with parameterizable ordering + resulting
...
simplifications
2014-08-05 05:07:05 -07:00
kkrentz
b89d37d301
CC2420: Macros as functions for saving program memory
2014-08-05 05:07:05 -07:00
kkrentz
9e266acd9c
CC2420: Doing CRC in hardware all the time
2014-08-05 05:07:05 -07:00
Adam Dunkels
bf7e191ef3
ENC28j60 Ethernet driver code
2014-06-12 00:03:44 +02:00
Niclas Finne
132b8dde3b
Fixed CC2420 to return RADIO_RESULT_INVALID_VALUE if trying to set a
...
transmission power outside the valid range instead of using closest
valid value.
2014-04-13 21:43:37 +02:00
Niclas Finne
271ac4413f
Removed the unused function cc2420_cca_valid and replaced some macros
...
with functions in CC2420. This reduces the code size with over 400 bytes.
2014-04-11 14:46:49 +02:00
Niclas Finne
8c0cdcfaec
Added radio parameters RADIO_PARAM_RSSI and RADIO_PARAM_TXPOWER for cc2420
2014-04-09 21:25:38 +02:00
Niclas Finne
9d01fbf735
Added stub for extended radio API for CC2520
2014-04-03 13:38:17 +02:00
Niclas Finne
0874165722
Added stub for extended radio API for CC2420
2014-04-03 13:38:13 +02:00
Adam Dunkels
bddd96d5c8
Removed all module makefiles. Instead, all .c files in a module directory are compiled.
2014-01-26 23:20:46 +01:00
Adam Dunkels
25367fb08c
Moved the ds2411 driver into a dev/ds2411 module
2014-01-26 23:20:31 +01:00
Adam Dunkels
c9efe3c3c4
Moved the cc2520 driver into its own dev/cc2520 module
2014-01-26 23:20:31 +01:00
Adam Dunkels
4cfe6c4a5e
Moved the sht11 driver to its own module
2014-01-26 23:20:30 +01:00
Adam Dunkels
0b805e4763
Moved the cc2420 driver into a separate dev/cc2420 module
2014-01-26 23:20:27 +01:00