Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : SPI communication
Page 2 of 2 | |||||
Author | Message | ||||
Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 5648 |
It looks to me as if this is only a small part of the code, lizby. I suspect there's a library or two loaded before we get anywhere near this bit. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
lew247 Guru Joined: 23/12/2015 Location: United KingdomPosts: 1676 |
It is I didnt want to put too much in the post other than the main bit, thats whay I left the link to where the code came from before the actual code I posted """ `adafruit_esp32spi` ================================================================================ CircuitPython driver library for using ESP32 as WiFi co-processor using SPI * Author(s): ladyada Implementation Notes -------------------- **Hardware:** **Software and Dependencies:** * Adafruit CircuitPython firmware for the supported boards: https://github.com/adafruit/circuitpython/releases * Adafruit's Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice """ import struct import time from micropython import const from digitalio import Direction from adafruit_bus_device.spi_device import SPIDevice __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI.git" _SET_NET_CMD = const(0x10) _SET_PASSPHRASE_CMD = const(0x11) _SET_AP_NET_CMD = const(0x18) _SET_AP_PASSPHRASE_CMD = const(0x19) _SET_DEBUG_CMD = const(0x1A) _GET_CONN_STATUS_CMD = const(0x20) _GET_IPADDR_CMD = const(0x21) _GET_MACADDR_CMD = const(0x22) _GET_CURR_SSID_CMD = const(0x23) _GET_CURR_BSSID_CMD = const(0x24) _GET_CURR_RSSI_CMD = const(0x25) _GET_CURR_ENCT_CMD = const(0x26) _SCAN_NETWORKS = const(0x27) _START_SERVER_TCP_CMD = const(0x28) _GET_SOCKET_CMD = const(0x3F) _GET_STATE_TCP_CMD = const(0x29) _DATA_SENT_TCP_CMD = const(0x2A) _AVAIL_DATA_TCP_CMD = const(0x2B) _GET_DATA_TCP_CMD = const(0x2C) _START_CLIENT_TCP_CMD = const(0x2D) _STOP_CLIENT_TCP_CMD = const(0x2E) _GET_CLIENT_STATE_TCP_CMD = const(0x2F) _DISCONNECT_CMD = const(0x30) _GET_IDX_RSSI_CMD = const(0x32) _GET_IDX_ENCT_CMD = const(0x33) _REQ_HOST_BY_NAME_CMD = const(0x34) _GET_HOST_BY_NAME_CMD = const(0x35) _START_SCAN_NETWORKS = const(0x36) _GET_FW_VERSION_CMD = const(0x37) _SEND_UDP_DATA_CMD = const(0x39) _GET_TIME = const(0x3B) _GET_IDX_BSSID_CMD = const(0x3C) _GET_IDX_CHAN_CMD = const(0x3D) _PING_CMD = const(0x3E) _SEND_DATA_TCP_CMD = const(0x44) _GET_DATABUF_TCP_CMD = const(0x45) _INSERT_DATABUF_TCP_CMD = const(0x46) _SET_ENT_IDENT_CMD = const(0x4A) _SET_ENT_UNAME_CMD = const(0x4B) _SET_ENT_PASSWD_CMD = const(0x4C) _SET_ENT_ENABLE_CMD = const(0x4F) _SET_CLI_CERT = const(0x40) _SET_PK = const(0x41) _SET_PIN_MODE_CMD = const(0x50) _SET_DIGITAL_WRITE_CMD = const(0x51) _SET_ANALOG_WRITE_CMD = const(0x52) _SET_DIGITAL_READ_CMD = const(0x53) _SET_ANALOG_READ_CMD = const(0x54) _START_CMD = const(0xE0) _END_CMD = const(0xEE) _ERR_CMD = const(0xEF) _REPLY_FLAG = const(1 << 7) _CMD_FLAG = const(0) SOCKET_CLOSED = const(0) SOCKET_LISTEN = const(1) SOCKET_SYN_SENT = const(2) SOCKET_SYN_RCVD = const(3) SOCKET_ESTABLISHED = const(4) SOCKET_FIN_WAIT_1 = const(5) SOCKET_FIN_WAIT_2 = const(6) SOCKET_CLOSE_WAIT = const(7) SOCKET_CLOSING = const(8) SOCKET_LAST_ACK = const(9) SOCKET_TIME_WAIT = const(10) WL_NO_SHIELD = const(0xFF) WL_NO_MODULE = const(0xFF) WL_IDLE_STATUS = const(0) WL_NO_SSID_AVAIL = const(1) WL_SCAN_COMPLETED = const(2) WL_CONNECTED = const(3) WL_CONNECT_FAILED = const(4) WL_CONNECTION_LOST = const(5) WL_DISCONNECTED = const(6) WL_AP_LISTENING = const(7) WL_AP_CONNECTED = const(8) WL_AP_FAILED = const(9) ADC_ATTEN_DB_0 = const(0) ADC_ATTEN_DB_2_5 = const(1) ADC_ATTEN_DB_6 = const(2) ADC_ATTEN_DB_11 = const(3) |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3641 |
Which states can change to which others I wonder. John |
||||
lizby Guru Joined: 17/05/2016 Location: United StatesPosts: 2989 |
So the fact that these constants are numbers (as I suspected) indicates that the firmware won't respond to "AT+GMR", but instead will interpret a number, 0x27, _SCAN_NETWORKS, as "Master wants a response the same as would come from a module with AT firmware responding to 'AT+GMR'". Whether this firmware also orders that information in some way or just sends exactly what you would get with an ESP-01 and "AT+GMR" is unclear. In any case, unless the device first tells the master how many bytes it will send (in response to a query from the master), it will be up to the SPI master to clock out NULLs until it figures out that the response is complete. It may be hundreds or thousands of bytes. ~ Edited 2022-01-25 23:54 by lizby PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
lew247 Guru Joined: 23/12/2015 Location: United KingdomPosts: 1676 |
I won't post on this subject again but this is the python code to connect to an access point and list what wifi devices it sees import usocket from machine import Pin, I2C, ADC, UART, SPI, PWM from time import sleep N1 = network.WLAN_SPI(network.STA_IF) N1.active(True) print("API list:") dir(N1) print("wifi list:") lis = N1.scan() for q in lis: print(q) N1.connect("access point","password") if N1.isconnected(): print(" ip gateway netmask MAC ssid") print(N1.ifconfig()) |
||||
Page 2 of 2 |
Print this page |