Mały, prosty mikrokontroler

Zabrałem się ostatnio za kończenie paru projektów krótkofalarskich. Jest wśród nich m.in. transceiver Kajman. Radyjko w prawie gotowe, zabudowane w obudowie. Właściwie zostało mi wykonanie kilku drobnych poprawek na płytce i dobudowanie VFO.

Gdy zaczynałem je składać lata temu, zakładałem wykorzystanie analogowego VFO z obwodem LC. Teraz jednak doszedłem do wniosku, że nie ma to sensu, skoro mam dostęp do (względnie) tanich modułów DDS.

Niestety wewnątrz obudowy jest relatywnie mało miejsca. W związku z tym na panelu czołowym zmieści się tylko moduł wyświetlaczy siedmiosegmentowych na max7219, a i sam układ DDS musi być niewielki - niewiele większy od samego modułu z ad9850.

Zacząłem więc projektować własną płytkę, Miejsca na PCB jest naprawdę niewiele, rozglądam się więc na jakimś małym mikrokontrolerem SMD.

Wymagania są nastepujące:

1) Jak najprostsza aplikacja i jak najmniej "zbędnych" pinów. Najlepiej byłoby, gdyby trzeba było podłączyć tylko VCC, GND i ewentualnie reset. 2) Możliwie jak najprostszy interfejs programowania. Nawet przy sześciopinowym gniazdku ISP w AVR-ach trzeba kombinować z prowadzeniem ścieżek, a to marnuje sporo miejsca na płytce. 3) W miarę stabilny wbudowany generator RC. Kwarc zajmuje trochę miejsca, a do tego zastosowania chyba nie potrzebuję większej stabilności. MCU będzie musiał jedynie obsługiwać enkoder obrotowy oraz komunikację szeregową z max7219 i samym ad9850. 4) Potrzebuję co najmniej 10 pinów GPIO (trzy dla enkodera obrotowego, trzy dla max7219 oraz cztery dla DDS-a)

Jakieś sugestie? :)

Reply to
Atlantis
Loading thread data ...

Załaduj do niego bootloader, choćby ten z Arduino.

Reply to
heby

W dniu 2022-01-11 o 10:04, Atlantis pisze:

Zerknij na ATtiny 0-series lub 1-series. Spełniają wszystkie Twoje wymagania. Debug/programowanie na jednym pinie. Wbudowany generator. GPIO w zalezności od wersji od 5 do 21.

Reply to
Bool

Normalnie bym poradzil "zmien obudowe" ... ale moze np zmienic wyswietlacz na jakis LCD/OLED ?

A czestotliwosci z DDS nie musisz dobrze odfiltrowac? To tez moze wymagac miejsca.

Jest jeszcze wersja VFO z PLL ...

a nie masz czestotliwosci pasujacej z kwarca DDS ?

to z arduino nano nie przypasuje?

J.

Reply to
J.F

Zmiana obudowy nie ma sensu, skoro radio jest już umieszczone w całkiem, ładnej, kompaktowej obudowie. Wyświetlacz, potencjometry i gniazda są już zamocowane. Mały wyświetlacz OLED w niczym mnie nie ratuje, bo miejsce zwolnione na panelu nie będzie się dało wykorzystać pod moduł DDS. Na VFO wygospodarowałem trochę miejsca obok głównej płytki, za ekranem. Miejsca nie ma wiele bo zakładałem, że docelowo wejdzie tam analogowe VFO. W międzyczasie zmieniła się jednak koncepcja.

Tak, gdybym budował od podstaw układ ze scalakiem DDS. Ja jednak wykorzystuję gotowy moduł, który (z tego co mi wiadomo) już posiada filtry na wyjściu. W każdym razie z powodzeniem stosowałem takie moduły w innych konstrukcjach, nie stosując dodatkowego filtrowania.

Tak, wiem. Jednak na razie skłaniam się ku DDS. AD9850 był już przetestowany z Kajmanem przez kilku konstruktorów. Na jednym forum trafiłem na informację, że ktoś miał problemy z PLL w tym transceiverze.

Moduł mnie ma wyprowadzonego żadnego sygnału zegarowego. Poza tym DDS jest taktowany znacznie wyżej - coś koło 125 MHz.

ZDECYDOWANIE za duże. Ja szukam jak najmniejszego scalaka SMD. ;)

Reply to
Atlantis

W dniu 2022-01-11 o 10:04, Atlantis pisze:

