STM32 Bluepill kurulumu ve deneyler

sistem loglarda USB şöyle görünüyor şu anda:

Kod:
Nov 12 20:28:47 bonsai kernel: usb 1-2: USB disconnect, device number 35
Nov 12 20:28:50 bonsai kernel: usb 1-2: new full-speed USB device number 36 using xhci_hcd
Nov 12 20:28:50 bonsai kernel: usb 1-2: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
Nov 12 20:28:50 bonsai kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 12 20:28:50 bonsai kernel: usb 1-2: Product: BLUEPILL_F103C8 CDC in FS Mode
Nov 12 20:28:50 bonsai kernel: usb 1-2: Manufacturer: STMicroelectronics
Nov 12 20:28:50 bonsai kernel: usb 1-2: SerialNumber: 1A5EAE300000
Nov 12 20:28:50 bonsai kernel: cdc_acm 1-2:1.0: ttyACM1: USB ACM device
Nov 12 20:28:50 bonsai mtp-probe[1171884]: checking bus 1, device 36: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
Nov 12 20:28:50 bonsai mtp-probe[1171884]: bus: 1, device: 36 was not an MTP device
Nov 12 20:28:50 bonsai mtp-probe[1171891]: checking bus 1, device 36: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2"
Nov 12 20:28:50 bonsai mtp-probe[1171891]: bus: 1, device: 36 was not an MTP device
Nov 12 20:28:54 bonsai named[914]: network unreachable resolving '_.telemetry.mozilla.org/A/IN': 2600:1401:2::f0#53
Nov 12 20:29:04 bonsai kernel: usb 1-2: USB disconnect, device number 36
Nov 12 20:29:06 bonsai kernel: usb 1-2: new full-speed USB device number 37 using xhci_hcd
Nov 12 20:29:06 bonsai kernel: usb 1-2: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 2.00
Nov 12 20:29:06 bonsai kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 12 20:29:06 bonsai kernel: usb 1-2: Product: BLUEPILL_F103C8 CDC in FS Mode
Nov 12 20:29:06 bonsai kernel: usb 1-2: Manufacturer: STMicroelectronics
Nov 12 20:29:06 bonsai kernel: usb 1-2: SerialNumber: 1A5EAE300000
Nov 12 20:29:06 bonsai kernel: cdc_acm 1-2:1.0: ttyACM1: USB ACM device
 
Nedense iki kere enumerate ediyor. Arada kendine reset mi atıyor ne yapıyor bilmiyorum.
 
boot loader binary leri karşılaştırdım, tam olarak aynı. Yani senin konudakini programlamış oldum.
düşüneyim neden bunu yapar.

jumper konumları 0-0 olacak.
usb support kısmını CDC(generic Serial) olarak seçiyorduk diye hatırlıyorum.
 
düşüneyim neden bunu yapar.

jumper konumları 0-0 olacak.
usb support kısmını CDC(generic Serial) olarak seçiyorduk diye hatırlıyorum.

Onlar varsayılan zaten, değiştirmedim. Jumperların hepsi off.

Şimdi baktım da, STLinki ben takınca STM32CubeProgrammer(SWD) modune geçmiş, o yüzden yükleme başarılı olmuş. STLink takılı iken DFU seçersem yükleme aynı hata ile sonlanıyor.
 
1699810626567.png
 
Onlar varsayılan zaten, değiştirmedim. Jumperların hepsi off.

Şimdi baktım da, STLinki ben takınca STM32CubeProgrammer(SWD) modune geçmiş, o yüzden yükleme başarılı olmuş. STLink takılı iken DFU seçersem yükleme aynı hata ile sonlanıyor.
abi biz mikro usb'den takıp denemeliyiz dfu modunu.
st link takmayacağız
 
abi biz mikro usb'den takıp denemeliyiz dfu modunu.
st link takmayacağız

STLink takılı olmadığı durumda neredeyse bütün permütasyonları denedim. Programlamıyor. Belki de benim bluepill çakmanın da çakması. Seninkisinde belki orijinal ST işlemci vardı, bilemiyorum.
 
STLink takılı olmadığı durumda neredeyse bütün permütasyonları denedim. Programlamıyor. Belki de benim bluepill çakmanın da çakması. Seninkisinde belki orijinal ST işlemci vardı, bilemiyorum.
ben 20 liralık 103 ile de bu bootloaderi çalıştırmıştım usb'den.
unutmazssam yarın akşam tekrar denerim neler yaptığımı hatırlarım o zaman.

1 tane bluepill'im orjinal onun unique ID'sini bile okuyabiliyorum sahte olan 103'lerde FF dönüyor ıd okumaya çalışınca.
 
Şimdi openocd ye "işlemcinin çakma olmasına aldırma" komutu verdim. Bağlantı kuruldu.

