Zapojení STM32F0DISCOVERY pro detekci HDO

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
markoni
Příspěvky: 2310
Registrován: 30 říj 2006, 01:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#16 Příspěvek od markoni »

Mahoney píše:Proč tu vstupní část neuděláš stejně, jako to měl autor toho projektu?

Protože autor má to schéma jen s mikrokontrolerem to znamená že 3V3 má co napájí
Mahoney píše: Nebo pokud to chceš na jistotu (jak píšeš o tom 1V), můžeš dát operační zesilovač...
to tak ještě to komplikovat 8O
Potřeboval bych vědět jak se na tomto osciloskopu měří napětí :!: díky

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#17 Příspěvek od Mahoney »

A ty to snad máš nějak jinak? On má čip na 3V3, ty máš čip na 3V3, v čem je problém?

OZ není komplikace, bylo by to spíš zjednodušení, hlavne by sis mohl hodně zvýšit vstupní odpor, takže bys tam neřešil vstupní dělič v řádu stovek ohmů… Nicméně sice neznám tak dobře ARMy od STM, ale zřejmě to není potřeba, když tam autor má na vstupu 2x 1M a stačí mu to. Ničeho se neboj a udělej to stejně jako to má on.

Neznám tenhle obstarožní kousek, nicméně je to na všech stejné, nastavíš si, kolik voltů měříš na dílek, a pak už jen odečítáš počet dílků (a samozřejmě násobíš, tedy např. 1,5 div * např. 0,2V/div = 0,3V). U tohohle ale stejně po těch letech a bez kalibračního protokolu nebudeš vědět, co vlastně měříš.

Edit: Ehh, tak tohle už je hodně velká historie… V tom návodu píšou citlivost lepší než 52 mV/cm a pak tam máš dělič (takže vlastně násobíš, takže 0,052V * 100 = 5,2V na cm), takže asi nějak tak… Orientačně.

Uživatelský avatar
ondraN
Příspěvky: 209
Registrován: 16 srp 2022, 02:00
Bydliště: Roztoky

#18 Příspěvek od ondraN »

A ještě jedna věc. To měření má smysl pouze tehdy, když je MCU napájen a ten pin je nakonfigurován jako analogový vstup. V jiném případě budeš měřit naprostý hovadiny, protože ten pin může být třeba výstupní, nebo digitální vstup a pak ti ovlivní ten signál od trafa.

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#19 Příspěvek od Ruprecht »

Tím "střídavým 1V" je pravděpodobně myšlena sinusová efektivní hodnota. Tudíž 1,4V nula-špička (2,8V špička-špička).
Stejnosměrný střed děliče je 1,5V při napájení 3V (nebo 1,65V při napájení 3,3V). Superponováním střídavého 1V na stejnosměrný 1,5V (nebo 1,65V) bude výstupní signál pro ADC v rozsahu 0,1V-2,9V (1,5V-1,4V=0,1V až 1,5V+1,4V=2,9V) nebo 0,25V až 3,05V (1,65V-1,4V=0,25V až 1,65+1,4=3,05V), pořád v bezpečném rozsahu ADC při referenci Vcc.

Stejnosměrné napětí na tomto stroji nezměříš. Pro měření střídavého napětí si sežeň někoho s modernějším osciloskopem, aplikujte nějaké signály zároveň do obou osciloskopů a udělej si poznámky kolik voltů na dílek při jakém děliči ti to ukazuje.
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
markoni
Příspěvky: 2310
Registrován: 30 říj 2006, 01:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#20 Příspěvek od markoni »

Já jsem se pokusil na simulovat tak nevím :roll:
Přílohy
HDO mé.jpg
HDO puvodní.jpg

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#21 Příspěvek od Mahoney »

