{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import chipwhisperer as cw\n", "\n", "try:\n", " if not scope.connectStatus:\n", " scope.con()\n", "except NameError:\n", " scope = cw.scope()\n", "\n", "try:\n", " if SS_VER == \"SS_VER_2_1\":\n", " target_type = cw.targets.SimpleSerial2\n", " elif SS_VER == \"SS_VER_2_0\":\n", " raise OSError(\"SS_VER_2_0 is deprecated. Use SS_VER_2_1\")\n", " else:\n", " target_type = cw.targets.SimpleSerial\n", "except:\n", " SS_VER=\"SS_VER_1_1\"\n", " target_type = cw.targets.SimpleSerial\n", "\n", "try:\n", " target = cw.target(scope, target_type)\n", "except:\n", " print(\"INFO: Caught exception on reconnecting to target - attempting to reconnect to scope first.\")\n", " print(\"INFO: This is a work-around when USB has died without Python knowing. Ignore errors above this line.\")\n", " scope = cw.scope()\n", " target = cw.target(scope, target_type)\n", "\n", "\n", "print(\"INFO: Found ChipWhisperer😍\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "if \"STM\" in PLATFORM or PLATFORM == \"CWLITEARM\" or PLATFORM == \"CWNANO\":\n", " prog = cw.programmers.STM32FProgrammer\n", "elif PLATFORM == \"CW303\" or PLATFORM == \"CWLITEXMEGA\":\n", " prog = cw.programmers.XMEGAProgrammer\n", "elif \"neorv32\" in PLATFORM.lower():\n", " prog = cw.programmers.NEORV32Programmer\n", "elif PLATFORM == \"CW308_SAM4S\":\n", " prog = cw.programmers.SAM4SProgrammer\n", "else:\n", " prog = None" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import time\n", "time.sleep(0.05)\n", "scope.default_setup()\n", "def reset_target(scope):\n", " if PLATFORM == \"CW303\" or PLATFORM == \"CWLITEXMEGA\":\n", " scope.io.pdic = 'low'\n", " time.sleep(0.1)\n", " scope.io.pdic = 'high_z' #XMEGA doesn't like pdic driven high\n", " time.sleep(0.1) #xmega needs more startup time\n", " elif \"neorv32\" in PLATFORM.lower():\n", " raise IOError(\"Default iCE40 neorv32 build does not have external reset - reprogram device to reset\")\n", " else: \n", " scope.io.nrst = 'low'\n", " time.sleep(0.05)\n", " scope.io.nrst = 'high_z'\n", " time.sleep(0.05)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.5" } }, "nbformat": 4, "nbformat_minor": 4 }