Kod:
[ta@bonsai ~]$ openocd -f interface/stlink.cfg -c "transport select hla_swd" -c "set CPUTAPID 0x2ba01477" -f board/stm32f103c8_blue_pill.cfg
Open On-Chip Debugger 0.12.0+dev-00387-g9fcf33da8 (2023-11-12-18:31)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
hla_swd
0x2ba01477
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 1000 kHz
Info : STLINK V2J34S7 (API v2) VID:PID 0483:3748
Info : Target voltage: 3.270259
Info : [stm32f1x.cpu] Cortex-M3 r2p0 processor detected
Info : [stm32f1x.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for stm32f1x.cpu on 3333
Info : Listening on port 3333 for gdb connections
 
  • HID Bootloader buradan son versiyonu indiriyoruz.
  • Sıkıştırılmış dosyaları açıyoruz.
  • Linkteki kuralı oluşturuyoruz: https://github.com/Serasidis/STM32_HID_Bootloader#cli-folder
  • Hem ST-Link hem de USB-Mini takılı olacak.
  • Bir kere Arduino IDE ile basit bit kod yüklüyoruz. CDC serial açık olacak (Resim1)
  • Konsoldan alttaki kodlar ile ST-Link ile bootloaderi yüklüyoruz.
    Kod:
    st-flash erase
    st-flash write ~/STM32/HID_Bootloader/stm32_binaries/F103/low_and_medium_density/hid_generic_pc13.bin 0x8000000
  • USB-Mini kabloyu çıkarıp resetliyoruz ve USB-Mini kabloyu takıyoruz.
  • Eğer başarılı olduysak, lsusb çıktısında;
    Kod:
    1209:beba Generic serasidis.gr STM32 HID Bootloader
    göreceğiz.
  • Resim2 deki gibi "HID Bootloader" seçeneğini seçiyoruz ve yükleme işlemini yapıyoruz.
  • Artık sadece USB-Mini ile çalışan bir modülümüz oldu.
Not:
Başka şekilde kararlı olarak yükleyemedim. Daha kolay yolu varsa yazınız.


Resim1


Resim2


 
Son düzenleme:
Prosedürü denedim, malesef aynı hatayı alıyorum

1699976210893.png


Zaten daha önce de belirttiğim gibi, hangi boot loaderi yüklesem yükleyeyim, linux bunu bir USB aygıt olarak tanımıyor. Yani bir şekilde bu kartın USB arabirimi boot loaderlar ile uyumlu değil.
 
Bir de low density, high density olayı var. Benim bluepill deki işlemci high density, ben o yüzden onunla denedim. Ama low density ile de ne olur ne olmaz denedim, birşey farketmiyor.

Şimdi kaynak kodlarını indirdim ve derledim. 4 senedir bakımı yapılmadığı için biraz bit rot var. Mesela Makefile, üretilen ELF dosyayı, olmayan bir dizine kopyalamaya çalışıyor ve error oluşuyor. Build etmeden önce bootloader_only_binaries dizinini oluşturmak gerekiyor.

SWD kablosunu yapıp JLink/Ozone ile bakacağım.
 
Kabloyu yaptım. bootloader'i de debug info ile tekrar derledim. Ozone ile bağlanabiliyorum artık.

1699981023471.jpeg


1699981069078.png
 
Programın ana döngüsü şu. Aşağıda işaretlediğim yerde PB2 pinini kontrol ediyor ve ona göre boot loader moduna girip girmemeye karar veriyor. PCB üzerinde kontrol ettim, PB2, Boot 1 jumperine bağlı. Bu jumperin orta ucu da 100 kΩ luk bir direnç ile PB2 ye gidiyor. Acaba bu 100 kΩ fazla geliyor ve pini yeterince pull edemiyor olabilir mi? Onu bir kontrol edeceğim.

1699982348274.png
 
Programın ana döngüsü şu. Aşağıda işaretlediğim yerde PB2 pinini kontrol ediyor ve ona göre boot loader moduna girip girmemeye karar veriyor. PCB üzerinde kontrol ettim, PB2, Boot 1 jumperine bağlı. Bu jumperin orta ucu da 100 kΩ luk bir direnç ile PB2 ye gidiyor. Acaba bu 100 kΩ fazla geliyor ve pini yeterince pull edemiyor olabilir mi? Onu bir kontrol edeceğim.

26709 eklentisine bak
hocam onun 10 k olması gerekiyordu sanırım çinliler yanlış dizmiş gene
 
Daha önceki bir yazımda R10 'u 1,5K ile değiştirin
ya da üzerine 1,8K lehimleyin demiştim.

 
Daha önceki bir yazımda R10 'u 1,5K ile değiştirin
ya da üzerine 1,8K lehimleyin demiştim.

Hmm bunda referans R4. Piyasadaki şemaların da buna uyacağının bir garantisi yok bu durumda ...
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,951
Mesajlar
118,749
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top