Zdążyłem już zapomnieć, że kiedyś tak się programowało. Od nastu lat używamy Xmega. Do programowania robię 3 dziurki. Wtykamy w to na chwilę kołki rastru 1,27. Dziurki (w trójkąt) są rozsunięte o kilka milsów względem prawidłowej pozycji więc kołki są rozprężane i łapią kontakt. Złącze kładę tuż koło odpowiednich 2 pinów procka więc ścieżek tyle co nic (3-cia dziurka to GND więc jest wszędzie - 0 ścieżek). P.G.

Reply to
Piotr Gałka

Atmege 328P kupisz w róznych obudowach. MLF/32 QFN32 ma chyba 5x5 mm. Są chyba jeszcze wersje 28 pinowe Pewnie z dostępnością będzie cięzko...

c.

Reply to
Cezar

Nie calkiem rozumiem. Potrzebujesz modul DDS, wyswietlacz, sterownik wyswietlacza i uC. Jak wyswietlacz bedzie maly objetosciowo, to latwiej gdzies uC upchac.

Dziwne. Ale moze trzeba postawic na nowoczesnosc.

No to trzeba procka 150MHz :-)

Ale tam jest Atmega 328 - duza nie jest. Szczegolnie w takiej wersji

formatting link
mniejsze niz gniazdo mini USB wersja 32MS1 ma 5x5x1 mm - i jeszcze sie przeprosisz z duza obudową :-)

J.

Reply to
J.F

Wyświetlacz zajmuje inną pulę dostępnej przestrzeni - jest zamontowany na płycie czołowej. Pod VFO wygospodarowane jest trochę miejsca wewnątrz obudowy, oddzielonego ekranem od głównej płytki. Miejsca jest niewiele, dlatego zależy mi na względnie prostym i małym MCU, żeby projektowana płytka miała możliwie mały rozmiar i dała się wcisnąć w to przygotowane miejsce.

Na panelu czołowym przestrzeni jest na tyle mało, że nawet gdybym odzyskał trochę miejsca wciskając mniejszy wyświetlacz, to i tak nijak nie wcisnę tam PCB z DDS-em. Nie tędy droga.

I od biedy pewnie skorzystam z czegoś w obudowie QFN/MLF. Liczyłem jednak na to, że uda się znaleźć coś z jeszcze prostszą aplikacją. Atmega328 potrzebuje chociażby trochę kondensatorów filtrujących dookoła.

Reply to
Atlantis

wtorek, 11 stycznia 2022 o 12:42:54 UTC+1 Atlantis napisał(a):

A jaki uC nie potrzebuje choćby 100n na zasilaniu w bezpośredniej bliskości?

max7219 wydaje się fajniutki, ale nie do radia - będzie hurczeć, furczeć i burczeć. A w ogóle jak miała być na ten wyświetlacz podawana częstotliwość w wersji z VFO? Chyba że to wszystko to autorskie dodatki, o czym może świadczyć impulsator zamiast gałki kręcącej kondensatorem. A czemu trzy piny na enkoder - z przyciskiem jest?

Dawno temu zrobiłem program na ATmegę168 realizujący UI+syntezer dla transceivera z DDS na AD9850. Ale 7 wyświetlaczy 7-segmentowych na osobnych 4094 - przemiatanie odpada, za bardzo zakłóca.

Wykorzystuje wszystkie piny - choć RS232D jest tak na wyrost zostawiony (i dlatego też jest rezerwa pod zewnętrzny kwarc).

4 lub 5 przyciskowa klawiatura, impulsator, wejście PTT (żeby móc nadawać na innej częstotliwości niż odbierana), 2 LEDy (pokazująca, który generator jest aktywny oraz włączenie SPLIT), 2 na typ emisji i piszczyk.

Są 2 "generatory" (czyli częstotliwości), zmienny krok przestrajania, 4 typy emisji, pamięć 50 kanałów, ograniczenie częstotliwości do pasm amatorskich i tryb SPLIT - odbieranie na jednej, nadawanie na drugiej częstotliwości. Można też naciśnięciem przycisku przepisać wartość częstotliwości "aktywnego" generatora do "pasywnego". W trybie pracy z pamięci wyświetla numer kanału lub częstotliwość.

Nawet napisałem do tego ładną dokumentację - miała być zrobiona płytka i mieliśmy to sprzedawać jako kit albo jako gotowy moduł - oczywiście wyszło jak zawsze. W sumie fajnie by było zobaczyć ten software w działającym urządzeniu innym niż prototyp z podłączonym oscyloskopem.

