Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
07-15-2017, 08:06 PM
(This post was last modified: 07-15-2017, 08:08 PM by mikikg.)
Tako je, isto tako taj otpornik kod izlaza od MCU poboljsa signal na kraju voda, periferije isto tako (malo drugacije) vide signal kao sa predhodnih oscilograma.
Taj procesor ima veoma velik sleew-rate na svojim izlazima, neophodno zbog brzine, veci nego npr kod 8bit MCU i onda mora da se malo obrati paznja oko toga, za sve te novije kontrolere obavezno kada se napravi prototip valja da se provere signali na vodovima, i to sa onim "federima" za vrh sonde, bez "dugackih" GND zica sa stipaljkom.
Posts: 6.315
Threads: 56
Joined: Mar 2013
Reputation:
3.085
(07-15-2017, 07:25 PM)progster Wrote: Drastično poboljšanje sa običnim metal-film otpornikom od 100R.
Drugar,
Mislim da ti može jako biti korisna AN-47 od Jim Williams-a.
Bez obzira što se radio o analognim op-amps, radi se o takvima kojima su tranzijenti brži od 74HC serije, tj. u klasi tog stm na 72MHz.
Ima mnogo toga korisnog oko tehnika merenja skopom i oko sondi i njihove konekcije. Nećeš zažaliti konzumaciju te app. note.
Pozdrav
Posts: 1.108
Threads: 17
Joined: Jul 2015
Reputation:
550
@Macola
Hvala mnogo na preporuci, koliko sutra ću je proučiti.
Nov sam u ovome, u svetu mikrokontrolera, i u svetu ovako brzih signala, bilo analognih, bilo digitalnih, tako da mi je svaka pomoć dobrodošla.
Generalno, scope imam od skoro, tek par meseci, a obaveze na fakultetu su me pritisle pa sam tek sad našao vremena da se pozabavim sa tim.
Pozdrav.
Posts: 6.315
Threads: 56
Joined: Mar 2013
Reputation:
3.085
07-15-2017, 11:12 PM
(This post was last modified: 07-15-2017, 11:12 PM by Macola.)
Nema na čemu Progster.
Mnogi "matori vuci" koji se nisu kačili sa brzom impulsnom elektronikom, a koji su se dohvatili modernih MCU sa tranzicijama reda <20nS, znali su da "natrče" na neterminisano parče pcb koje ih maltene "u grob otera" jer se nedeljama namuče sa nekom sasvim prosečnom periferijom koja je malo odmaknuta, a zazvoni joj reflektovani talas na vodu i "prlja" podatke.
Kada god nisi siguran u prilagođenje voda i postojanje moguće refleksije, ne bilo ti teško, dodaj svakom pinu na MCU serijski otpornik od koju stotinu ohm...
Ja po defaultu dodajem na 5V MCU oko 680R na svaki pin (na 3V3 390R), pa tek iza radim šta želim.
Korist je višestruka:
- prigušio si refleksije i RLC odzvonjavanja čak i ako vodiš dugačke pcb iza,
- veoma si rasteretio MCU od kapacitativnih tereta iza, gde možeš da se provučeš sa manjim decoupling kondovima na MCU,
- sprečio si sam sebe da greškom ubiješ MCU ako mu konfigurišeš slučajno željeni input pin, kao out pin, a tu ti odnekud dolazi signal H :-)
- direktno iza kačiš većinu optokaplera ili led, jer već imaš optimalan serijski otpornik...
- imaš taj isti otpornik kao potencijalni jumper kojim možeš lako da otkačiš neki pin od okolnog sveta, a da ne seckaš pcb :-)
Eto tako.
Kad praviš pcb, odmah predvidiš fest do pinova po jedan otpornik, SMD ili TH, sve jedno. Malkice više košta, ali bar otpornici nisu skupi.
Pozz
Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
Kutice za BluePill, model za 3D printer by @bogdan.kecman
https://www.thingiverse.com/thing:2461399
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
Hvala Miki,
Upravo pustili da "pržimo" ovu kutijicu, rezultati za 5-6 sati, realno sutra
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
Posts: 700
Threads: 102
Joined: Jul 2016
Reputation:
222
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
Ultimaker 3
https://ultimaker.com/en/products/ultimaker-3
Pri izradi su korišćeni PLA + PVA materijali.
Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
08-15-2017, 05:25 PM
(This post was last modified: 08-15-2017, 06:53 PM by mikikg.)
Evo jedan fin i poucan primer kako baratati "low-level" registrima unutar STM32F103, bez upotrebe perifernih biblioteka ili CubeMX, koristi se samo osnovni CMSIS koji obezbeduje definiciju svih registra i dodaje start_up code.
Primer samo brzo togluje LED na plocici (PC13), brzinom oko 17.5MHz i zanimljivo je to posmatrati preko osciloskopa gde se vidi da je baratanje portom maksimalnom brzinom od 36MHz i da je while() struktura dosta sporija (oko 4.5MHz) pa se vide "pauze".
Program sam pokrenuo preko Keil uVision 5, ali posto je potpuno nezavistan od drugih biblioteka lako ga je portovati na GCC okruzenje, to planiram u narednim danima, trebam napisati make/linker skriptu ...
PHP Code: /* Bare minimum primer za blink LED za BluePill plocicu sa STM32F103C8 Koristi se samo osnovni CMSIS core bez dodatnih drajvera Primer je pokrenut kroz Keil uVision 5 */
#include "stm32f10x.h"
int main(void) { //------------------------------------------------------- //----------- Konfiguracija za Clock -------------------- //------------------------------------------------------- //prilikom reseta default je interni RC oscilator, da bi radio sa externim //kristalom mora da se enabluje HSE (High Speed External) u RCC (Reset and Clock Control) RCC->CR |= RCC_CR_HSEON; //External High Speed clock enable //posto treba vremena da se stabilizuje clock, cekamo RCC_CR_HSERDY flag while (!(RCC->CR & RCC_CR_HSERDY )) { ; //cekaj tu } //aktiviramo PLL za HSE RCC->CR |= RCC_CR_PLLON;
//postavljamo da je HSE izvor cloka za PLL RCC->CFGR |= RCC_CFGR_PLLSRC_HSE; //stavljamo x9 za PLL (8MHz * 9 = 72MHz) u registar RCC_CFGR RCC->CFGR |= RCC_CFGR_PLLMULL9; //cekamo PLL da se stabilizuje while (!(RCC->CFGR & RCC_CIR_PLLRDYC )) { ; //cekaj tu } //za APB1 bus je prebrzo 72MHz, maksimum je 36MHz, //ukljucujemo delitelj /2 RCC->CFGR |= RCC_CFGR_PPRE1_DIV2; //------------------------------------------------------- //----------- Konfiguracija za I/O port ----------------- //------------------------------------------------------- //svaka periferija je po resetu iskljucena tako sto //joj je iskljucen clock //Da bi radila mora da se ukljuci //ukljuci clock za sistemski bus AHB //ovo je opciono, po default je ukljuceno za SRAM i FLASH memoriju RCC->AHBENR |= RCC_AHBENR_SRAMEN; RCC->AHBENR |= RCC_AHBENR_FLITFEN; //ukljuci clock za APB2, on je za sve GPIOx RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //GPIOA RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; //GPIOB RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; //GPIOC //konfiguracija PC13 //po default svi pinovi su Input //ima dva registra CRL za pinove 0-7 i CRH za pinove 8-15 //definisi ga kao general purpose Output push-pull, 50MHz GPIOC->CRH &= ~GPIO_CRH_CNF13_0; //ocisti bit CNF13_0 GPIOC->CRH &= ~GPIO_CRH_CNF13_1; //ocisti bit CNF13_1 GPIOC->CRH |= GPIO_CRH_MODE13_0; //setuj bit MODE13_0 GPIOC->CRH |= GPIO_CRH_MODE13_1; //setuj bit MODE13_1 //atomic setovanje (BS) ili resotovanje (BR) pojedinacnog bita porta GPIOC->BSRR=GPIO_BSRR_BR13; //0 = TURN LED ON while(1) { //tu se vrtimo ... GPIOC->BSRR=GPIO_BSRR_BR13; GPIOC->BSRR=GPIO_BSRR_BS13; GPIOC->BSRR=GPIO_BSRR_BR13; GPIOC->BSRR=GPIO_BSRR_BS13; GPIOC->BSRR=GPIO_BSRR_BR13; GPIOC->BSRR=GPIO_BSRR_BS13; GPIOC->BSRR=GPIO_BSRR_BR13; GPIOC->BSRR=GPIO_BSRR_BS13; } }
Posts: 105
Threads: 6
Joined: May 2015
Reputation:
91
hehe, meni su te kutije bas znacile, vise ne mogu da jurim bp-ove po stolu a cesto ih trosim .. pa reko da spucam nesto na brzaka .. obratite paznju samo ima 2-3 verzijhe bp-a vezano za usb steker i za debljinu pcb-a tako da .. mozda treba jos neka debljina da se doda
@miki, za ovaj "native", ko sto rekoh, sve je to lepo al visual debugger je visual debugger .. a i kad zabodes malo kompleksnije stvari (network, sdio.. ) koriste brate one biblioteke samo tako
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
@mikikg
Evo trude se iz ST-a da još malo poprave low-level situaciju, pored Snippets-a ovo su ponudili od skora:
http://www.st.com/content/st_com/en/abou...n3949.html
Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
08-16-2017, 02:22 PM
(This post was last modified: 08-16-2017, 02:46 PM by mikikg.)
Hehe, probao sam to pre nego sto sam otisao na odmor ...
Iskreno nisam skontao uopste o cemu se tu radi jer sam gledao generisan code, sve ono sto je predhodno bilo tipa HAL_blabla sad je LL_blabla
Pisano u Javi, pa nema Java na Win10, pa skidaj jos 100+ MB instalaciju, aman ...
Dok sam pisao ovaj gore primer pala mi je jedna ideja napamet, a to je da ja napravim svoj online "STM-kockatore"
Recimo, da bi inicializovao jedan PIN treba da se upise "nesto" u maksimalno dva registra! Sto to ne mogu da budu dve linije code-a??
Napravi se JavaScript engine koji na kliktanje iskonfigurise/generise dve linije code-a!
To nije nikakva nauka napraviti, neka bude za pocetak za jedan samo procesor STM32F103C8 i da samo sluzi za generisanje code-a za GPIO.
Debelo razmisljam o tome da napravim takav engine ...
Ja to gledam tako da sve sto moram da ponavljam X puta da nekako automatizujem i uvek mi se pokazalo kao ispravno razmisljanje da ulozeno vreme u takve stvari se kasnije uvek isplate.
Hocu "kockatore" ali koji generise veoma kompaktan code ...
Trazio, niko nije napravio nista slicno
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
Nisam još konkretno isprobao, ali kao što sam već pisao ranije meni su "Standard Peripherial Libraries" koje je STM koristio do pre par godina bile nekako logičnije i pravilnije pisane i kao framework bile su na nižem nivou od HAL-a. E sad ovo što su izbacili omogućava da se kodovi pisani u ovom frameworku "lagano" iskonvertuju u HAL kompatibilne kako bi mogli stari projekti da se koriste i time nasledi mnogo niži nivo rada sa registrima sa ST kontrolerima. Jer očigledno da rutine u HAL frameworku nisu dovoljno optimizovane za neke od projekata.
Ja sam tako razumeo ovaj ST pokušaj sa LL API.
Što se tiče "STM-kockatore" ideja je odlična, ali mislim da su ST kontroleri prilično šareni sa nekim osnovnim registrima i podešavanjima, pa je upitno koliku kompatibilnost možeš da postigneš. Ali recimo ako se vežeš za STM32F103 i samo njega uradiš onda i nije tako strašno
Na primer kod Microchip-a mnogo je jednostavnije koristiti IO portove, imaš TRIS, PORT i LAT registre. Postaviš 1, 0 i to je to. Kod ST-a (ARM-a) imaš jedan registar pa zavisno od pozicije odnosno bita gde staviš "1" setuješ IO pin na 0 ili 1 itd... da ne dužim, mislim da je prilično komplikovaniji pristup u odnosu na ove prve. To su u novim generacijama nešto ispravljali, pa otud i šarenilo. Recimo ja češće koristim STM32L generaciju ST mikrokontrolera.
Posts: 1.517
Threads: 19
Joined: Apr 2013
Reputation:
211
09-03-2017, 06:56 PM
(This post was last modified: 09-03-2017, 06:57 PM by Makso.)
Da li je neko probavao STM32F407VET6, da li se može preko Arduino softvera programirati?
Slično nešto kao Arduino Mega, samo što ovo ima dodatke za tft, nrf modul, SD karticu i još ponešto.
Posts: 1.853
Threads: 25
Joined: Nov 2013
Reputation:
790
Sličan iz te serije sam koristio čisto znatiželje radi, na Discovery board-u:
http://www.st.com/en/evaluation-tools/st...overy.html
Rade ti mikrokontroleri veoma dobro.
Kasnije se izrodilo dosta novih i moćnijih sa extremno malom potrošnjom a bazirani na CortexM4, STM32L4xx tako da mislim da nema tu problema...
Najozbiljniji projekat koji smo radili sa CortexM4 je sa korišćenjem STM32F429ZIT6 i taj mikrokontroler nam je u profi uređaju sa dosta kompleksnih taskova.
Mašina nema šta...
Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
09-03-2017, 07:40 PM
(This post was last modified: 09-03-2017, 07:59 PM by mikikg.)
STM32F4xx tj Cortex M4 je previse "ozbiljan" (kompleksan) kontroler za okrezunje poput Arduino.
Mislim da pod Arduino imaju samo osnovne funkcije podrzane, tipa GPIO, tajmeri i seriske komunikacije, ostale stvari zbog komplekstnosti nisu jos podrzali i pitanje je da li ce biti u buducnosti.
Posts: 700
Threads: 102
Joined: Jul 2016
Reputation:
222
@mikikg iz tvog posta negde na pocetku ove teme, videh da si Blue Pill plocicu pretvorio u BMP, jel sa njom mozes da radis JTAG Boundary-Scan?
Posts: 1.244
Threads: 10
Joined: Apr 2015
Reputation:
509
Ne znam da li je mesto dobro, ali ajde da postavim pitanje ovde.
Ako na STM32 definisem u C-u
unsigned char Niz[100];
koliko bajtova ce biti zauzeto u memoriji kontrolera? Da li ce biti zauzeto 100 bajtova ili 400 bajtova posto je 32-bitni MCU? Koristim Atollic TrueStudio i ne znam jos uvek kako mogu da gledam zauzetost memorije.
Posts: 8.743
Threads: 138
Joined: Apr 2013
Reputation:
3.629
400 bajtova, nema manja memoriska lokacija od 32bit, ne moze u jednoj lokaciji posle da imas 4 char adrese
|