Se z těch simulací asi jednou pos**ete, místo abys vzal do ruky páječku a udělal co ti píše kolega (a u toho případně zjistil, jaké REÁLNÉ vybavení si potřebuješ sehnat), tak furt klikáte a klikáte (a to bohužel nejseš sám, proto množné číslo) a simulujete a ho**o z toho, s prominutím. Btw, opravdu chcete žít v metaversu? Vždyť je to celé nesmysl, život je život a nejde nahradit nějakým matrixem.

Uživatelský avatar
Ruprecht
Příspěvky: 1114
Registrován: 28 zář 2005, 02:00
Bydliště: ZČ + JM

#22 Příspěvek od Ruprecht »

Ten odporový dělič 2x10k v původním zapojení je tam proto, aby se celý vstupní průběh napětí z trafa (kteréhož polovina je v záporných hodnotách) převedl do pouze kladných hodnot zpracovatelných ADC, tj. 0-3,3V, zmenšení střídavé složky na 1Vef. zajišťuje vstupní kondenzátor.

Tvoje druhá simulace (bez DC děliče) zmenšuje trimrem amplitudu signálu z trafa, ale neposouvá signál do kladných hodnot, takže ADC může číst jen kladné půlvlny, a to ještě zmenšené. Záporné půlvlny to můžou odpálit, pokud nebude předřazen sériový odpor pro omezení proudu na rozumné hodnoty a jestli vůbec jsou na ADC vstupu přítomny clamping diody (jsou? datasheet jsem nestudoval).
ondraN píše:Nejlepší (pro čistotu signálu) by bylo, kdyby se ten oddělovací kondík C1 zapojil na běžec odporového trimru (cca 10k), který by měl krajové vývody zapojené na sekundár trafa. Tím se udrží SS složka na pinu MCU a amplituda se dá libovolně nastavit.
Tím kolega myslí přidat trimr ale zároveň nechat DC dělič 2x10k (což ve druhé simulaci nemáš)
Kampaň, účelovka, nepodepsal, Palermo, ODS, Kalousek, je líp a jsou na to čísla, nastudujte si to.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#23 Příspěvek od ZdenekHQ »

Mahoney píše:Se z těch simulací asi jednou pos**ete, místo abys vzal do ruky páječku a udělal co ti píše kolega (a u toho případně zjistil, jaké REÁLNÉ vybavení si potřebuješ sehnat), tak furt klikáte a klikáte (a to bohužel nejseš sám, proto množné číslo) a simulujete a ho**o z toho, s prominutím. Btw, opravdu chcete žít v metaversu? Vždyť je to celé nesmysl, život je život a nejde nahradit nějakým matrixem.
No, nemůžu se udržet, ale napsal jsi pravdu. Jedna věc je simulace, druhá věc je praxe + měření a já taky rád tu druhé. Třeba SIMetrix je dobrá věc, ale realitu nenahradí. Bohužel máš ale smůlu, realita se sune jiným směrem...
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#24 Příspěvek od Mahoney »

No to nemám, smůlu bude mít spíš ten, kdo tomu podvodu uvěří (pokud tedy mluvíš k té poznámce), a navíc se dějí a budou dít ještě jiné věci, na které si ti nemocní strůjci toho podvodu ani nešáhnou. Ale to nepatří do tohoto fóra.

Názor že bez měření není vědění zastávám také, proto jsem napsal co jsem napsal (v té první části). Přinejmenším už aspoň ví, že si místo oscilografu má koupit osciloskop, tedy pokud v tom chce pokračovat.

Uživatelský avatar
markoni
Příspěvky: 2310
Registrován: 30 říj 2006, 01:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#25 Příspěvek od markoni »

Tak pokračování
zapojil jsem tu desku následně
Kód by měl fungovat na F0 Discovery kitu s následujícím
* pinoutem:
*
* -# PA5 - vstup DAC, hlídané napětí.
* -# PA2 - Relé, aktivní úroveň H.
* -# PA3 - Povolovací výstup (nemusí být použit, stálá úroveň H - speciální IO pro test to prostě potřeboval).
* V konstruktoru Filter::Filter() :
* -# PC8 - modrá led na kitu, bliká s periodou 240 ms, indikuje, že fw žije.
* -# PC9 - zelená led na kitu, svítí při jednotlivých bitech telegramu.
*

