Пример #1
0
 def write_reg_raw(self, addr, enc_val, do_log=True):
     addr = regmap.get_reg_addr(addr)
     b = bytearray([protocol.REG_WRITE_REQUEST, addr, 0, 0])
     self.dev.spi_master_single_write(b)
     if do_log:
         log.debug("reg w req: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val)))
     self.dev.spi_master_single_write(enc_val)
Пример #2
0
 def read_reg_raw(self, addr, do_log=True):
     addr = regmap.get_reg_addr(addr)
     b = bytearray([protocol.REG_READ_REQUEST, addr, 0, 0])
     self.dev.spi_master_single_write(b)
     enc_val = self.dev.spi_master_single_read(4)
     if do_log:
         log.debug("reg r res: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val)))
     return enc_val
Пример #3
0
    def _handshake(self):
        self._write_reg("main_control", "stop", expect_response=False)

        exp_addr = regmap.get_reg_addr("main_control")
        exp_enc_val = regmap.get_reg("main_control").encode("stop")
        exp_reg_val = protocol.RegVal(exp_addr, exp_enc_val)
        exp_packet = protocol.RegWriteResponse(exp_reg_val)
        exp_frame = protocol.insert_packet_into_frame(exp_packet)
        self._link.recv_until(exp_frame)
Пример #4
0
    def _write_reg_raw(self, addr, enc_val, expect_response=True):
        addr = regmap.get_reg_addr(addr)
        rrv = protocol.RegVal(addr, enc_val)
        req = protocol.RegWriteRequest(rrv)
        self._send_packet(req)

        log.debug("sent reg w req: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val)))

        if expect_response:
            res = self._recv_packet()
            if not isinstance(res, protocol.RegWriteResponse):
                raise ClientError("got unexpected packet (expected reg write response)")
            if res.reg_val != rrv:
                raise ClientError("reg write failed")

            log.debug("recv reg w res: ok")
Пример #5
0
    def _read_reg_raw(self, addr):
        addr = regmap.get_reg_addr(addr)
        req = protocol.RegReadRequest(addr)
        self._send_packet(req)

        log.debug("sent reg r req: addr: 0x{:02x}".format(addr))

        res = self._recv_packet()
        if not isinstance(res, protocol.RegReadResponse):
            raise ClientError("got unexpected type of frame")

        enc_val = res.reg_val.val

        log.debug("recv reg r res: addr: 0x{:02x} val: {}".format(addr, fmt_enc_val(enc_val)))

        return enc_val
Пример #6
0
 def read_buf_raw(self, addr, size):
     addr = regmap.get_reg_addr(addr)
     buffer = self.__cmd_proc("read_buf_raw", addr, size)
     return buffer
Пример #7
0
 def _write_reg_raw(self, addr, enc_val):
     addr = regmap.get_reg_addr(addr)
     self.__cmd_proc("write_reg_raw", addr, enc_val)
Пример #8
0
 def _read_reg_raw(self, addr):
     addr = regmap.get_reg_addr(addr)
     enc_val = self.__cmd_proc("read_reg_raw", addr)
     return enc_val