HomeMade

Pełna wersja: Synteza SPHM DDS
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
(06-05-2012 19:55)SP5FCS napisał(a): [ -> ]... Obsługę klawiszy zrobię na jednym przetworniku ADC aby nie tracić pinów procesora. Przy tej metodzie bez problemu możemy uzyskać 10...16 klawiszy sterujących.

... miałem jeszcze wspomiec własnie o tych klawiszach ADC... bo przypomniało mi się że tez były wspominane ... tym bardziej że Adam wyprowadził dwa dodatkowe ADC z kontrolera ekranu...

dla zainteresowanych jak to można sprzętowo zrobić można podejrzeć na tej syntezie z drugiego postu
[attachment=5269]

pozwala to tez na dublowanie przycisków i umieszczenie w ulubionych miejscach... wada są problemy z realizacja "wielokrotnego" przyciskania przycisków... ale nie ma idealnej metody...
Tak dla ciekawości - metoda pomiaru napięcia z klawiatury jest stosowana w firmowych odbiornikach samochodowych - dwa piny z panelu czołowego. Także stosowana wtedy gdy się chce oszczędzić piny uP. Niestety mało popularna jeszcze...
(06-05-2012 21:01)SQ8NVF napisał(a): [ -> ]Tak dla ciekawości - metoda pomiaru napięcia z klawiatury jest stosowana w firmowych odbiornikach samochodowych - dwa piny z panelu czołowego. Także stosowana wtedy gdy się chce oszczędzić piny uP. Niestety mało popularna jeszcze...

także wykorzystywały to starsze komercyjne rejestratory VHS-CCTV :-) mozna było dowolnie nim sterować "za pomoca rezystorów" ...

wada jest taka że trzeba ciagle "mierzyć" klawisze... .... ale Xmega ma tak szybki przetwornik e nie ma problemu

ZALETA ... mozn anapisac funkcje UCZENIA się klawiszy ;-) i nie ma problemu z rozrzutem rezystrów...

WADA - trzeba odfiltrować wcz by nie szalało... ..
Obsługę klawiszy poprzez przetwornik ADC stosuję od czasu kiedy procesory zaczęły takowe posiadać na swoim pokładzie (pierwsze AVR-y z ADC). To bardzo wygodne i oszczędne rozwiązanie. Nie widzę problemu również od strony obsługi programowej, zapuszczam Timer na przerwaniu 10ms, co 10 ms robię pomiar ADC i zmieniam kanał wejściowy. Zbieranie danych pomiarowych to niezależny wątek pracujący "obok" programu głównego. W każdej chwili mam dostęp do gotowych danych pomiarowych, w tym aktualny stan klawiatury (tak w dużym uproszczeniu).

Skończyłem testowanie funkcji związanych z ustawianiem i zapisem parametrów konfiguracyjnych do EEPROM-u procesora. Ekran konfiguracyjny na pierwszym zdjęciu. Po lewej stronie klawisze nastaw dla układu Si570 i parametrów przemiany. Po prawe stronie klawisze do kalibracji touch panela [TOUCH] oraz przywracania nastaw początkowych w eepromie [EEPROM] + wyjście [QUIT].
Drugie zdjęcie pokazuje sposób wyświetlania i modyfikowania nastawy (na polu klawisza).

Niestety było z tym sporo pracy, ponieważ sterownik zapamiętuje kilkaset parametrów. Na każdym paśmie mamy dwie niezależne konfiguracje radia CFG1, CFG2, czyli 20 pełnych konfiguracji radia (10 pasm*2). Każda konfiguracja zawiera wszystkie nastawy częstotliwości (TRX, RX, RX2), po 10 pamięci częstotliwości oraz takie nastawy jak modulacja, AGC, nr. anteny, tłumiki, szerokość filtru, krok przestrajania. Wszystkie parametry są zapisywane do pamieci EEPROM i przywracane po włączeniu radia.

Kolejny etap to obsługa Si570 i portów PCF8574. Soft jest już napisany trzeba go tylko uruchomić i przetestować.
(06-05-2012 21:09)SP3SWJ napisał(a): [ -> ]WADA - trzeba odfiltrować wcz by nie szalało... ..

To o wiele prostsze zadanie niż dla tradycyjnej metody skaningowej. Duży kondensator blisko przetwornika "załatwi temat". A ja pomyślałem o wykorzystaniu pilota RC zamiast pełnej klawiatury. Zawsze lubiłem słuchać radia niekoniecznie przy nim siedząc...
Witam i pozdrawiam wszystkich forumowiczów !
Tak z ciekawości chciałem zapytać w jakim języku powstaje oprogramowanie opisywanej tu syntezy?
Drugi pytanie, czy ten wyświetlacz ma jakiś typowy sterownik graficzny i czy są dostępne do niego gotowe biblioteki graficzne?
Jeszcze rok temu jak budowałem easyATU odpowiedz mogła być tylko jedna: w świecie mikroprocesorów "Król jest tylko jeden - assembler".
Niestety stopień skomplikowania urządzeń jest coraz większy, rośnie ilość funkcji, oczekiwania są coraz większe a czas na realizację coraz krótszy. W nowej rzeczywistości stary król nie "wyrabiał" i musiał abdykować. "Umarł Król, niech żyje Król" a nowym władcą w mojej krainie mikroprocesorów został język C. Czas pokaże czy się sprawdzi.