prvním s schématem http://1-2-8.net/mwva/mrazik/hdo/html/hdo.png
dal jsem to na YouTube Odkaz na video
https://youtu.be/XDWe7khwMvM
ta logická sonda by po detekci HDO povelu "A1B2DP5 by se měla rozsvítit? nebo bliknout bohužel nic se neděje :| .Našel jsem spínací časy v mé lokalitě

Kód: Vybrat vše

A1B2DP5

 Aktuální období31. 10. - 31. 12. 2022

relé1 (C25d)

Pracovní dny

    00:30-05:45
    14:15-15:45
    20:45-22:00

Víkendy a svátky

    01:30-06:30
    13:45-15:30
    22:45-24:00
akorát nevím co je toto
-# PA3 - Povolovací výstup (nemusí být použit, stálá úroveň H - speciální IO pro test to prostě potřeboval). tak jsem to nechal být
předem díky za rady

Uživatelský avatar
ondraN
Příspěvky: 209
Registrován: 16 srp 2022, 02:00
Bydliště: Roztoky

#26 Příspěvek od ondraN »

Tomu se říká přecenění vlastních schopností.

Uživatelský avatar
markoni
Příspěvky: 2310
Registrován: 30 říj 2006, 01:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#27 Příspěvek od markoni »

Tak poraď jak na to ? kdyby se mi ten projekt povedlo importovat STM32Cube IDE abych mohl debugovat
díky

Kód: Vybrat vše

12:12:48 **** Incremental Build of configuration Default for project hdo ****
make all
make: *** No rule to make target 'all'. Stop.
"make all" terminated with exit code 2. Build might be incomplete.