Jako że program własny to możliwe są dowolne przeróbki (oczywiście w miarę wolnego czasu). Żeby korzystać z fajnych funkcji wymaga jednak min. 3 klawiszy (bez zmiany typu emisji oraz bez ograniczenia do pasm amatorskich) - a i tak trzeba się nauczyć "krótkiego" i "długiego" naciskania - przydaje się buzzer.

Z jednym przyciskiem (na impulsatorze) można zrobić zmianę kroku plus. ew. drugi "generator" (ale bez split i bez przepisywania).

Reply to
Dawid Rutkowski

Tak. Tyle tylko, że my tutaj mówimy o sytuacji "jeden kondensator przy VCC kontra pięć kondensatorów przy VCC/AVCC, VBAT i wyjściu wbudowanego stabilizatora". ;)

Raczej nie będzie. Krótkofalowcy stosują moduły z max7219 od kilkunastu lat i nic takiego nie ma miejsca. Sam użyłem dokładnie takiego samego modułu wyświetlacza w Taurusie i żadnych zakłóceń nie powodował. Nie wspominając już o fakcie, że cyfrowe skale częstotliwości z multipleksowanymi wyświetlaczami LED stosuje się w sprzęcie krótkofalarskim od kilkudziesięciu lat.

W wersji z analogowym VFO zamiast wyświetlacza na płycie czołowej miała wylądować cyfrowa skala częstotliwości - stary kit na jakimś PIC16. Zamiast enkodera miał być wieloobrotowy potencjometr, przestrajający diodę pojemnościową.

Tak. Przycisk służący do zmiany kroku przestrajania. To ma być bardzo prosty, podstawowy przykład implementacji VFO na DDS. Jedno pasmo, przestrajane w kółko z krokiem ustawionym za pomocą przycisku. Więcej nie trzeba w tym prostym transceiverze.

Reply to
Atlantis

Atlantis snipped-for-privacy@wp.pl napisał(a):

Ten jeden wystarczy. Nie musisz filtrować napięć, których nie używasz.

Reply to
Grzegorz Niemirowski

Jak masz takie cuda jak VBAT czy wbudowany stabilizator, to nie dziw się, że to kosztuje. Ogólnie jak ATmega jest sama w układzie, to nie potrzeba nawet tego 100n na VCC. Spokojnie starcza kondensator np. na wyjściu 7805. Ale jak masz niestabilne zasilanie lub drenowane pikami przez inne układy to już Twoja wina ;P Np. w moim układzie ATmega32 + W5500 okazuje się, że ATmega bierze z 5V 20mA, a moduł z W5500 (W5500 z stabilizatorem 3V, transformatorem i gniazdkiem RJ45 z diodami) po podłączeniu ethernetu zaczyna ciągnąć 200mA i głośnik, podłączony do wzmacniacza zasilanego z tego samego 12/13,8V co

7805, zaczyna ćwierkać różne melodie. W Atmega328 możesz nawet nie podłączać AVCC i AGND jeśli nie będzie używał portu C, a właściiwie tylko pinów od PC0 do PC3. Tak samo nie potrzeba kondensatora na AVCC, na AREF ani na RESET. Na VCC opcjonalny - na wewnętrznym RC i tak jest max. 8MHz, a przy tej częstotliwości działa spokojnie do 2,7V.

A kto mówi, że tacy, co im słoń na ucho nadepnął, nie mogą sobie stosować. Albo przepięknych kolorowych wyświetlaczy LCD, na których wyświetlają 7-8 cyfr, a reszta jest na niebiesko. Zaś w głośniku czy przy nadawaniu mają mnóstwo dodatków. W sumie to gadka wszystko przykryje, a kto słucha ciszy (tylko Jan Oborniak ;) A stacje komórkowe tak sieją, że i tak trzeba mieć sygnał odbierany na ich poziomie, żeby coś usłyszeć - a odbioru takiego sygnału to rzeczywiście nawet przemiatany wyświetlacz nie zakłóci.

Hmm, i ja w stosunku do rzeczywistej częstotliwości ma się ta wyświetlana?

Prosty albo prostacki. W prosty sposób można go naprawdę uatrakcyjnić. Spróbuj podłączyć PTT, chyba że masz uraz do przemienników. Nawet jeden przycisk można naciskać krótko lub długo - a nawet zrobić 3 długości. A jak to jest "fire" w enkoderze - można jeszcze zrobić przekręcenie z wciśniętym przyciskiem.

Reply to
Dawid Rutkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.