Przepraszam Kolegów za ten wstęp ale sterownik syntezy jest bardzo dobrym przykładem jak potrzeba rozwiązania konkretnego problemu wymusza i uzasadnia wybór języka programowania. Jako zagorzały fan assemblera w tym projekcie musiałem uznać zalety i przewagę języka C. Przetwarzanie obiektów graficznych, duża ilość parametrów, struktury danych, obsługa wielu zasobów procesora, nowa wersja procesora to aplikacje pozwalające wykorzystać siłę i możliwości języka C.
Oprogramowanie powstaje w komercyjnym środowisku CodeVisionAVR ver 2.05.5 w języku C.
Kompilator nie obsługuje długiego formatu long long int dlatego funkcje obliczania nastaw dla Si570 zostały napisane w assemblerze (format 64 bity).

Zastosowany wyświetlacz TFT nie posiada typowego sterownika graficznego stosowanego w innych wyświetlaczach dlatego nie znajdziemy do niego gotowych bibliotek graficznych. Wyświetlacz oprócz rozkazu ustawiania adresu pixela i zapisu koloru pixela nie ma żadnych innych funkcji. Wszystko co generuję na wyświetlaczu (fonty, klawisze, tekst) zrobiłem od podstaw w oparciu o funkcję zapalania pixela. Zaletą tego wyświetlacza jest jego ogromna szybkość (tylko 8bit na kolor), pracuje poprawnie z Xmegą na pełnym zegarze 56Mhz (kilkanaście razy szybciej niż wynika z danych katalogowych).
Po wczorajszej dyskusji z Kolegami z Grupy Husar na temat syntezy przebudowałem obsługę funkcji SPLIT. Pierwotnie mieliśmy możliwość przestrajania tylko częstotliwości odbiornika. Aby zmieniać częstotliwość nadawania musieliśmy zamienić częstotliwości funkcją SWAP.

Obecnie w trybie SPLIT mamy możliwość przestrajania obu częstotliwości bez konieczności używania klawisza SWAP. Wybór modyfikowanego VFO odbywa się poprzez klawisze na pionowym menu po prawej stronie ( VFOT-nadajnik, VFOR-odbiornik ). Po włączeniu splitu aktywne jest VFOR pozwalające przestrajać odbiornik, częstotliwość nadawania jest taka jak przed splitem. Różnica częstotliwości TX-RX pokazywana jest jako XIT ze znakiem.
Na pierwszy zdjęciu mamy aktywne VFOR podświetlone na czerwono i odbiornik przestrojony 5kHz wyżej (XIT - 05.00).
Na drugim zdjęciu mamy aktywne VFOT i przestrojony nadajnik 5kHz w górę (XIT +05.00). Podczas przestrajania nadajnika cały czas słuchamy na częstotliwości odbioru.
Klawisz T=R służy do zrównania częstotliwości nadajnika z odbiornikiem.
Klawisz R=T służy do zrównania częstotliwości odbiornika z nadajnikiem.
Klawisz SWAP służy do zamiany częstotliwości nadajnika z odbiornikiem.

Po wyłączeniu splitu radio pozostaje na częstotliwości nadawania, częstotliwość odbioru pozostaje w pamięci sterownika.
Ponowne włączenie trybu SPLIT przywraca poprzednią nastawę odbiornika a wartość XIT jest przeliczona na podstawie różnicy częstotliwości pomiędzy Tx-Rx. Takie rozwiązanie ułatwia również słuchanie na dwóch częstotliwościach, bez splitu na naszej częstotliwości nadawania, ze splitem na częstotliwości nadawania naszego korespondenta.

Konstruktywne uwagi i propozycje jak najbardziej wskazane, zapraszam do dyskusji.
Jeśli to możliwe bez znacznego rozbudowania programu proponowałbym Adamie w wyświetlanej grafice następujące zmiany:
Określenie wyraźne, że górna linia to częstotliwość - Tx a dolna – Rx.
Zlikwidowanie „klawiszy” VFOT i VFOR a zastąpienie ich poprzez dotknięcie w pole wyświetlanej częstotliwości Tx lub Rx, które to pole po aktywowaniu zmieniało by kolor.
Przesunięcie wskaźników AT, Tx, Fx, Fa, Rx w miejsce po zwolnionych klawiszach VFOT i VFOR. Pozdrawiam, Janusz.
Nie wiem czy słusznie czy nie ale przyjąłem takie założenie że częstotliwość nadawania zawsze jest w górnym wierszu a odbioru w dolnym (dla SPLIT i RX2). Informacja o tym co jest wyświetlane jest właśnie na tych małych lampkach (TR, TX, RX, R2).

Janusz, pomysł likwidacji klawiszy VFOT, VFOR i zastąpienie ich przez dotykanie pola częstotliwości jest fajny. Niestety w tej chwili pola dotykowe na odczytach częstotliwości są już zajęte.
Dotknięcie górnego pola częstotliwości wywołuje menu pasm i uaktywnia funkcje zmiany pasma.
Dotknięcie dolnego pola częstotliwości wywołuje menu obsługi pamięci (drugie zdjęcie) a w trybie splitu menu splitu.

Jedyna możliwość to rezygnacja z możliwości zmiany pasma podczas aktywnej funkcji SPLIT. Wtedy pola dotykowe na odczytach częstotliwości mogę wykorzystać do przełączania przestrajania nastawy nadajnik/ odbiornik. Konieczna byłaby jeszcze sygnalizacja która częstotliwość jest zmieniana np. podświetlenie bardziej jaskrawym kolorem.

Przesuniecie lampek sygnalizacyjnych na pola klawiszy nie jest możliwe ponieważ miejsce po prawej stronie wyświetlacza jest zarezerwowane na klawisze MENU w zależności od trybu pracy radia (menu: anten, tłumików, modulacji, pasm, konfiguracji, pamięci, splitu, rx2, dsp, skrzynki antenowej).
Na pierwszym zdjęciu po prawej stronie MENU zmiany pasm, na drugi MENU obsługi pamięci.
Przekierowanie