Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'mikrokontroler'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 9 wyników

  1. Dzień Dobry, Mam pytanie odnośnie programowania mikro kontrolerów. Zajmuję się akurat ATTINY2313A. Mam ustawiony wewnętrzny oscylator na częstotliwość 4 MHz bez wewnętrznego podziału zegara przez 8. Poniżej mój krótki kod w #include <avr/io.h> int main(void) { DDRB = _BV(DDB0); // ustawienie pinu PB0 w stan wyjścia TCCR0A = _BV(WGM01); // ustawienie generatora w tryb CTC TCCR0B = _BV(CS00); // wybór zegara z skalowaniem przez 1 OCR0A = 1; // ustawienie górnej wartości licznika while (1) { if (TIFR & _BV(OCF0A)) { // sprawdzenie czy w rejestrze TIFR ustawiona została flaga OCF0A po przepełnieniu licznika OCR0A TIFR |= _BV(OCF0A); // wyzerowanie flagi OCF0A poprzez ustawienie logicznej jedynki PORTB ^= _BV(DDB0); // przełączenie bitu na pinie PB0 } } } W moim przypadku według dokumentacji czyli wzoru poniżej: fOC0A=fclk_I/O/(2·N·(1+OCR0A)) fOC0A=4000000/(2·1·(1+1)) fOC0A=1000000=1MHz A teraz do meritum:) Co robię nie tak? Częstotliwość którą uzyskuję to --> 207.4KHz. W załączniku przesyłam zdjęcie z oscyloskopu z widocznym przebiegiem na pinie PB0. Pozdrawiam, Oskar Zaremba
  2. Source Enterprise sp. z o.o. sp. k. jest ambitnym, stabilnie finansowanym krakowskim start-up’em. Rekrutujemy do nowych zespołów badawczo-rozwojowych. Zespoły te zajmowały będą się konstruowaniem mobilnych robotów oraz budową ekosystemu do zarządzania nimi. PROGRAMISTA MIKROKONTROLERÓW Miejsce pracy: Kraków, Wola Justowska Marzy Ci się kreatywna praca w startup’ie? Chciałbyś brać realny udział w tworzeniu nowych konstrukcji mechatronicznych? Pracujemy w interdyscyplinarnych zespołach. Tworząc zespół, wybieramy osoby, których umiejętności będą nawzajem się uzupełniały. Do Twoich zadań należeć będzie: tworzenie i rozwój oprogramowania w języku “C”, programowanie mikrokontrolerów Espressif ESP32, Nordic nRF, STM32, tworzenie oraz aktualizacja dokumentacji, budowa oraz testowanie prototypów. Oczekujemy od Ciebie: minimum 3 lata doświadczenia w programowaniu z wykorzystaniem języka z rodziny “C”, bardzo dobrej znajomości programowania w języku “C” i/lub “C++”, doświadczenia w programowaniu mikrokontrolerów (8-,32-bitowych) w “C” i/lub “C++”, znajomości specyfiki programowania systemów wbudowanych z uwzględnieniem ograniczonych zasobów sprzętowych, umiejętności obsługi podstawowych peryferiów, umiejętność obsługi komunikacji BLE oraz WiFi, wiedzy w zakresie elektroniki cyfrowej i analogowej umożliwiającej czytanie schematów zawierających cyfrowe i analogowe obwody elektroniczne, znajomości elektroniki w stopniu pozwalającym na świadomą implementację obsługi poszczególnych bloków elektronicznych, umiejętności posługiwania się urządzeniami kontrolno-pomiarowymi, znajomości języka angielskiego min. na poziomie B2, umiejętności samodzielnego rozwiązywania problemów, samodzielności w dziedzinie, którą reprezentujesz. Dodatkowo możesz pochwalić się: wykształceniem wyższym, osiągnięciami w realizacji projektów związanych z robotyką, znajomością oprogramowania Atlassian: Confluence, Jira, Bitbucket, doświadczeniem w zwinnym podejściu do zarządzania projektami, znajomością zagadnień szyfrowania oraz transmisji danych. Oferujemy: pracę w zespole Scrum, wynagrodzenie adekwatne do posiadanych umiejętności i zaangażowania, umowę o pracę lub B2B, pokój kreatywny, pyszną kawę. Prosimy o przesyłanie CV w języku polskim wraz z klauzulą RODO na adres mailowy careers@see.inc. Klauzula: “Wyrażam zgodę na przetwarzanie moich danych osobowych przez firmę Source Enterprise Spółka z ograniczoną odpowiedzialnością Spółka Komandytowa dla potrzeb niezbędnych do realizacji procesu rekrutacji zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).” Oraz jeśli chcesz wziąć udział w przyszłych rekrutacjach: “Wyrażam również zgodę na przetwarzanie moich danych osobowych w celu prowadzenia przyszłych rekrutacji przez wyżej wskazaną firmę.” Wysyłając swoje CV i inne dokumenty aplikacyjne wyrażasz zgodę na przetwarzanie swoich danych osobowych przez Source Enterprise Spółka z ograniczoną odpowiedzialnością Spółka Komandytowa z siedzibą w Krakowie, ul. Starowolska 9, 30-231 Kraków, jako administratora danych osobowych, na potrzeby realizacji toczącego się procesu rekrutacyjnego. Udzielenie zgody jest dobrowolne, jednak niezbędne w celu wzięcia udziału w rekrutacji na stanowisko wskazane w ogłoszeniu. Zgoda może zostać w każdym czasie wycofana poprzez wysłanie oświadczenia na adres e-mail: gdpr@see.inc lub na wskazany powyżej adres siedziby, jednak uniemożliwi to dalszy udział w rekrutacji. Twoje dane osobowe wskazane w Kodeksie pracy lub w innych ustawach szczegółowych (według wymogów ogłoszenia), są przetwarzane w oparciu o przepisy prawa i ich podanie jest konieczne do wzięcia udziału w rekrutacji. Pozostałe dane osobowe (np. Twój wizerunek) przetwarzamy na podstawie Twojej dobrowolnej zgody, którą wyraziłaś/eś wysyłając nam swoje zgłoszenie rekrutacyjne i ich podanie nie ma wpływu na możliwość udziału w rekrutacji. Możemy przetwarzać Twoje dane osobowe zawarte w zgłoszeniu rekrutacyjnym także w celu ustalenia, dochodzenia lub obrony przed roszczeniami, jeżeli roszczenia dotyczą prowadzonej przez nas rekrutacji. W tym celu będziemy przetwarzać Twoje dane osobowe w oparciu o nasz prawnie uzasadniony interes, polegający na ustaleniu, dochodzeniu lub obrony przed roszczeniami w postępowaniu przed sądami lub organami państwowymi. Masz prawo dostępu do swoich danych, w tym uzyskania ich kopii, sprostowania danych, żądania ich usunięcia, ograniczenia przetwarzania, wniesienia sprzeciwu wobec przetwarzania oraz przeniesienia podanych danych (na których przetwarzanie wyraziłeś zgodę) do innego administratora danych. Masz także prawo do wniesienia skargi do Generalnego Inspektora Ochrony Danych Osobowych (w przyszłości: Prezesa Urzędu Ochrony Danych Osobowych). Cofnięcie zgody pozostaje bez wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej cofnięciem. Twoje dane osobowe przetwarzamy w celu prowadzenia rekrutacji na stanowisko wskazane w ogłoszeniu przez okres nie dłuższy niż 180 dni od momentu zakończenia procesu rekrutacji, a gdy wyraziłaś/eś zgodę na udział w przyszłych rekrutacjach przez okres nie dłuższy niż 3 lata od momentu zakończenia rekrutacji. Ponadto Twoje dane osobowe możemy przechowywać dla celów ustalenia, dochodzenia lub obrony przed roszczeniami związanymi z procesem rekrutacji przez okres nie dłuższy niż 3 lata od momentu zakończenia rekrutacji. W określonych przypadkach możemy przetwarzać Twoje dane dłużej niż 3 lata, jeżeli taka konieczność wynika z przepisów prawa. Nie przekazujemy Twoich danych osobowych poza Europejski Obszar Gospodarczy. W razie pytań możesz się z nami skontaktować pod adresem e-mail gdpr@see.inc. Zastrzegamy możliwość kontaktu tylko z wybranymi kandydatami.
  3. Płytka prototypowa AVR Witam mam dla was do zaprezentowana płytkę prototypową z mikrokontrolerem AVR w obudowie DIP40. Zaprezentowany układ został wykonany dla osób zaczynających zabawę z mikrokontrolerami AVR. Płytka PCB ma wymiary 132mm x 69mm. Został wykonany w programie KiCad. Schemat umieszczony poniżej składa się z Płytki dwuwarstwowej Mikrokontrolera AVR DIP40 Wyświetlacza 7-segmentowego Wyświetlacza LCD HD44780 Dwóch mostków H w jednej obudowie 5 przycisków przycisków 1. Obok mikrokontrolera są umieszczone jego wyprowadzenia. Do obu wyświetlaczy wyprowadzenia umieściłem obok goldpinów Portu A dla LCD oraz Portu C dla 7-segmentowego (odpowiedzialnego za załączenie segmentów) Umożliwia to łatwe połączenie używając zworek. Każdy podłączony układ ma doprowadzone zasilanie. 2. Mikrokontroler AVR – Płytka przystosowana jest do mikrokontrolerów AVR w obudowie DIP40. Nie wyposażyłem układ w programator. Lecz zastosowałem złącze ISP 10-pinowe. Programator to koszt ok 20 pln. Podłączyłem do układu zewnętrzny rezonator kwarcowy w obudowie HC-49 przy montażu należy pamiętać o przylutowaniu adaptera. Daje to możliwość zamiany taktowania procka. 3. Wyświetlacz 7-segmentowy jest to element ze wspólną anodą Jest to układ który ma już wyprowadzone i połączone segmenty i anody poszczególnych cyfr. Do obsługi wyświetlacza wykorzystywane są piny wyprowadzone przy Porcie C (segmenty) oraz obok wyświetlacza (Anody). Segmenty posiadają również rezystory 220 Ω. Można również zastosować wyświetlacz ze wspólną katodą ale należy pamiętać o tym pisząc program. 4. Wyświetlacz LCD HD44780 nie występuje on w prezentowanym układzie ma on wyprowadzenia na PCB. Jest możliwa jedynie komunikacja 4-bitowa, która oszczędza na ilości potrzebnych połączeń między mikrokontrolerem a ekranem. Wykorzystać można wiele rozmiarów wyświetlaczy. Najczęstszym jest 1602 który posiada dwa wiersze oraz 16 kolumn. Czyli 32znaki. Jest też możliwość podłączenia ekranu 2004 i zależność kolumn i wierszy jest identyczna jak w opisywanym wcześniej ekranie. Pod ekranem jest miejsce na zworkę RW która odpowiada za komunikacje zwrotną z LCD do mikrokontrolera. Nie korzystając z tej opcji należy przełączyć pomiędzy RW a GND. Obok zworki RW jest miejsce na przylutowanie potencjometru do ustawienia kontrastu. 5. Mostek H jest to element do pełnej obsługi silników. Układ L293D jest w obudowie DIP 16. Układ ten pozwala sterować w pełni (prędkość, kierunek obrotów) dwoma silnikami DC. Można również podłączyć opisywany układ do silnika krokowego bipolarnego. Dzięki wyprowadzeniom można wykorzystać zewnętrzne napięcie przystosowane do danego silnika. W każdym z silników możemy decydować o prędkości obrotowej wykorzystując złącze PWM oraz kierunkiem przy użyciu wejść 1A, 2A lub 3A, 4A (np. 1A Vcc , 2A GND -> obroty w prawo) 6. Ostatnim opisywanymi elementami są przyciski. Są one podjęte a stałe do GND a drugie końce wyprowadzeń są podłączone do złączy goldpinowych. Projekty które można zrealizować na omawianym PCB Migotanie diodami LED (należy pamiętać o podłączeniu co najmniej jednego wyprowadzenia Anod do GND) Sterowaniem Wyświetlaczem LED 7 segmentowym (multipleksacja) Obsługa wyświetlacza LCD Sterowanie silnikami DC w wykorzystaniem PWM Sterowanie silnikiem krokowym bipolarnym obsługa klawiszy (sprawdzenie stanu na pinie) Obecny układ jest pierwszą wersją po której nastąpią poprawki. W kolejnych etapach rozwoju chciałbym dodać osobne diody LED podpięte na stałe do 5V lub GND wraz z rezystorami. Dołączyć dwa moduły jednym jest ekspander pinów pracujący na magistrali TWI (I2C) oraz moduł termometru cyfrowego DS18B20 połączonego za pomocą komunikacji 1-wire. Poprawić układ PCB (układ ścieżek, wymianę obudów na inne). Zachęcam do zadawania pytań, pisania sugestii oraz krytyki w celu dalszego rozwoju. W załączniku dołączam plik rar z wszystkimi plikami KiCad'a.Board 1.rar Pozdrawiam
  4. Witam, pracuję nad pewnym projektem do pojazdu. Chciałbym stworzyć system, który pozwoli uruchomić motocykl bez konieczności użycia kluczyka. Myślałem, żeby do tego celu wykorzystać moduł nrf podłączony do Teensy 3.6 znajdującego się w motocyklu oraz drugi moduł nrf służący jako pilot/brelok. Teensy po wyłączeniu silnika będzie wchodzić w tryb energooszczędny(Deep sleep) natomiast po wykryciu komunikacji z tym konkretnym nRF zostanie wybudzona(wykorzystam przerwania). Wiem, że takie nRF'y mają spore dystanse dlatego chciałbym jakoś ten dystans móc zmniejszyć, powiedzmy do 50-80m. I tutaj może pytania: - czy dystans komunikacji między takimi nRFami da się zmniejszyć(programowo?) ? -czy schemat takiego systemu ma sens? Da się coś może zrobić lepiej? -jakiej płytki/procesora najlepiej użyć do takiego pilota(musi być energooszczędny) ? Tutaj link do omawianego modułu: https://elty.pl/pl/p/Miniaturowy-modul-z-nRF24L01-2.4GHz-montaz-SMD/1762?gclid=CjwKCAjw44jrBRAHEiwAZ9igKIHTyQq9zrTGPwRNgydnKvBfk6NXBh60JIfxNxD4B28CpPtDnGPXpRoCA0QQAvD_BwE Z góry dziękuję za każdą pomoc.
  5. Chciałem ostatnio zgłębić tajniki mikrokontrolerów za pomocą Mt3620 jednak pojawił się taki problem, że udało mi się wgrać jeden program (migającą diodę) ale jak już za drugim razem chciałem go wgrać (zmieniłem pin gpio zgodnie z dokumentacją na czerwony) płytka przestała być widoczna dla komputera. Nie świeci się żadna dioda (zawsze się jedna świeciła ). Nie wiem czy ja coś źle zrobiłem a może płytka jest uszkodzona. Jeżeli ktoś wiedziałby jak zdiagnozować problem proszę o pomoc.
  6. Dzień dobry mam problem z klonem arduboyem którego sam zbudowałem. Problem występuje podczas kompilacji programu i wyskakuje taki błąd. Gierkę pobierałem z tej strony https://github.com/TEAMarg/ID-46-Arduventure/releases/tag/v1.0 i przeniosłem folder ARDU_AB na pulpit z tymi plikami i podczas wgrywania wywala mi taki błąd. Mikro-kontroler to arduino nano wraz z oled 128x64. Z góry będę wdzięczny In file included from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\io.h:99:0, from c:\program files\windowsapps\arduinollc.arduinoide_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\avr\pgmspace.h:90, from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:28, from C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.h:5, from C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:1: C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp: In function 'void TIMER4_OVF_vect()': C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:4:24: error: 'OCR4A' was not declared in this scope ATMLIB_CONSTRUCT_ISR(OCR4A) ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:4:3: note: in expansion of macro 'ATMLIB_CONSTRUCT_ISR' ATMLIB_CONSTRUCT_ISR(OCR4A) ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp: In member function 'void ATMsynth::play(const byte*)': C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:112:3: error: 'TIMSK4' was not declared in this scope TIMSK4 = 0b00000000;// ensure interrupt is disabled ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:127:3: error: 'TCCR4A' was not declared in this scope TCCR4A = 0b01000010; // Fast-PWM 8-bit ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:128:3: error: 'TCCR4B' was not declared in this scope TCCR4B = 0b00000001; // 62500Hz ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:129:3: error: 'OCR4C' was not declared in this scope OCR4C = 0xFF; // Resolution to 8-bit (TOP=0xFF) ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:130:3: error: 'OCR4A' was not declared in this scope OCR4A = 0x80; ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp: In member function 'void ATMsynth::stop()': C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:152:3: error: 'TIMSK4' was not declared in this scope TIMSK4 = 0; // Disable interrupt ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp: In member function 'void ATMsynth::playPause()': C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:159:3: error: 'TIMSK4' was not declared in this scope TIMSK4 = TIMSK4 ^ 0b00000100; // toggle disable/enable interrupt ^ C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp: In function 'void ATM_playroutine()': C:\Users\macio\Documents\Arduino\libraries\ATMlib-master\src\ATMlib.cpp:424:9: error: 'TIMSK4' was not declared in this scope TIMSK4 = 0; // Disable interrupt ^ exit status 1 Błąd kompilacji dla płytki Arduino Nano.
  7. Pracuję w dziale kontroli zakładu przemysłowego. Pojawiła się konieczność dokonywania i archiwizowania w terenie setek pomiarów dokonywanych suwmiarką w celu ich dalszej analizy. Zlecę z ramienia firmy wykonanie projektu polegającego na stworzeniu urządzenia pomiarowego z popularnej suwmiarki cyfrowej dołączonej do modułu zawierającego: zasilanie na kilkanaście godzin, moduł zegara, moduł karty SD, wyświetlacz ( 4x16) do prezentacji aktualnie dokonanych 2 serii po 16 pomiarów. Pokrętła sterujące: wyboru, zapamiętania, korekcji. Efektem działania szkicu ma być zapamiętanie na karcie pakietów danych: 2 serie po 16 pomiarów, poprzedzone datą i godziną pomiaru, poprzedzone dodatkowymi 3 liczbami do wprowadzenia pokrętłami sterującymi. Doświadczony automatyk może zaproponowac inny sposób gromadzenia danych. To jeden z paru projektów, które mogę zlecić. Ten jest paląco aktualny. Inne mogą byc rozbudowywane przez lata, zgodnie z potrzebami zakładu. Piotr Telefon kontaktowy -696 480 976. Mazowsze zachodnie.
  8. Zdecydowałem się przestawić swój kolejny projekt utrzymany w klimatach retro. Wszystko zaczęło się jakiś rok temu, gdy przypadkowo odkryłem, że sprzedawcy na popularnych chińskim serwisie aukcyjnym posiadają podejrzanie duże ilości podejrzanie tanich układów MOS6502. Wydało mi się to zbyt piękne, aby było prawdziwe. Z ciekawości zamówiłem kilka sztuk, płacąc za nie kilka dolarów i zapomniałem o całej sprawie, licząc na to, że pewnie otrzymam podróbki z wygrawerowanymi laserowo oznaczeniami. Jak bardzo się myliłem! Po uruchomieniu na płytce prototypowej okazały się być prawdziwymi układami MOS6502, wykonanymi w technice NMOS. Zabrałem się więc za projektowanie właściwej płytki, myśląc o stworzeniu swojego własnego komputera pracującego pod kontrolą języka BASIC. Ten projekt ciągle jest w realizacji, ale nie o nim chcę tutaj napisać. W międzyczasie bowiem w mojej głowie pojawił się jeszcze jeden pomysł. Chciałem sprawdzić jak ta rodzina procesorów sprawdza się w roli mikrokontrolera. Albo innymi słowy - byłem ciekaw co by było, gdyby Arduino powstało trzydzieści lat temu. Tym razem od brytyjskiego sprzedawcy na eBay-u zamówiłem kilka sztuk nowszych procesorów WDC65C02, wykonanych w technologii CMOS. Zastosowanie tej wersji układów nie tylko zmniejszało znacznie pobór prądu, ale także upraszczało układ, niwelując konieczność stosowania bufora szyny adresowej. Za punkt wyjścia do tego projektu posłużyła płyta procesorowa mojego ciągle powstającego komputera na MOS6502, która została poddana pewnym modyfikacjom. Przede wszystkim zmieniła się organizacja pamięci - zwiększyłem ilość EPROM-u kosztem RAM-u, dodana została także pamięć EEPROM. Organizacja pamięci wygląda następująco, zaczynając od 0x000: 8 kB pamięci RAM 8 kB przestrzeni adresowej I/O 8 kB pamięci EEPROM 8 kB układ EPROM (dodatkowa pamięć, obecnie niewykorzystywana) 32 kB EPROM (główna pamięć, przechowująca program, dane i adresy wektorów) Urządzenie pracuje z prędkością 4 MHz. Sygnał taktowania pochodzi z jednoukładowego generatora kwarcowego. Układ DS1232 odpowiada za obsługę wejścia RST (likwidacja drgań styków i obsługa power-on reset). Urządzenie posiada także port wyjściowy na 74HCT373 - można za jego pomocą migać dwiema diodami, pozostałe linie są wyprowadzone na złącze IDC-40. Dekoder adresów jest zrealizowany na układach 74HCT138 i 74HCT139. Dodatkowo kilka bramek układu 74HCT00 posłużyło do generowania sygnałów !RD i !WR, wykorzystywanych w układach kompatybilnych z magistralą intela (a więc także zastosowanych pamięciach). Wszystkie sygnały szyny danych, adresowej, te związane z obsługą przerwań oraz wyjścia dekodera adresów są wyprowadzone na złącze IDC-40. Moim zamiarem było stworzenie płytki, która nie tylko będzie mogła służyć do eksperymentów z historyczną rodziną procesorów, ale także będzie mogła posłużyć jako podstawa do budowy jakiegoś użytecznego projektu, poprzez dodanie odpowiednich modułów, na wzór shieldów Arduino - z tą różnicą, że podpinanych bezpośrednio do magistrali procesora za pomocą taśmy IDC-40. Na pierwszy ogień poszła płytka zawierająca wyświetlacz HD44780 (4x20) oraz kilka przycisków tact switch. Wyświetlacz pracuje bezpośrednio na magistrali procesora - do tego w końcu został zaprojektowany. Konieczne było tylko dodanie prostej logiki, generującej sygnały sterujące. Od strony programowej obsługa wyświetlacza w takich systemach jest nawet prostsza niż obecnie - wystarczy jedynie wpisywać odpowiednie wartości pod odpowiednie adresy w przestrzeni adresowej procesora. Przyciski posiadają własny port wejściowy, zrealizowany na 74HCT245. Praca nad tym projektem była dla mnie także okazją do zapoznania się z asemblerem 6502, chociaż prawdę mówiąc większość kodu napisałem w C posługując się kompilatorem cc65, uzupełniając go o asemblerowe wstawki. Co prawda jest to dość prosty kompilator i być może nie nadaje się do pisania gier pod Commodore C64, ale w w tego typu zastosowaniach sprawdza się całkiem nieźle.
  9. Witam forumowiczów, na wstępie wspomnę iż dopiero rozpoczynam swoją przygodę z elektroniką toteż proszę o wyrozumiałość jeśli pojawi się taka potrzeba. Mam do przygotowania urządzenie którego opis przygotowałem poniżej. Urządzenie ma posiadać wbudowaną pamięć w której przechowywane będą pliki audio oraz pliki tekstowe (.txt, .xlsx, .csv, itp.) które powinny mieć możliwość łatwej aktualizacji (np. podłączenie tabletu lub telefonu przez bluetooth lub usb / wifi / wbudowany slot na kartę SIM i aktualizacja przez internet (preferowane jeśli cena nie okaże się zaporowa)). Pamięć nie powinna być potrzebna większa niż 100 megabajtów. Urządzenie ma być zamknięte w niesprecyzowanej jeszcze obudowie z jednym przyciskiem zewnętrznym po naciśnięciu którego na podstawie zawartości plików tekstowych oraz aktualnej godziny odtwarzany ma być wybrany przez algorytm plik audio. Urządzenie powinno być dostosowane do działania w warunkach zewnętrznych. Zasilanie urządzenia ma pochodzić z sieci energetycznej, ewentualnie z baterii połączonej z panelem fotowoltaicznym. W pierwszej kolejności muszę ustalić platformę która będzie najlepsza (najtańsza ze spełniających założenia). Po wstępnym sprawdzeniu rozwiązań doszedłem do wniosku, że najlepszą platformą do realizacji powyższego zadania będzie Arduino ewentualnie Raspberry pi‎. Oba rozwiązania wydają się oferować wszystko czego potrzebuję. Czy mam rację i powinienem wybrać jedno z tych rozwiązań? Może coś przeoczyłem i wspomniane rozwiązania uniemożliwiają realizację któregoś z opisanych wymagań? Czy może jest jakieś inne które spełni wymagania a w realizacji okaże się tańsze? Z góry dziękuję za zainteresowanie i odpowiedź. W przypadku zainteresowania wątkiem chętnie będę go kontynuować ponieważ wybór rozwiązania to dopiero pierwszy krok na długiej drodze do powstania prototypu.
×
×
  • Utwórz nowe...