FASTUSBasp

所属分类:单片机开发
开发工具:C++
文件大小:0KB
下载次数:0
上传日期:2022-02-11 08:53:17
上 传 者sh-1993
说明:  这是基于廉价stm32f103c8t6板的avr MCU的快速avr编程器,具有usb-to串行支持。,
(This is the fast avr programmer for AVR MCUs based on cheap stm32f103c8t6 board with usb-to-serial support.,)

文件列表:
.vscode/ (0, 2023-12-21)
.vscode/c_cpp_properties.json (2034, 2023-12-21)
CMakeLists.txt (190, 2023-12-21)
LICENSE (775, 2023-12-21)
TODOs.md (264, 2023-12-21)
_config.yml (29, 2023-12-21)
build.sh (66, 2023-12-21)
cmake/ (0, 2023-12-21)
cmake/stm32-toolchain.cmake (4421, 2023-12-21)
config.cmake (137, 2023-12-21)
cross-file.txt (355, 2023-12-21)
firmware/ (0, 2023-12-21)
firmware/fastusbasp-wrongpullup.bin (11324, 2023-12-21)
firmware/fastusbasp.bin (11272, 2023-12-21)
lib/ (0, 2023-12-21)
lib/CMakeLists.txt (253, 2023-12-21)
lib/delay.cpp (2876, 2023-12-21)
lib/delay.h (1224, 2023-12-21)
lib/dma/ (0, 2023-12-21)
lib/dma/dmabuffer.h (3399, 2023-12-21)
lib/dma/dmabuffer1.h (1478, 2023-12-21)
lib/fastserial.h (5024, 2023-12-21)
lib/meson.build (624, 2023-12-21)
lib/pin.cpp (2380, 2023-12-21)
lib/pin.h (1495, 2023-12-21)
lib/queue.h (2543, 2023-12-21)
lib/rcc.cpp (3043, 2023-12-21)
lib/rcc.h (1463, 2023-12-21)
lib/serial.cpp (4114, 2023-12-21)
lib/serial.h (2387, 2023-12-21)
lib/serialcommon.h (931, 2023-12-21)
lib/usb/ (0, 2023-12-21)
lib/usb/descriptor.h (13293, 2023-12-21)
... ...

