======Projects====== 31 Aug 2019 : My first project is about <[[wp>ARM_architecture|ARM]], [[wp>ARM_Cortex-M|Cortex-M3]], [[wp>STM32|STM32]], [[https://arm-software.github.io/CMSIS_5/DAP/html/index.html|CMSIS-DAP]], [[wp>JTAG|JTAG]] probe, [[wp>GNU_Debugger|Debugger]], [[http://www.openocd.org|OpenOCD]]> * [[cmsis-dap|Implement CMSIS-DAP on STM32F103C8]] [[cmsis-dap|{{common:continue.ico?16x16}}]] If you want to develop some embedded software on the modern MCUs, you do need a JTAG probe to connect the chip and your debugger. For ARM mcu, [[https://www.segger.com/products/debug-probes/j-link/|J-Link]] is a wellknown device which can be connected to the USB port and provide JTAG protocol for you debugger. CMSIS-DAP is a similar device which is published by ARM campany. The diference between DAP and J-Link is that DAP is open source and J-Link is commercial product. [[cmsis-dap|[...read more]]] ---- 02 Oct 2019 : My second project is about <[[wp>ARM_architecture|ARM]], [[wp>ARM_Cortex-M|Cortex-M3]], [[wp>STM32|STM32]], [[wp>USB_mass_storage_device_class|USB mass storage device]], [[wp>CD-ROM|CD-ROM]], [[wp>ISO_9660|ISO9660]], [[https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi|SetupAPI]]> * [[usb-cdrom|USB CD-ROM Emulation on STM32F103C8]] [[usb-cdrom|{{common:continue.ico?16x16}}]] The source codes from [[https://www.st.com/content/st_com/en.html|STMicroelectronics]] for their popular STM32 consists of an USB mass storage device class. I did some improvement to the source and emulated a tiny USB CDROM. I just connected a 512KB spi flash chip as a DISC and burnt a small ISO9660 image file into it. That's why I called it "tiny". [[usb-cdrom|[...read more]]] ---- 10 Sep 2020 : My third project is about <[[wp>USB|USB]], [[wp>Human_interface_device|HID]], [[https://www.microchip.com/design-centers/16-bit|Microchip 16bit MCU & DSC]], [[https://www.obdev.at/products/vusb/index.html|V-USB]], [[https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi|SetupAPI]], C & Assembly language> * [[ya-vusb|Yet Another Firmware Based SOFT USB Device]] [[ya-vusb|{{common:continue.ico?16x16}}]] Can we implement an USB device on a simple MCU without any USB port? In this project I will give you a positive answer. In fact years ago there was a wondrous project which was called [[https://www.obdev.at/products/vusb/powerswitch.html|PowerSwitch]] published on the Internet. The author implemented a low speed USB device on an [[https://www.microchip.com/design-centers/8-bit/avr-mcus/device-selection|AVR]] microcontroller. Two GPIO pins were used to capture the signals of USB host then decoded them with firmware running inside the chip. These days I created a similar project to implement another SOFT USB device on another MCU. [[ya-vusb|[...read more]]]