HomeMade

Pełna wersja: Kontroler syntezy PC01
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3
Witam!
Jakość płytek jest bardzo dobra - szczegóły opisu zależą od materiału jaki się dostarczy i muszę jeszcze nad tym popracować bo niektóre opisy wpadły mi na pola lutownicze. Na szczęście nie mam za wiele elementów na płytce i da się z tym żyć. Czas wykonania to ok. 2-3 dni od momentu zatwierdzenia plików produkcyjnych a samo zatwierdzanie materiału to kilka godzin.
Transport przez DHL (25USD) to 3-4 dni robocze. W sumie, od zlecenia do otrzymania płytek upływa ok. 10-14 dni z czego prawie 2 dni ostatnia przesyłka była w Polsce. Standardem jest doliczenie przy odprawie celnej w Polsce ok. 60PLN cła (za zamówienie na 65$ z przesyłką). Jak się ma pecha to doliczą jeszcze VAT ale to chyba kwestia przypadku. Teraz się obyło bez VAT-u ale jak zamawiałem płytki do NA02 to zostałem właśnie wyróżniony tym zaszczytem :-(
Wczoraj zmontowałem płytkę ale niestety, pierwsze podejście do łączności programatora z procesorem nie udało się. Ze względu na późną porę zawiedziony poszedłem spać :-(
L.J.
Witam!
Jest mały postęp, udało się połączyć z Mega128. Niestety, sygnalizacja MOSI i MISO wyprowadzona jest na innych portach niż w dokumentacji. MOSI to port PE0 (pin 2) a MISO to port PE1 (pin 3). Co z tego, że reszta się zgadza, przynajmniej do sterowania ISP druk jest wadliwy na tych liniach. Dla pewności wysterowałem krótkim programem diodę świecącą - działa ale późna pora więc idę spać w nieco lepszym humorze niż wczoraj ;-)
L.J.
Witam!
Mam kolejny mały postęp w temacie. Udało się uruchomić na nowej płytce to co do tej pory miałem na pająku. Wstawiłem też moduł do typowej obudowy 140/65mm:

İmage

Na razie widać tylko pokrętło impulsatora. W ciągu tygodnia zrobię jakąś porządną atrapę na płytę przednią. Muszę poszukać również małych potencjometrów z długimi ośkami.
Zaczynam więc dopiero teraz "poważne" programowanie bo na razie osiągnąłem tylko to co do tej pory i tak już miałem.
Miałem nadzieję, że prace będą się posuwać szybciej ale obowiązki zewnętrzne nie bardzo pozwoliły i musiałem się także przestawić na procesor Mega128 odkrywając po drodze ponownie Amerykę. Okazuje się, że interface do programowania tego układu wcale nie znajduje się tam gdzie dokumentacja sugeruje (MOSI, MISO, SCK). Tylko sygnalizacja SCK zgadza się a sygnał MOSI działa na pinie 2 (PDI) a sygnał MISO na pinie 3 (PDO). tak więc, złącze do programowania, w części jest nieprzydatne i trzeba sztukować dodatkowe połączenia :-( Na szczęście ten "bypass" potrzebny jest tylko na czas programowania więc nie ma specjalnego znaczenia.

Miałem również dzień przerwy bo, po chwilowym sukcesie przy połączeniu z Mega128 nieopatrznie narobiłem sobie kłopotów. Usiłowałem przestawić bity Fuse na inny sposób działania generatora, ręka mi się omsknęła i wybrało się sterowanie z generatora zewnętrznego :-( Wziąłem więc drugi procesor i nad nim spędziłem dzień zanim ustaliłem o co chodzi:

İmage

Podaję zalecany (na razie) sposób ustawienia bitów Fuse a probelmatyczne było ustawienie Brown-out detection - które powinno byc wyłączone oraz ATMEGA128mode. Okazuje się, że procesory z tej samej serii mogą mieć zupełnie różne ustawienia tych wartości. Dodatkowo, domyślnie chyba, mają one ustawione źródło sygnału zegara na rezonator zewnętrzny - przeciwnie niż większość procesorów Atmel i nie da się połączyć z procesorem bez kwarca w gnieździe.
Reasumując, układ musi być programowany wstępnie z zamontowanym kwarcem (najlepiej 8MHz). Kolejno trzeba przestawić tryb Compatibility 103 na ATMEGA128 oraz wyłączyć Brown-out detection. Ja na razie przestawiłem też zegar na wewnętrzny generator 8MHz do czasu jak nie skończę programować układu. Wtedy wrócę do kwarcowego zegara zewnętrznego
L.J.
Witam,

Leszku, ten Twój zapas atmeg128 jest nowy, czy kupiony "z promocji" ? Żadna nowa atmega domyślnie nie ma ustawionego taktowania zewnętrznego. Taktowanie jest z wewnętrznego generatora RC. Nie spotkałem się jeszcze z nowymi atmegami, które miały by domyślnie różnie ustawione fusebity.

Co do programowania. Dokumentacja atmegi128 mówi, że przy programowaniu ISP piny MOSI oraz MISO są przemapowane na PDI ( MOSI) - port PE0 oraz PDO (MISO) - port PE1. ( strona 300 dokumentacji ). Ale do tego juz doszedłeś...

Z ciekawości również zaglądnij dodokumentacji atmegi128 od strony 286, gdzie są podane domyślne ustawienia fusebitów nowych atmeg128.

Widzę, że projekt się ładnie rozwija - wytrwałości życzę, bo u mnie z tym różnie.
Witam!
Kupiłem oddzielnie procesory i płytki do nich (zdjęcia wyżej) i wszystko wyglądało na nowe (choć faktycznie cena na portalu była interesująca). Wszystkie Atmel-e jakie do tej pory stosowałem startowały zawsze z wewnętrznego generatora RC dlatego ździwiłem się dlaczego ten wymagał na starcie kwarcu. Nie mam dużego doświadczenia z tym procesorem więc to na razie wstępne wrażenia a ponieważ mam jeszcze 3 takie egzemplarze to sprawdzę później jak w nich jest z ustawieniami początkowymi.
Oczywiście, nie czytałem dokumentacji do Mega128 :-( ograniczając się jedynie do sprawdzenia czy dodatkowe porty mają jakieś ograniczenia w podstawowym zastosowaniu i nigdy nie przyszłoby mi do głowy, że opis MOSI nie oznacza MOSI ;-)
Przy okazji dodam, że przeszedłem w tym projekcie na zasilanie 3.3V za względu na obawę, że mogę uszkodzić wyświetlacz. Działa on wprawdzie do 5V ale z dziwnych powodów touch panel ma wewnętrzną stabilizację i działa z napięciem 3.3V. Mając wszędzie 3.3V nie narażam się na problem z tej strony a wszystkie inne układy, poza procesorem, działąją również z mniejszym napięciem. Jednocześnie sygnalizacja przy zasilaniu 3.3V działa z układami TTL zasilanymi z 5V więc nie ograniczam w żaden sposób połączenia PC01 z "resztą świata". Z powodu zasilania z 3.3V konieczne jest wyłączenie detekcji Brown out. Układ się programuje bez błędów ale nie chce działać pomimo tego, że poziom detekcji Brown-out to 2.7V a więc daleko do 3.3V.
jak pisałem wcześniej, sam żałuję, że temat posuwa się tak wolno ale teraz, kiedy walkę z nowym procesorem mam już za sobą to liczę, że adaptacja, kiedyś już "wynalezionych", kawałków programu pójdzie łatwiej niż pisanie ich od nowa.
L.J.
Witam!
Prace postępują powoli ale na szczęście do przodu.
Niestety, słaba znajomość wyświetlacza i jego użycia powoduje, że mam od czasu do czasu problemy z programowaniem. Ostatnio kilka godzin dochodziłem dlaczego z jakiś powodów nie mogłem zapisać nic z prawej strony ekranu, napis pojawiał się od pewnego momentu z jego lewej strony kompletnie rujnując to co tam już wcześniej zaprogramowałem.Okazało się, że w głównym programie zadeklarowałem zmienną o tej samej nazwie, która występowała w bibliotece do obsługi wyświetlacza (zmienna pomocnicza o nazwie "temp"). Po kilku godzinach dociekań, co trwało kilka dni, zaczynając od sprawdzenia czy nie uszkodziłem wyświetlacza, przez próbę ściągnięcia nowszej wersji biblioteki doszedłem, że problemem może być właśnie duplikacja nazw. Ale cały problem polegał na tym, że w bibliotece zmienna miała rozmiar 2 bajtów (word) a w programie zadeklarowałem ją jako bajt. Powodowało to, że biblioteka działała dla tej zmiennej na danych 8 bitowych zamiast 16 bitowych i wszystkie pixel-e o pozycji większej niż 255 (ekran ma rozmiar 320) "zawijane" były do pozycji modulo 255 i pojawiały się z lewej strony ekranu.
Niemniej, programuję teraz najmniej widowiskową część a więc ustalenie zależności na ekranie, definicję napisów, dopisuję brakujące fonty i staram się budować ogólną strukturę programu.
Udało mi się już uruchmomić klucz elektronowy z wyświetlaniem prędkości w grupach na minutę, działa mi również impulsator a więc podstawowy element, poza ekranem dotykowym, do dokonywania zmian w systemie. Dopracowałem też atrapę i wkrótce puszczę ją do produkcji. Prawdopodobnie w przyszłym tygodniu będę mógł ostatecznie zdecydować, że płytki jakie mam nadają się do montażu i jeśli ktoś, poza już zgłoszonymi, chciałby zacząć montaż to będzie to możliwe.
L.J.
Witam!
Mam kolejny postęp w pracach choć muszę przyznać, że na ich tempo ma olbrzymi wpływ huraganowy sezon remontowy :-( . Niestety, huragan "Danuta" krąży i raczej nie zapowiada się, że zniknie przed jesienią. Trzeba będzie więc łapać chwile spokoju i maksymalnie je wykorzystać. Ale łatwo mówić kiedy robota idzie jak nigdy z oporami.
Niemniej zrobiłem już trwałą atrapę z plastykowej folii samoprzylepnej -> tu widoczna jest atrapa na tle folii z wydrukiem:

İmage

Na razie swój znak wydrukowałem na oddzielnym kawałku folii i zastanawiam się czy znak będzie potrzebny na atrapie skoro będzie można zaprogramować go na ekranie.
Najważniejsze jednak, że uruchomiłem sterowanie generatora AD9850 i przypuszczam, że moduł 9851 również powinien działać. Działa również powielacz częstotliwości na układzie ICS502. Nie sprawdzałem jeszcze wzmacniacza AD8014 ale z nim nie powinno byc problemu.
W tej chwili więc zostaje oprogramowanie nieprzebranego zakresu drobiazgów porządkujących program.
Postaram się możliwie szybko zrobić rysunek mechaniki - mocowania kontrolera na płycie czołowej obudowy 140x65 i w zasadzie mógłbym zainteresowanym udostępnić płytki do samodzielnego montażu. W komplecie będzie oczywiście atrapa z folii. Proszę więc o ewentualny kontakt przez pocztę forum lub leszekjed@wp.pl. Muszę jednak uprzedzić, że należy na płytkach wykonać kilka drobnych zmian jak na przykład dolutowanie opornika i wykonanie obejścia zasilania dla AD8014.
L.J.
Witam!
Zrobiłem rysunek mechaniki płyty czołowej dla obudowy 65x140, która występuje w trzech długościach więc można będzie wykorzystać odpowiednią jej wielkość dla swojego większego lub mniejszego rozwiązania na bazie PC01.

İmage

Obszary zaznaczone na szaro należy oczywiście usunąć. W dolnej części rysunku podałem wymiary tulejek dystansowych niezbędnych do tego aby wyświetlacz zlicować z płytą czołową obudowy.
L.J.
Witam!
Udało mi się zrobić niewielki postęp w pracach. Po pierwsze mam już pełne rozeznanie w hardware i wykrytych błędach, choć na szczęście do łatwej korekty w razie potrzeby.

İmage

Na początek, dla porządku rysunek konfiguracji zwor w zależności od wybranego układu generator/wzmacniacz/mnożnik częstotliwości. Dla przykładu, pełna ścieżka obejmująca wzmocnienie sygnału generatora przez AD8014 a następnie jego powielenie to założenie zwor P3, P1 i P7. Położenie zwor na rysunku, z grubsza, odpowiada ich fizycznemu położeniu na płytce drukowanej. Rysunek przyda się w przyszłości jak znajdę czas na zebranie wszystkiego w jeden spójny manual.

İmage

Dla porządku jeszcze raz przywołam ekran podstawowy. Taki będzie jego kształt ostateczny. Pusty prostokąt pokazywał będzie pasek siły sygnału przy odbiorze oraz moc/swr podczas nadawania. Pojawiło się pole rodzaju emisji (w tym przypadku CWE oznacza pracę CW z kluczem elektronicznym). Działa sterowanie krokiem sterowania, zmiana trybu pracy, zmiana częstotliwości podstawowej na zapasową (F2) oraz wejście do trybu setup-u (klawisz M w lewym, dolnym rogu). Do zaprogramowania są pozostałe dolne klawisze (przełączenie pasma, praca RIT oraz praca z pamięcią częstotliwości - zarówno zapamiętanie jak i przywołanie z pamięci).

İmage

Oprogramowałem dwa podstawowe okna setup-u. W pierwszym ustawia się częstotliwość pośrednią, rodzaj użytego generatora, działanie tonu przy korzystaniu z ekranu dotykowego oraz opóźnienie przy pracy CW.

İmage

W drugim oknie ustawia się mnożnik częstotliwości, jeśli działa układ ICS, programuje się nazwę stacji na ekranie podstawowym, ustawia się moc odniesienia dla miernika mocy (zakładając kwadratową zależność mocy od mierzonego napięcia) oraz programuje się prędkość pracy klucza po włączeniu urządzenia.
Do zrobienia jest jeszcze w kolejnym ekranie setup-u przypisanie dla każdego pasma znacznika czy będzie używane a jeśli tak, i jeśli urządzenie działa z pośrednią, to czy pośrednia jest dodawana czy odejmowana od heterodyny (lub odwrotnie). Trzeba będzie również oprogramować generator na SI570 - w tym detektor adresu i ustawienie częstotliwości generatora wewnętrznego dla tego układu.

Roboty dużo, czasu mało. Szacuję zaawansowanie prac na mniej więcej połowę :-(
Najszybciej będzie do sprawdzenia układ dla urządzenia DC, co, mam nadzieję, zaprezentuję jak tylko będzie to możliwe.

L.J.
Witam!
Zmontowałem moduł dla generatora SI570 i wstępnie go przetestowałem. Działa co najmniej detekcja adresu układu. Układ ma wyniary jak generatory AD9850/51 czyli ok. 25/45mm i działa w tym samym gnieździe

İmage

Na płytce (patrz post #7), oprócz układu SI570 znajduje się również dzielnik 7474
Poprawiłem nieco główny ekran wprowadzając ikony zamiast liter w dolnej belce sterującej.

İmage

Idąc od lewej kolejne pola to: setup, RIT, pasmo, zapamiętanie częstotliwości do pamięci oraz przywrócenie częstotliwości z pamięci.
Uporządkowałem również setup układu, który teraz zawiera 3 ekrany:


İmage

Ekran pierwszy to idąc od góry:
- definicja pasma (czynne/nieczynne, pośrednia wyżej/niżej od heterodyny)
- ustawienie wartości częstotliwości pośredniej w MHz
- wybór typu generatora (na razie to AD9850 i 51 oraz SI570)
- możliwość włączenia lub wyłączenia tonu podczas używania ekranu dotykowego
- czas opóźnienia N/O przy pracy CW

İmage

Na drugim ekranie ustawiane są:
- dzielnik częstotliwości np dla stosowania w urządzeniach DC (od 1/4, 1/2, 1, 2, 3, 4, 5)
- programowanie znaku stacji
- programowanie miernika mocy (jednopunktowe - moc dla napięcia 1V)
- programowanie miernika siły sygnału S z oddzielnym ustawieniem poziomu w mV dla każdej wartości S od 1 do 9 a także dla 9+(+10dB) i 9++(+20dB)
- programowanie domyślnej prędkości klucza elektronowego jaka działa tuż po włączeniu urządzenia

İmage

Trzeci ekran setup obsługuje na razie wyłącznie układ SI570 i zawiera:
- detekcję adresu SI570
- dostrojenie częstotliwości wewnętrznej generatora kwarcowego SI570

Działanie niektórych funkcji urządzenia, głównie w części dotyczącej setup

zobaczyć można na krótkim filmie.

- pierwszy obraz to ekran głównu gdzie początkowo znak stacji to SP0ANY co zmieni się w dalszej części filmu
- na początku, z pomocą ekranu przechodzę do pierwszego ekranu setup
- wybieram pierwszą linię, która definiuje pasma i podzielona jest na pole pasma (z lewej) i pole jego funkcjonalności w kontekście posredniej. Pasmo może być wyłączone a jeśli działa to pośrednia może być dodana odjęta lub heterodyna odjęta od pśredniej
- kolejno wybieram linię z częstotliwością pośrednią i zmieniam jej wartość z krokiem ustawionym na ekranie głównym (bieżąco 100kHz) ale możliwość doboru ma dokładność 10Hz
- kolejno przechodzę do następnego ekranu setup gdzie programuję znak, domyślnie ustawiany jako SP0ANY na własny: SP6FRE aktywując odpowiednie pole przez dotyk i zmieniając wartość tego pola impulsatorem lub za pomocą ekranu (dla ostatniej litery znaku)
- następnie przechodzę do linii programowania wskaźnika siły sygnału S. Linia ta ma dwa pola, pole wartości S oraz odpowiadającej jej wartości napięcia w mV i obie te zmienne dają się programować
- po przejściu do trzeciego ekranu setup do dyspozycji są dwie funkcje dla SI570
- funkcja detekcji adresu układu SI570 wykrywa go przez przegląd adresacji od 0 do 254 co sygnalizowane jest czerwonym paskiem postępu, który po wykryciu adresu zmienia się w zielony a końcowym etapem tej procedury jest wypisanie wykrytego adresu układu, który będzie od tej pory używany do sterowania
- druga pozycja na ekranie to regulacja częstotliwości generatora kwarcowego SI570 jaka jest uwzględniana w obliczeniach przez co częstotliwość generatora jest bardziej dokładna. Dobór tej częstotliwości polega na jej obniżeniu lub podniesieniu w taki sposób aby mierzona na wyjściu częstotliwość umowna (np. 10 lub 20MHz) była w miarę dokładna
- ostatni obraz to ponownie ekran główny ze zmienionym znakiem na SP6FRE.

Ponieważ układ przedstawia już pewną funkcjonalność to szukam chętnych, którzy chcieliby zmontować układ i uczestniczyć w końcowej fazie jego programowania jako testerzy działania.
L.J.
Witam!
W przerwie programowania dorabiam też mechanikę urządzenia, które ma w zamyśle być systemem modułowym, z możliwością łatwego eksperymentowania.

İmage

W tym celu wykonałem metodą termotransferu płytkę bazową do posiadanej obudowy (płytka ma wymiar ok. 14/13cm). Niestety, przyzwyczaiłem się do ładnie wykonanych płytek dwustronnych z firmy PCB Way i powrót do technologii ręcznej okazał się bolesny bo zrobiłem kilka nieistotnych błędów :-( Na płytce bazowej zamontowałem elementy zasilacza oraz gniazda na inne płytki funkcjonalne.

İmage

Płytka bazowa łączy się z układem PC0-1 za pomocą złączy krawędziowych lutowanych od spodu.

http://lx-net.pl/hr/pc01/main03.JPG

Obie płytki łączą się przez wsunięcie pinów na PC01 z gniazdem na płytce bazowej i w ten sposób cała sygnalizacja z PC01 będzie przekazana na płytkę bazową. Niestety, ze względu na jednostronny druk, trzeba będzie wykonać pewną ilość zwor aby tą sygnalizację doprowadzić do wszystkich gniazd. Niemniej, taki system w istotny sposób redukuje ilość połączeń kablowych niezbędnych do doprowadzenia do konkretnej płytki funkcyjnej. Zostaną jedynie połączenia do i z potencjometrów i połączenie z mikrofonem i głośnikiem.

İmage

Płytka bazowa w obudowie pozwoli na łatwe dołączenie do systemu modułów funkcjonalnych przez wsunięcie ich lub wysunięcie z gniazda.
W sumie można będzie wstawić do 7 płytek z czego trzy z 40 stykami oraz cztery z 50 stykami do połączenia z sygnalizacją PC01. Przewidziałem kilka połączeń także do zastosowania między modułami funkcjonalnymi.

İmage

Na tylnej ściance zamontowałem transformator o mocy ok. 12W dlatego zakładam, że urządzenie będzie w stanie wystawić na wyjściu sygnał o niewielkiej mocy - rzędu 1W.

İmage

Kolejny widok na połączenie płytki PC01 z płytką bazową. Wspiera się ona (płytka bazowa) o piny płytki PC01 ale przewiduję podparcie jej do obudowy w 3 lub w 4 punktach na tulejkach 5mm.

İmage

W tylnej ściance znajdują się otwory na gniazdo zasilania, klucz, mikrofon, słuchawki oraz sygnał w.cz.

İmage

Jeszcze jedno zdjęcie z tej serii pokazujące wnętrze urządzenia bez płytek funkcyjnych. Szukam pomysłu na ustabilizowanie położenia tych płytek. Na razie myślę o tulejce gwintowanej typu meski - żeński, łączącej płytki w ich górnym rogu lub dodatkowym kątowniku z nacięciami z możliwością mocowania do tylnej ścianki obudowy.

L.J.
Stron: 1 2 3
Przekierowanie