diff --git a/drivers/ng_at86rf2xx/ng_at86rf2xx.c b/drivers/ng_at86rf2xx/ng_at86rf2xx.c index 4f6b4f1ef99952bd54c3f8de751b34ee374b5f9e..22ffe7d382ce4ee23c0fe3dcd3617d54f3ce09d1 100644 --- a/drivers/ng_at86rf2xx/ng_at86rf2xx.c +++ b/drivers/ng_at86rf2xx/ng_at86rf2xx.c @@ -215,8 +215,11 @@ void ng_at86rf2xx_tx_prepare(ng_at86rf2xx_t *dev) do { state = ng_at86rf2xx_get_status(dev); } - while (state == NG_AT86RF2XX_STATE_BUSY_RX_AACK); - dev->idle_state = state; + while (state == NG_AT86RF2XX_STATE_BUSY_RX_AACK || + state == NG_AT86RF2XX_STATE_BUSY_TX_ARET); + if (state != NG_AT86RF2XX_STATE_TX_ARET_ON) { + dev->idle_state = state; + } ng_at86rf2xx_set_state(dev, NG_AT86RF2XX_STATE_TX_ARET_ON); dev->frame_len = NG_IEEE802154_FCS_LEN; }