[!["Buy Me A Coffee"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/singhamiteK) ### FASTUSBasp programmer for AVR Microcontrollers [![Join the chat at https://gitter.im/FASTUSBasp/Lobby](https://badges.gitter.im/FASTUSBasp/Lobby.svg)](https://gitter.im/FASTUSBasp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) This is the fast ISP programmer for AVR MCUs based on cheap stm32f103c8t6 aka `blue-pill` board with usb-to-serial support. ### Release - v1.0.0: https://github.com/amitesh-singh/FASTUSBasp/releases/tag/v1.0.0 #### FastUSBASPv2 board ![FastUSBASPv2 board](render.png) #### Perf board ![perfboard](https://pbs.twimg.com/media/DHQejIxVoAAy5xX.jpg) ### Correcting wrong pullup at USB D+ This blue pill board has wrong pullup resistor at usb D+ line. You might need to fix it before using blue pill as an AVR programmer. Refer to this guide: [http://amitesh-singh.github.io/stm32/2017/10/09/correcting-usbpullup-resistor.html][fixpullup-link] ### how to upload firmware #### blue pill board with correct pullup at USB D+ line Download the binaries from https://github.com/amitesh-singh/FASTUSBasp/releases/tag/v1.0.0 If you have fixed the pullup at D+ line, use `fastusbasp.bin` The pre-compiled binary is at `fastusbasp.bin`. ```shell $ st-flash write fastusbasp.bin 0x08000000 ``` #### blue pill board with wrong pullup at USB D+ line In case, you did not fix the wrong pullup at D+ line, use `fastusbasp-wrongpullup.bin` binary instead ```shell $ st-flash write fastusbasp-wrongpullup.bin 0x08000000 ``` ### How to use #### ISP connections It uses SPI2 to communicate to AVR. Blue pill | AVR --------- | ------- PB15 | MOSI PB14 | MISO PB13 | SCK PA8 | RST 5v or 3.3v | 5v GND | GND #### Serial connections Serial ports are `PA10`(RX) and `PA9` (TX). This can be used to debug AVR Microcontrollers. Blue pill | AVR --------- | ------- PA10 | TX PA9 | RX All pins SPI2(PB15, PB14, PB13), Serial(PA10, PA9) and RST(PA8) used are 5V tolerant. #### udev rule Refer to [udev/README.md](udev/README.md) ### On plugging to PC #### Linux When you plug this device to PC, you should get following message on`dmesg -wH` ```shell [Jan20 13:31] usb 3-1.1: new full-speed USB device number 5 using xhci_hcd [ +0.107774] usb 3-1.1: New USB device found, idVendor=16c0, idProduct=05dc [ +0.000004] usb 3-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000002] usb 3-1.1: Product: fastusbasp [ +0.000002] usb 3-1.1: Manufacturer: http://amitesh-singh.github.io [ +0.000001] usb 3-1.1: SerialNumber: AARAV [ +0.040797] cdc_acm 3-1.1:1.0: ttyACM0: USB ACM device [ +0.000804] usbcore: registered new interface driver cdc_acm [ +0.000000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters ``` `/dev/ttyACM0` is the serial port. #### Windows - Download Zadig (https://zadig.akeo.ie/) - Insert device to USB. Wait until windows can't install it. - Launch Zadig - Select in Zadig our device from ComboBox - Select driver Type libusbK - Press Install Driver - Wait until Zadig is done with installing driver and that results into Windows to detect the device. ### Probe AVR ```shell $ avrdude -c usbasp-clone -p m16 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9403 (probably m16) avrdude: safemode: Fuses OK (E:FF, H:D8, L:CF) avrdude done. Thank you. ``` ### Upload program to AVR ```shell $ avrdude -c usbasp-clone -p m16 -U flash:w:blink.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9403 (probably m16) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "blink.hex" avrdude: input file blink.hex auto detected as Intel Hex avrdude: writing flash (150 bytes): Writing | ################################################## | 100% 0.02s avrdude: 150 bytes of flash written avrdude: verifying flash memory against blink.hex: avrdude: load data flash data from input file blink.hex: avrdude: input file blink.hex auto detected as Intel Hex avrdude: input file blink.hex contains 150 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 150 bytes of flash verified avrdude: safemode: Fuses OK (E:FF, H:D8, L:CF) avrdude done. Thank you. ``` ### Read flash ```shell $ avrdude -c usbasp-clone -p m16 -U flash:r:flash.bin:r avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9403 (probably m16) avrdude: reading flash memory: Reading | ################################################## | 100% 0.33s avrdude: writing output file "flash.bin" avrdude: safemode: Fuses OK (E:FF, H:D8, L:CF) avrdude done. Thank you. $ hexdump flash.bin 0000000 c029 0000 c02f 0000 c02d 0000 c02b 0000 0000010 c029 0000 c027 0000 c025 0000 c023 0000 0000020 c021 0000 c01f 0000 c01d 0000 c01b 0000 0000030 c019 0000 c017 0000 c015 0000 c013 0000 0000040 c011 0000 c00f 0000 c00d 0000 c00b 0000 0000050 c009 0000 2411 be1f e5cf e0d4 bfde bfcd 0000060 d002 c017 cfcd 9ab8 9ac0 ef2f ed83 e390 0000070 5021 4080 4090 f7e1 c000 0000 98c0 ef2f 0000080 ed83 e390 5021 4080 4090 f7e1 c000 0000 0000090 cfeb 94f8 cfff ``` ### Flash Read/Write speed Flash Write speed: 15 KBps Flash Read Speed: 52.5 KBps ### Bit clock speed `FASTUSBasp` starts out with a fast ISP clock frequency (default: 3 MHz), so the `-B bitclock` option might be required to achieve stable communication in case target MCU `F_CPU` is bit low < 12MHz #### Supported bitclock speed - default (without -B): 3 MHz - 1.5 MHz - 750 KHz - 375 KHz - 187.5 KHz ### how to compile from source and upload the firmware To build fastusbasp firmware from source code, follow below guidelines. #### compile Refer my post on how to setup stm32 devlopment environment on Arch linux. http://amitesh-singh.github.io/stm32/2017/04/09/setting-stm32-dev-environment-arch-linux.html Make sure you have compiled `libopencm3` library. ```shell $ git clone https://github.com/amitesh-singh/FASTUSBasp $ vi config.cmake # set the libopencm3 path here $ cmake . $ make ``` #### Upload the firmware ##### using STLINK connect `st-link` programmer to `blue-pill` and upload the firmware ```shell $ make fastusbasp-upload ``` ##### using serial port Install `stm32flash` utility on linux. To program `stm32f103` via USART, you need to set `BOOT0` as `1` and leave `BOOT1` as `0`. Connect any usb to uart converter device and connect PA9 to RXD and PA10 to TXD and connect GND. ```shell $ make fastusbasp-serialupload ``` ### Links - http://amitesh-singh.github.io/stm32/2017/05/21/FASTUSBasp-programmer-avr.html - https://hackaday.io/project/21189-fastusbasp-programmer-for-avr [fixpullup-link]: http://amitesh-singh.github.io/stm32/2017/10/09/correcting-usbpullup-resistor.html

近期下载者

相关文件


收藏者