AVRISPmkII на STM32F4Discovery

Изучал USB-библиотеку на STM32F4 и как побочный результат этой деятельности получился клон AVR ISP mkII.
В архиве hex прошивки и исходник.

Распиновка ISP (AVR):
PD7 — RESET
PB3 — SCK
PB4 — MISO
PB5 — MOSI

Распиновка PDI (XMega):
PB13 — CLK
PB15 — DATA

PE5 — 4 МГц меандр на всякий случай

Красная лампочка просто моргает, зелёная — при активности.
stm32f4discovery as avrispmkII

Вдруг просто надо будет что-то авровское прошить, а под рукой программатора нет. А так можно быстро сколхозить из весьма распространённой отладки. Номер версии ПО: 0x18.

Комментарии (20)

RSS свернуть / развернуть
Прогрейдил, добавил поддержку XMega (PDI), вывод меандра на 4 МГц и исходник (Keil 5).
+2
Не скачиваются зипы.
0
Да, с сайтом проблемы какие-то у меня тоже давно, всегда php на memcache ругается или ещё на что.

yadi.sk/d/Ka3nANTZ3FmHJV — stm32f4_avrispmkII_source.zip
yadi.sk/d/4DJUdwc43FmHJo — stm32f4_avrispmkII.zip
0
Используются ли в коде особенности F4, которых нет на F3 (STM32VLDiscovery)?
0
STM32VLDiscovery — это F1. Там совсем другая USB-периферия, капитально. И другая библиотека. У F3, вроде бы, она же, как и у Lx.
Да и GPIO сильно отличается в F1. А вот код SPI я не исправлял, только ноги перекинул.
Я сегодня смог AVR-программирование запустить на stm32f103c8t6, xmega пока не проверял.

А F3 не знаю, пока с ними дел не имел… Может, завтра проверю на stm32f3discovery. Всё равно надо программатор будет для lattice делать на f3.
0
STM32F103C8T6, кварц 8 МГц, только AVR ISP:
PA5 — SCK
PA6 — MISO
PA7 — MOSI
PB0 — Reset

yadi.sk/d/YiWYtkcV3G4wxn — stm32f1avrispmkII_source.zip
yadi.sk/d/gAo6vLsK3G4xGh — stm32f1avrispmkII.zip
+1
STM32F3Discovery, только AVR ISP:
PB3 — SCK
PB4 — MISO
PB5 — MOSI
PD7 — Reset

PC6 — 4 MHz

yadi.sk/d/nudIVVap3G6Mih — stm32f3avrispmkII_source.zip
yadi.sk/d/tL5pGKzr3G6Mj2 — stm32f3avrispmkII.zip
0
Какие поддерживаются программы для прошивки?
0
Там рабочий код остался от луфовского проекта, по идее, всё должно поддерживаться, что и в обычном клоне.
0
Спасибо, буду пробовать avrdude и Atmel Studio
0
Я в Atmel Studio только пробовал, из самой студии и через atprogram.
0
Что-то студия программатор видит, а прошивать xmega не хочет.
AVRDUDE программатор видит при установке libusb и тоже не хочет прошивать xmega.
Буду пробовать прошивать обычную avr.
0
Что говорит?
0
Обычную AVR не пробовал, а XMEGA в упор не видит
avrdude говорит следующее:
Programmer Type: STK500V2
Description: Atmel AVR ISP mkII
Programmer Model: AVRISP mkII
avrdude.exe: Sent:. [03]. [90]
avrdude.exe: Recv:. [03]. [00]. [00]
avrdude.exe: Sent:. [03]. [91]
avrdude.exe: Recv:. [03]. [00]. [01]
avrdude.exe: Sent:. [03]. [92]
avrdude.exe: Recv:. [03]. [00]. [18]
Hardware Version: 0
Firmware Version Master: 1.24
avrdude.exe: Sent:. [03]. [94]
avrdude.exe: Recv:. [03]. [00]! [21]
Vtarget: 3.3 V
avrdude.exe: Sent:. [03]. [98]
avrdude.exe: Recv:. [03]. [00]. [06]
SCK period: 8.00 us

avrdude.exe: Sent: Q [51]. [00]
avrdude.exe: Recv: Q [51]. [00]
avrdude.exe: Sent: P [50]. [01]
avrdude.exe: Recv: P [50]. [01]. [00]
avrdude.exe: Sent: P [50]. [07]. [01]. [01]. [00]. [01]. [c0]
avrdude.exe: Recv: P [50]. [07]. [00]
avrdude.exe: Sent: P [50]. [07]. [02]. [00] [20]
avrdude.exe: Recv: P [50]. [07]. [00]
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | | 0% 0.00savrdude.exe: Sent: P [50]. [05]. [01]. [01]. [00]. [00]. [90]. [00]. [01]
avrdude.exe: Recv: P [50]. [05]. [03]
avrdude.exe: stk500v2_command(): error in CMD_XPROG: Timeout
avrdude.exe: stk600_xprog_read_byte(): XPRG_CMD_READ_MEM failed
avr_read(): error reading address 0x0000
read operation not supported for memory «signature»
avrdude.exe: error reading signature data for part «ATxmega64A3U», rc=-2
avrdude.exe: error reading signature data, rc=-1
avrdude.exe: Sent: P [50]. [02]
avrdude.exe: Recv: P [50]. [02]. [00]

avrdude.exe done. Thank you.
0
Хм, завтра попробую на atxmega16a подудеть.
0
Буду признателен, я так понял pdi поднят на i2s
0
Да, всё верно
0
Сегодня проверил с обычной AVR, все работает
0
Странно, да, у меня он теперь тоже не хочет активировать PDI, ответ контроллера оч странный — полтора такта в ноль вместо какого-то адекватного байта. Я такое встречал и поборол но уже не помню как… Ладно, посмотрю ещё, что ему не нравится.
0
Как-то любопытно ведет себя, держу щуп осциллографа на контакте данных, иногда определяется. Осцил DSO 138«игрушка», не видно что происходит на линии.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.