12:12:48 Build Failed. 1 errors, 0 warnings. (took 249ms)
edit mě se to podařilo importovat ale nedaří se mi to s kompilovat ,já jsem se díval po netu ale nedozvěděl jsem se proč ten makefile dělá takovou neplechu :( dílky za nápady jek to napravit
Naposledy upravil(a) markoni dne 07 pro 2022, 14:57, celkem upraveno 1 x.

Uživatelský avatar
ondraN
Příspěvky: 209
Registrován: 16 srp 2022, 02:00
Bydliště: Roztoky

#28 Příspěvek od ondraN »

To ti neporadím, protože to nevím. Import z nějakého historického prostředí není snadný a někdy ani možný. To už jsi ale asi věděl na začátku a doporučení, dát od toho ruce pryč, jsi neslyšel.

Uživatelský avatar
markoni
Příspěvky: 2310
Registrován: 30 říj 2006, 01:00
Bydliště: Poblíž Zlína
Kontaktovat uživatele:

#29 Příspěvek od markoni »

Kód: Vybrat vše

##########################################################################
# User configuration and firmware specific object files	
##########################################################################
#
#  Makefile for gcc
#
ROOT_PATH = .

VPATH = . ./src
OBJS  = 

# C++ files
OBJS  += main.o
OBJS  += gpio.o
OBJS  += usart1.o
OBJS  += print.o
OBJS  += adcirq.o
OBJS  += filter.o
# C files
OBJS  += startup.o
OBJS  += csystem.o

##########################################################################
# GNU GCC compiler flags
##########################################################################
INCLUDE_PATHS  = -I.
INCLUDE_PATHS += -I$(ROOT_PATH)/inc
INCLUDE_PATHS += -I$(ROOT_PATH)/lib/inc

##########################################################################
# GNU GCC compiler prefix and location
##########################################################################

#CC = clang -ccc-gcc-name arm-none-eabi-g++ -target arm -mfloat-abi=soft
#CCP = clang++ -ccc-gcc-name arm-none-eabi-g++ -target arm -mfloat-abi=soft

CROSS_COMPILE = arm-none-eabi-
AS  = $(CROSS_COMPILE)gcc
CC  = $(CROSS_COMPILE)gcc
LD  = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
SIZE = $(CROSS_COMPILE)size
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
OUTFILE = Hdo

##########################################################################
# Startup files
##########################################################################

LD_PATH   = $(ROOT_PATH)/lib/
#LD_SCRIPT = stm32_ram.ld
LD_SCRIPT = stm32_flash.ld


CPU_TYPE = cortex-m0

##########################################################################
# Compiler settings, parameters and flags
##########################################################################
MFLAGS  = -mthumb -mcpu=$(CPU_TYPE)

CFLAGS  = $(MFLAGS)
CFLAGS += -c -Os $(INCLUDE_PATHS) -Wall -g

ASFLAGS:= $(CFLAGS)
ASFLAGS+= -D__ASSEMBLY__ -x assembler-with-cpp

CFLAGS += -ffunction-sections -fdata-sections -fmessage-length=0
CFLAGS += -fno-short-enums
#CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$(<F))

LDFLAGS = $(MFLAGS)
LDFLAGS+= -nostartfiles
LDFLAGS+= -Wl,--gc-sections
#LDFLAGS+= -Wl,-Map=$(OUTFILE).map,--cref
LDLIBS  = -L $(LD_PATH) -T $(LD_SCRIPT)
LDLIBS += -laeabi-cortexm0
#LDLIBS += -lc -lnosys -lstdc++
OCFLAGS = --strip-unneeded

CPFLAGS = $(CFLAGS)
CPFLAGS+= -fno-rtti -fno-exceptions

all: $(OUTFILE).elf calculate

calculate: ./calc/coef.c
	gcc -Os -o calculate ./calc/coef.c -lm

%.o : %.c
	$(CC) $(CFLAGS) -o $@ $<

%.o : %.cpp
	$(CC) $(CPFLAGS) -o $@ $<

%.o : %.s
	$(AS) $(ASFLAGS) -o $@ $<

$(OUTFILE).elf: $(OBJS)
	$(LD) $(LDFLAGS) -o $(OUTFILE).elf $(OBJS) $(LDLIBS)
	-@echo "Project size :"
	$(SIZE) $(OUTFILE).elf
	-@echo ""
	$(OBJCOPY) $(OCFLAGS) -O binary $(OUTFILE).elf $(OUTFILE).bin
#	$(OBJCOPY) $(OCFLAGS) -O ihex $(OUTFILE).elf $(OUTFILE).hex
#	$(OBJDUMP) -h -S $(OUTFILE).elf > $(OUTFILE).lst
#	-@echo ""

clean:
	rm -f $(OBJS) $(LD_TEMP) $(OUTFILE).elf # $(OUTFILE).bin $(OUTFILE).hex
	rm -f $(OUTFILE).map *~ *.lst
	$(foreach XPATH, $(VPATH), rm -f $(XPATH)/*~ )
	rm -f  $(ROOT_PATH)/inc/*~ calculate
Ještě mě napadlo jestli to makefile není nijak poškozeno to červené se mi nezdá to by mohlo něco naznačovat !!! díky
Přílohy
makefileHDO.jpg

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#30 Příspěvek od Mahoney »

Nevím jak funguje STM32Cube IDE ve Windows (jestli si to dělá nějaký sandbox, když je to založené na Eclipse), ale autor toho původního projektu to dělal na Linuxu, kde je GCC a Make přímo součástí systému.

V tom konfiguračním skriptu, co jsi přiložil, jsou všechny cesty v POSIX formátu (a navíc jsou tam nadefinované nějaké symboly pro Clang místo GCC), ale nepřiložil jsi chybový výpis z konzole, takže vlastně vůbec nevíme a nevidíme "co tomu chybí" (na čem to lehlo).

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“