Witam Wszystkich! Potrzebuję zrobić impulsator jak na załączonym foto. W technice cyfrowej to by wyszło dość duże na przynajmniej kilku scalakach. Pomyślałem, że może zrobić to na układzie programowalnym, ale moja wiedza w tym temacie jest kiepska, a choć jestem elektronikiem - to na starość nie zamierzam się uczyć pisania programów. Zasada jest taka, że ma być w pojedynczym cyklu 56 impulsów H z wypełnieniem ok.65 - 70%, następnie poziom L równy 4 impulsom H. Następnie cykl zaczyna się od nowa i tak w koło. Częstotliwość ok.1 - 3 kHz. Interesowała by mnie pomoc polegająca co najmniej na zaprogramowanym scalaku ze schematem lub na gotowej płytce. Warunki zasilania jak i obciążenie wyjścia - sam dorobię. Oczywiście pomoc nie charytatywna. Nie wykluczam dłuższej współpracy, o jak układ spełni oczekiwania - będę potrzebował ich dużo więcej. Kwestia dogadania się. Zatem czekam na info od Was i pozdrawiam !
W zupełności powinno wystarczyć jakieś Attiny 4:
Sygnał z tego co widzę jest w zakresie 1-5V. Jeśli wymagane jest wyjście z większą wydajnością prądową, to trzeba tam jeszcze dać jakiś opamp, albo prosty wzmacniacz. Przebieg jaki chcesz uzyskać na wyjściu to jest ten górny? Czy dolny? Dobrze by było jakbyś podał czas trwania stanów H i L w przebiegu.
Dodano po 11 [minuty]:
EDIT> Jakaś dziwna matematyka jest na tym opisie. 30+56*6 to nijak mi nie wychodzi 360.
@minitronik Najprostszy procesor - podajesz na wejście timera te impulsy, programujesz timer tak, że po zliczneiu do 56 generuje przerwanie zmieniające stan wyjścia na niski - do tego służy rejestr compare w timerach. Drugi taki rejestr programujesz na 4 i przerwanie z tego zdarzenia compare wystawia stan wysoki. Ot i cały program. W sumie na dyskretnych układach cyfrowych też nie problem to zrobić. Ze 4 scalaki TTL?
W zupełności powinno wystarczyć jakieś Attiny 4:
Sygnał z tego co widzę jest w zakresie 1-5V. Jeśli wymagane jest wyjście z większą wydajnością prądową, to trzeba tam jeszcze dać jakiś opamp, albo prosty wzmacniacz. Przebieg jaki chcesz uzyskać na wyjściu to jest ten górny? Czy dolny? Dobrze by było jakbyś podał czas trwania stanów H i L w przebiegu.
Dodano po 11 [minuty]:
EDIT> Jakaś dziwna matematyka jest na tym opisie. 30+56*6 to nijak mi nie wychodzi 360.
Mnie też z tej matematyki nic nie wyszło konkretnego, ale myślę że to "błąd dopuszczalny", czyli nazwijmy to tolerancją...
Może dla uproszczenia sprawdził bym, czy będzie działało przy wypełnieniu 50%. W takiej sytuacji przy częstotliwości 1 kHz przebiegi powinny mieć po 0,5ms, przy 2 kHz odpowiednio po 0,25 ms etc. Oczywiście interesuje mnie przebieg napięciowy, czyli dolny.
Dodano po 2 [minuty]:
tmf napisał:
@minitronik Najprostszy procesor - podajesz na wejście timera te impulsy, programujesz timer tak, że po zliczneiu do 56 generuje przerwanie zmieniające stan wyjścia na niski - do tego służy rejestr compare w timerach. Drugi taki rejestr programujesz na 4 i przerwanie z tego zdarzenia compare wystawia stan wysoki. Ot i cały program. W sumie na dyskretnych układach cyfrowych też nie problem to zrobić. Ze 4 scalaki TTL?
Tak, zgadzam się z Tobą. Jednak chcąc zminimalizować płytkę wolał bym zrobić to na jednej kości.
Najprostszy procesor - podajesz na wejście timera te impulsy, programujesz timer tak, że po zliczneiu do 56 generuje przerwanie zmieniające stan wyjścia na niski - do tego służy rejestr compare w timerach. Drugi taki rejestr programujesz na 4 i przerwanie z tego zdarzenia compare wystawia stan wysoki. Ot i cały program
Można jeszcze prościej, bez użycia przerwań.
Pętla programu zliczająca do 120, w zakresie 0 do 111 zmieniająca stan wyjścia
a następnie czyli w zakresie 112 do 120 utrzymująca stan L na wyjściu.
Może dla uproszczenia sprawdził bym, czy będzie działało przy wypełnieniu 50%. W takiej sytuacji przy częstotliwości 1 kHz przebiegi powinny mieć po 0,5ms, przy 2 kHz odpowiednio po 0,25 ms etc.
Przy szybkości współczesnych MCU wypełnienie nie będzie tu problemem.
Wybierz jakiś np. AVR, tóry by ci pasował, przejrzyj jego notę pod kątem dostępności timera z dwoma kanałami capture (najlepiej), spróbuj to zrobić zgodnie ze wskazówkami, Jak będziesz miał problem to opisz co masz i się pomoże.
Mnie też z tej matematyki nic nie wyszło konkretnego, ale myślę że to "błąd dopuszczalny", czyli nazwijmy to tolerancją...
Może dla uproszczenia sprawdził bym, czy będzie działało przy wypełnieniu 50%. W takiej sytuacji przy częstotliwości 1 kHz przebiegi powinny mieć po 0,5ms, przy 2 kHz odpowiednio po 0,25 ms etc. Oczywiście interesuje mnie przebieg napięciowy, czyli dolny.
Ok, czyli 1kHz, to częstotliwość tego wewnętrznego prostokątnego przebiegu, a nie całej ramki.
Coś takiego powinno wystarczyć:
Może dla uproszczenia sprawdził bym, czy będzie działało przy wypełnieniu 50%. W takiej sytuacji przy częstotliwości 1 kHz przebiegi powinny mieć po 0,5ms, przy 2 kHz odpowiednio po 0,25 ms etc.
Przy szybkości współczesnych MCU wypełnienie nie będzie tu problemem.
Wybierz jakiś np. AVR, tóry by ci pasował, przejrzyj jego notę pod kątem dostępności timera z dwoma kanałami capture (najlepiej), spróbuj to zrobić zgodnie ze wskazówkami, Jak będziesz miał problem to opisz co masz i się pomoże.
Dziękuję bardzo Wszystkim Wam za pomoc! Jednak tak jak napisałem interesuje mnie przynajmniej gotowy, zaprogramowany układ ze schematem aplikacji. Resztę zrobię sam, bo muszę dopracować zasilanie i parametry wyjścia. Nie mam czasu na kombinowanie z kością która trzeba zaprogramować, bo ani wystarczającej wiedzy, ani programatora. Czyli musiał bym zaczynać od przysłowiowego zera, a no to naprawdę nie mam obecnie czasu. Reszta to dla mnie pestka, bo niemal 40 lat siedzę w tym temacie i nie sprawia mi to żadnego problemu. Czyli jak będę miał układ to reszta zajmie w przypadku prototypu góra godzinę czasu i będę mógł testować w realnym zastosowaniu.
Przecież gotową płytkę można nabyć tak jak kolega Janusz_kk napisał.
Nie potrzeba żadnego programatora, wystarczy zainstalować Arduino i programuje się za pomocą portu szeregowego ( albo adapteru USB).
Chyba nie oczekujesz, że ktoś zrobi gotową płytkę.
Wystarczy ,że uprzejmi koledzy zaproponowali już wykonania gotowego programu.
Przecież gotową płytkę można nabyć tak jak kolega Janusz_kk napisał.
Nie potrzeba żadnego programatora, wystarczy zainstalować Arduino i programuje się za pomocą portu szeregowego ( albo adapteru USB).
Chyba nie oczekujesz, że ktoś zrobi gotową płytkę.
Wystarczy ,że uprzejmi koledzy zaproponowali już wykonania gotowego programu.
Z tego co widzę, chyba nie zostanie mi nic innego. Myślałem, że jak ktoś z tym robi to ma takie płytki, zainstalowany program w kompie, napisze i zaprogramuje, a później wyśle. Mnie by to urządzało, bo mogło by to trwać dużo krócej. Ale cóż, i za to Wam dziękuję !!!
Będzie, wygląda na to samo tylko nie ma stabilizatora czyli nie zasilisz tego np zasilaczem wtyczkowym 9V bo musisz dodać stabilizację.
Jedynie z usb albo bezpośrednio z akumulatora litowego.
Dodano po 1 [minuty]:
Jak Ci przyjdzie to zainstaluj go wg manuala co ci wysłałem i uruchom.
Będzie, wygląda na to samo tylko nie ma stabilizatora czyli nie zasilisz tego np zasilaczem wtyczkowym 9V bo musisz dodać stabilizację.
Jedynie z usb albo bezpośrednio z akumulatora litowego.
Dodano po 1 [minuty]:
Jak Ci przyjdzie to zainstaluj go wg manuala co ci wysłałem i uruchom.
Masz program,wklej go do edytora i kliknij strzałkę w prawo tak jak masz w manualu co ci podesłąłem.
Kod: C / C++
Zaloguj się, aby zobaczyć kod
Dodano po 5 [minuty]:
Masz w programie na samym początku stałą 'czas' teraz ona wynosi 250uS, tyle wynosi impuls i przerwa, długa przerwa to 4*czas, może to sobie zmieniać, tylko pamiętaj że po każdej zmianie trzeba kod skompilować i wgrać do układu.
Masz program,wklej go do edytora i kliknij strzałkę w prawo tak jak masz w manualu co ci podesłąłem.
Kod: C / C++
Zaloguj się, aby zobaczyć kod
Dodano po 5 [minuty]:
Masz w programie na samym początku stałą 'czas' teraz ona wynosi 250uS, tyle wynosi impuls i przerwa, długa przerwa to 4*czas, może to sobie zmieniać, tylko pamiętaj że po każdej zmianie trzeba kod skompilować i wgrać do układu.
OK! Jak tylko przyjdzie płytka i będę miał chwilkę, zacznę z tym "zabawę". Jak będę miał problem - to odezwę się. Jak mi się uda - również dam cynk.
Pozdrawiam !!!
OK! Jak tylko przyjdzie płytka i będę miał chwilkę, zacznę z tym "zabawę". Jak będę miał problem - to odezwę się. Jak mi się uda - również dam cynk.
Pozdrawiam !!!
Zbyt szybka decyzja na taki kiepski wybór (!)
O wiele lepszym i praktyczniejszym układem byłby zakup Arduino-Nano; - w tej samej cenie i miejscu zakupu...
Janusz_kk napisał:
Masz w programie na samym początku stałą 'czas' teraz ona wynosi 250uS, tyle wynosi impuls i przerwa, długa przerwa to 4*czas, może to sobie zmieniać, tylko pamiętaj że po każdej zmianie trzeba kod skompilować i wgrać do układu.
Nie trzeba takiej kombinacji.....
Jest od tego EEPROM, w którym można zapamiętać zmiany konkretnych zmiennych i podczas startu (Power-UP) je odczytywać...
- gdy tymczasem zasadniczy program pozostaje bez zmiany i nie wymaga ponownej kompilacji.
Procedury tej można dokonywać 'w biegu' programu z poziomu monitora szeregowego.
Jest od tego EEPROM, w którym można zapamiętać zmiany konkretnych zmiennych i podczas startu (Power-UP) je odczytywać...
- gdy tymczasem zasadniczy program pozostaje bez zmiany i nie wymaga ponownej kompilacji.
Procedury tej można dokonywać 'w biegu' programu z poziomu monitora szeregowego.
e marcus
Oczywiście, to teraz kolega siada i pisze program dla 'minitronika'.
Dzięki Panowie!
Już kupiłem i mam, ale może zajmę się tym w niedzielę, bo na razie brak czasu. Jak pisałem - jestem niemal laikiem w tym temacie - chociaż jestem elektronikiem, ale starej daty. Było zbyt dużo roboty przez ostatnie 30 lat i brakło czasu na najnowsze technologie, a ja robiłem głównie to, na czym się dobrze znałem i zresztą jeszcze nadal to robię, a że na to jest duży zbyt - to najlepszy dowód, że wciąż nie mam na nic czasu.
Ale do rzeczy - kupiłem i na na tym co mam - spróbuję. Ponoć nigdy nie jest za późno na naukę W każdym razie dziękuję Wam za pomoc, a co mi z tego wyjdzie - dam znać !
Obiecałem, że dam Wam znać, jak mi idzie. Otóż walczę z komunikacją - niby widzi płytkę, ale nie identyfikuje jej jako CH340. Wywala mi w programie:
Arduino:1.8.16 (Windows 7), Płytka:"Digispark (Default - 16.5mhz)"
Obiecałem, że dam Wam znać, jak mi idzie. Otóż walczę z komunikacją - niby widzi płytkę, ale nie identyfikuje jej jako CH340. Wywala mi w programie:
I nie będzie, ona nie udaje portu. Tak jak jest na samouczku, kliknij strzałkę w lewo, jak sioę pojawi na dole czerwony napis że czeka na płytką to ją włóż do usb, po zaprogramowaniu masz takie napisy na dole w oknie:
"Szkic używa 638 bajtów (10%) pamięci programu. Maksimum to 6012 bajtów.
Zmienne globalne używają 9 bajtów pamięci dynamicznej.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds) -< tu czeka na płytkę
> Please plug in the device ...
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 1.6
> Available space for user applications: 6012 bytes
> Suggested sleep time between sending pages: 8ms
> Whole page count: 94 page size: 64
> Erase function sleep duration: 752ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete"
Wróciłem do Win XP i wgrałem wersję 1.8.5.
Konfigurację zrobiłem.
I dalej chyba coś knocę: daję SZKIC i DODAJ PLIK. Wybieram plik który dostałem w tym temacie, czyli GENR.hex
Na ekranie nic mi się nie zmienia i wygląda tak na na fotce 1.
Następnie klikam SZKIC i WERYFIKUJ/KOMPILUJ
Zrzut z ekranu 2, napis "kompilacja zakończona". W ramce programu mam:
"C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files\Arduino\hardware -hardware C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -tools C:\Program Files\Arduino\tools-builder -tools C:\Program Files\Arduino\hardware\tools\avr -tools C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages -built-in-libraries C:\Program Files\Arduino\libraries -libraries E:\Dla dysku C\Moje dokuenty\Arduino\libraries -fqbn=digistump:avr:digispark-tiny -ide-version=10805 -build-path C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263 -warnings=default -build-cache C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_cache_617041 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.micronucleus.path=C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -prefs=runtime.tools.avr-gcc.path=C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -verbose E:\Dla dysku C\Moje dokuenty\Arduino\sketch_oct17a\sketch_oct17a.ino
Using board 'digispark-tiny' from platform in folder: C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7
Using core 'tiny' from platform in folder: C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7
Detecting libraries used...
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\sketch\sketch_oct17a.ino.cpp" -o "nul"
Generating function prototypes...
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\sketch\sketch_oct17a.ino.cpp" -o "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\preproc\ctags_target_for_gcc_minus_e.cpp"
Kompilowanie szkicu...
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IC:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\sketch\sketch_oct17a.ino.cpp" -o "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\sketch\sketch_oct17a.ino.cpp.o"
Compiling libraries...
Compiling core...
Użycie wcześniej skompilowanego pliku: C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\core\pins_arduino.c.o
Using precompiled core
Linking everything together...
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-gcc" -Os -Wl,--gc-sections -mmcu=attiny85 -o "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263/sketch_oct17a.ino.elf" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\sketch\sketch_oct17a.ino.cpp.o" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263\core\pins_arduino.c.o" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_cache_617041\core\core_digistump_avr_digispark-tiny_08e21323ad2d40907c7aabf0239dccce.a" "-LC:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263" -lm
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263/sketch_oct17a.ino.elf" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263/sketch_oct17a.ino.eep"
"C:\Documents and Settings\Administrator\Ustawienia lokalne\Dane aplikacji\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-objcopy" -O ihex -R .eeprom "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263/sketch_oct17a.ino.elf" "C:\DOCUME~1\ADMINI~1\USTAWI~1\Temp\arduino_build_740263/sketch_oct17a.ino.hex"
Szkic używa 302 bajtów (5%) pamięci programu. Maksimum to 6012 bajtów.
Zmienne globalne używają 9 bajtów pamięci dynamicznej."
Teraz klikam SZKIC i WGRAJ. Wychodzi jak na fotce 3.
Wkładam płytkę do USB i czy wciskam czy nie klawisze CTRL i C - nie ma różnicy.
Otrzymuję komunikat : Device search timed out - fotka 4.
Co robię nie tak? Sam już się w tym pogubiłem
Strzałki w lewo o której pisałeś - nie mam na ekranie. Próbowałem na klawiaturze, ale nic nie daje. Jestem ogłupiały.
daję SZKIC i DODAJ PLIK. Wybieram plik który dostałem w tym temacie, czyli GENR.hex
Arduino nie akceptuje plików typu HEX ,tylko sam je generuje z projektu.
Obecnie masz (widać na zdjęciach) nowy pusty projekt "sketch_oct17a" i należy go wypełnić kodem tak jak pokazuje post #16.
I tak zrobiłem, ale czy dobrze? Wykasowałem to co miałem na ekranie i wkleiłem całość z #16. Program wywalił mi coś takiego:
"Arduino:1.8.5 (Windows 7), Płytka:"Arduino/Genuino Uno"
avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "F:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM1
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x30
avrdude done. Thank you.
Problem z wgrywaniem na płytkę."
Nie wiem, czy dobrze zrobiłem, że to wykasowałem. Może trzeba to wkleić pod dany temat: pojedyńczo lub wielokrotnie?
Dodano po 7 [minuty]:
Coś się zmieniło. Spróbowałem jeszcze raz i po chwili (choć menadżer sprzętu Win wywalił jakiś błąd) na płytce dioda czerwona przestała migać i świeci łącznie z zieloną światłem ciągłym. W ramce programu mam takie coś:
F:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware F:\Program Files (x86)\Arduino\hardware -hardware F:\Users\Automat\AppData\Local\Arduino15\packages -tools F:\Program Files (x86)\Arduino\tools-builder -tools F:\Program Files (x86)\Arduino\hardware\tools\avr -tools F:\Users\Automat\AppData\Local\Arduino15\packages -built-in-libraries F:\Program Files (x86)\Arduino\libraries -libraries F:\Users\Automat\Documents\Arduino\libraries -fqbn=digistump:avr:digispark-tiny -ide-version=10805 -build-path F:\Users\Automat\AppData\Local\Temp\arduino_build_841885 -warnings=default -build-cache F:\Users\Automat\AppData\Local\Temp\arduino_cache_551787 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.micronucleus.path=F:\Users\Automat\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -prefs=runtime.tools.avr-gcc.path=F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -verbose F:\Users\Automat\Documents\Arduino\Generator\Generator.ino
F:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware F:\Program Files (x86)\Arduino\hardware -hardware F:\Users\Automat\AppData\Local\Arduino15\packages -tools F:\Program Files (x86)\Arduino\tools-builder -tools F:\Program Files (x86)\Arduino\hardware\tools\avr -tools F:\Users\Automat\AppData\Local\Arduino15\packages -built-in-libraries F:\Program Files (x86)\Arduino\libraries -libraries F:\Users\Automat\Documents\Arduino\libraries -fqbn=digistump:avr:digispark-tiny -ide-version=10805 -build-path F:\Users\Automat\AppData\Local\Temp\arduino_build_841885 -warnings=default -build-cache F:\Users\Automat\AppData\Local\Temp\arduino_cache_551787 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.micronucleus.path=F:\Users\Automat\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4 -prefs=runtime.tools.avr-gcc.path=F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5 -verbose F:\Users\Automat\Documents\Arduino\Generator\Generator.ino
Using board 'digispark-tiny' from platform in folder: F:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7
Using core 'tiny' from platform in folder: F:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7
Detecting libraries used...
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\sketch\Generator.ino.cpp" -o "nul"
Generating function prototypes...
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -w -x c++ -E -CC -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\sketch\Generator.ino.cpp" -o "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\preproc\ctags_target_for_gcc_minus_e.cpp"
"F:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\preproc\ctags_target_for_gcc_minus_e.cpp"
Kompilowanie szkicu...
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-g++" -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=attiny85 -DF_CPU=16500000L -DARDUINO=10805 -DARDUINO_AVR_DIGISPARK -DARDUINO_ARCH_AVR "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny" "-IF:\Users\Automat\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\variants\digispark" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\sketch\Generator.ino.cpp" -o "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\sketch\Generator.ino.cpp.o"
Compiling libraries...
Compiling core...
Użycie wcześniej skompilowanego pliku: F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\core\pins_arduino.c.o
Using precompiled core
Linking everything together...
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-gcc" -Os -Wl,--gc-sections -mmcu=attiny85 -o "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.elf" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\sketch\Generator.ino.cpp.o" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885\core\pins_arduino.c.o" "F:\Users\Automat\AppData\Local\Temp\arduino_cache_551787\core\core_digistump_avr_digispark-tiny_bcfed25a1d7bd902996f26b0c45ee955.a" "-LF:\Users\Automat\AppData\Local\Temp\arduino_build_841885" -lm
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.elf" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.eep"
"F:\Users\Automat\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5/bin/avr-objcopy" -O ihex -R .eeprom "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.elf" "F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.hex"
Szkic używa 638 bajtów (10%) pamięci programu. Maksimum to 6012 bajtów.
Zmienne globalne używają 9 bajtów pamięci dynamicznej.
F:\Users\Automat\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4/launcher -cdigispark --timeout 60 -Uflash:w:F:\Users\Automat\AppData\Local\Temp\arduino_build_841885/Generator.ino.hex:i
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 2.2
> Device signature: 0x1e930b
> Available space for user applications: 6522 bytes
> Suggested sleep time between sending pages: 7ms
> Whole page count: 102 page size: 64
> Erase function sleep duration: 714ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!"
Czyli chyba wyszło Jest jakaś metoda programowego sprawdzenia poprawności? Np zgrania tego ze scalaka i porównania z zapisem wprogramowanego tekstu?
Podłącz do PB1 diodę świecącą z opornikiem np 1k raz do plusa raz do masy i zobacz czy świeci, powinna w obu świecić, pamiętaj o polaryzacji diody (obracasz diodę).
@Janusz_kk Pojechałem specjalnie po oscyloskop i działa. Zrobiłem to na szybkiego na małym "ręczniaku", ale widać dobrze.
Teraz jeszcze dorobię zasilanie i klucz na wyjściu - później w maszynie wyjdzie wszystko. Mam nadzieję, że będzie OK.
Pozdrawiam !!!
Użytkownik poszukiwał pomocy w stworzeniu generatora impulsów, który miał generować 56 impulsów H z wypełnieniem 65-70% oraz 4 impulsy L, przy częstotliwości 1-3 kHz. W odpowiedziach zasugerowano użycie mikrokontrolera, takiego jak Attiny lub Arduino, oraz przedstawiono różne metody programowania, w tym wykorzystanie timerów. Użytkownik zdecydował się na zakup płytki Digispark, a po kilku próbach z programowaniem udało mu się uzyskać pożądany sygnał impulsowy. W dyskusji podkreślono zalety programowania w porównaniu do tradycyjnych układów cyfrowych oraz znaczenie nauki nowych technologii w elektronice. Podsumowanie wygenerowane przez model językowy.