Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Płytka rozwojowa dla ATxmega serii A3U

paluszasty 13 Aug 2018 22:49 6126 28
Altium Designer Computer Controls
  • Płytka rozwojowa dla ATxmega serii A3U
    Witam kolegów.

    Chciałbym się pochwalić płytką jaką zaprojektowałem i wykonałem dla uC ATxmega serii A3U (64A3U/128A3U/192A3U/256A3U).

    Moją motywacją było stworzenie płytki dokładniej takiej jaką chce, i prawie mi to wyszło. Każda dostępna jakoś mi nie leżała.

    Płytka ma posłużyć jako baza do kilku projektów dla kolegów:
    -sterownik akwarium
    -sterownik wędzarni
    -sterownik do kurnika..

    Dodatkowo płytkę musiałem tak zaprojektować żeby starczyła mi "na rok bez lutownicy", bo przebywam zagranicą na stażu po-doktorskim i nie mam możliwości zabrania gratów. Oczywiście mam do niej moduły peryferyjne ale część to moje stare rozwiązania, albo coś na uniwersace zrobię na szybko. (istniejące peryferia to sterownik grupowy na triaku, moduł "RS-485-MAX31855-Pt-100", do zrobienia wyświetlacz graficzny z klawiaturą)


    Co jest na płytce:
    -uC Atxmega256A3U
    -4x złącza IDC-10 z wyprowadzonymi pełnymi portami (A/B/C/D), dodatkowo na każdym złączu zasilanie
    -PORT E jest portem do komunikacji z peryferiami i nie jest wyprowadzony jako oddzielne złącze, do niego podpięte są układy I2C oraz złącza SPI
    -PORT F ma wyprowadzone "jawnie" tylko 5 pinów pozostałe 3 służą do obsługi RS-485
    -2x MCP23017 ekspander I2C 2x8bit, z każdego wyjścia wyprowadzone na IDC-20
    -2x24FC256 (lub inny EEPROM I2C)+zworki do WP o ile potrzebne
    -PCF8574 połączony do ULN2803, 8x LED wskazujący na stan wyjść, wyprowadzone na ARK. Tutaj pewien problem, patrz: https://www.elektroda.pl/rtvforum/topic3489644.html
    -MAX6634 (termometr I2C)
    -DS3231M (zegar I2C)
    -6x DIPSWITCH "3 hebelkowy" do zarzadząnia adresami układów I2C
    -złacze I2C CRIMP 4pin (3.3V/GND/SDA/SCL)
    -MAX485 (transcriver RS-485), RS-485 wyprowadzone na rozłączane złącza śrubowe, nie pamiętam jak się nazywają, port z opcjonalnym rezystorem 120ohm, oraz podwójnym dedykowanym transilem SM712.
    -3x złącza SPI (każde z osobnym CS) wyprowadzone na CRIMP 6 pin (3.3V/GND/MISO/MOSI/SCK/CSx)
    -Stabilizator AMS1117-3.3
    -przycisk RESET
    -złącze PDI

    Kondensatory, rezystory wszystkie SMD głownie 0805 i kilka przy uC 0603 (ale od jakiegoś czasu wole 0603). Pamięć EEPROM, ekspandery I2C, driver, transcriver RS-485 sa w DIP, ze względu na możliwość (niewielka) ich uszkodzenia. Zresztą np po to dodałem ekspandery żeby chronić uC. Głownie ze względu na brak lutownicy itp za granicą.

    To chyba wszystko. Dodatkowo zamieszczam schemat. Zrezygnowałem z USB, Flip jest wolny i niezintegrowany z AtmemStudio co mnie drażniło.

    Sama płytka jest 4 warstwowa i ma wymiary z grubsza 168x86. Pytanie czemu płytka 4 warstwowa. Po pierwsze czemu nie. Po drugie jestem leniwy. Po trzecie i o najważniejsze znacznie uprościło to prowadzenie zasilania i masy (oddzielne wewnętrzne warstwy).

    Płytki wykonane w AllPCB. Jestem zadowolony z wykonania.

    Jak ktoś chce to myślę że znajdę jakaś zbędna i mogę odsprzedać.

    Zdjęcie jednej z płytek (uC mógł by być wlutowany lepiej, wiem, rezystor THT jest do testów, zapomniałem że DS3231 ma wyjście 32kHz typu open-drain, ale tylko na tej jednej płytce jest użyty):
    Płytka rozwojowa dla ATxmega serii A3U

    Cool? Ranking DIY
    About Author
    paluszasty
    Level 25  
    Offline 
    Has specialization in: chemia(profesjonalnie)
    paluszasty wrote 1105 posts with rating 255, helped 56 times. Live in city Łódź. Been with us since 2006 year.
  • Altium Designer Computer Controls
  • #2
    Chivo
    Level 25  
    Witam. Gratuluję ciekawego projektu. Szukam dobrego programu EDA. Projekt udowadania, że KiCad jest dobrym oprogramowaniem.
  • #3
    paluszasty
    Level 25  
    Kolego Chivo. KiCad jest wg mnie bardzo przyjemnym programem. Płytki 4 warstwowe projektuje się w nim bardzo prosto a nawet prościej niż 2 warstwowe. Jedynie może przechodzenie miedzy warstwami jest utrudnione, trzeba wybrać na która warstwę przechodzimy.
  • Altium Designer Computer Controls
  • #4
    leonow32
    Level 30  
    XMEGA to świetne procesory. Szkoda tylko, że Atmel nie zatrudnił jakiegoś lepszego speca od marketingu. Dowodem dobrej jakości tych procesorów jest to, że po przejęciu Atmela przez Microchip pojawiły się nowe ATtiny 1-series i ATmega 0-series, które mają peryferia i sposób programowania prawie wręcz skopiowany z XMEGA. Najwidoczniej w Atmelu projektem XMEGA dowodził jakiś leszcz, a dopiero po przejęciu przez Microchip temat się rozkręci.
  • #5
    pawlik118
    Level 31  
    XMEGA prawdopodobnie niestety przestanie być rozwijana, podobnie jak rewelacyjne (w stosunku do ARM) AVR32. Wszystko wskazuje na to, że za kilka lat będą tylko cortexy..
  • #7
    paluszasty
    Level 25  
    Kolego leonow32 zgadzam się że xmega to świetny procesor. Zresztą chyba w Polsce dużo bardziej popularny wśród hobbystów niż gdzie indziej (np eevblog, mało tam jest xmeg raczej. Ale to w sumie Twoja i kolego tmf zasługa (twoje płytki, książki tmf).


    Kolego pawlik118 w sumie nie ma co się dziwić że niedługo zostaną cortexy, ich cena jest coraz niższa możliwości duże a przykładów jest już bardzo dużo.

    Myślę ze mała popularność xmegi wśród hobbystów wynika z 3 rzeczy:
    -obecna cena

    -nie wszyscy gotowi są do lutowania SMD i jak zobaczą TQFP64 lub TQFP100 to myślą że to wymaga jakiegoś super sprzętu. Pośrednio uniemożliwia to budowę układów na płytce stykowej (których nienawidzę, nigdy nie używałem, wolałem płytkę uniwersalna i kynar). Sytuację ratowała płytka x3-dil64 od leona.

    -bardziej zaawansowani użytkownicy poszli w kierunku ARM, szczególnie ze płytki od STM (STM32F4DISCOVERY) są niezwykle tanie jak na płytki deweloperskie, nawet biorąć pod uwagę ze najtańsze to w zasadzie tylko uC i programator oraz jakieś przyciwki/diody. Ale cena poniżej 100zł zachęca.

    Ja zastanawiałem się nad próbą komercjalizacji tego projektu. Ale jeden z kolegów sprowadził mnie na ziemię. Płytka była by za droga po prostu mimo tego że ma dość duzo uniwersalnych peryferiów.
  • #8
    lvy
    Level 12  
    Kolego paluszasty miło widzieć iż jeszcze jest trochę ludzi chcących się bawić xmegami. Mam tylko jedno zastrzeżenie a mianowicie by zegar RTC poprawić na DS3231M. Dodatkowo można było by dorzucić jakiś lepszy ADC, np MCP3424.

    Co do rozwijania tej rodziny to myślę że tam za bardzo już nie ma co rozwijać, tylko co najwyżej poprawić mankamenty (ten nieszczęsny ADC nawet w nowych seriach jest dalej tragiczny). Jednak w porównaniu do cortexów jest o niebo lepszą opcją w projektach np przetwornic z uwagi na sporo wyższą odporność na zakłócenia EM.

    Pozdrawiam i życzę sukcesów!
  • #9
    paluszasty
    Level 25  
    Kolego lvy dzięki za czujność popoprawiam. Obsługa wersji SOIC16 jak i SO8 (z M na końcu) jest dokładnie taka sama.

    Co do ADC to myślałem o jakimś, ja lubię LTC2400 i LTC2400. Ale z moich doświadczeń wynika że lepiej taki układ mieć na oddzielnej płytce koniecznie z izolacja galwaniczną (transoptory lum ADuM) SPI. Kiedyś robiłem test jak wyglądała szum z izolowanym SPI i bez izolowanego SPI i zdecydowanie lepiej było z izolacją za pomocą ADuM1401ARWZ . Patrz:
    https://www.elektroda.pl/rtvforum/topic3387435.html.
    Oczywiście były to dość proste testy ze źródłem napięcia odniesienia (MAX6325) ale nie miałem warunków do lepszych testów. Dlatego tez nie pisałem o tym dokładniej na forum.

    Dlatego generalnie uważam że ADC lepszej jakości warto umieścić na zewnętrznej płytce i stosować izolacje galwaniczną.

    Ale właśnie z myślą o jakimś zewnętrznym ADC wyprowadzone są aż 3 złącza SPI z oddzielnymi pinami CS.
  • #11
    paluszasty
    Level 25  
    Ja nic do ADC w XMEGA nie mam.

    Moje wyjaśnienia dla kolegi lvy wyjaśniają raczej czemu nie wstawiłem na płytkę ADC niż krytykują ADC w XMEGA. Jako kogoś urządza 8-12 bitów i S/N jest też wystarczający to sa to chyba bardzo fajne przetworniki z dużą możliwością konfiguracji.

    Oczywiście jak potrzebna jest większa precyzja to trzeba zewnętrzny przetwornik i tyle ale to oczywiste. No względnie nadpróbkowaniem można coś ugrać.

    Jak potrzebna większa szybkość to raczej inny uC i zewnętrzny przetwornik.
  • #12
    pawlik118
    Level 31  
    ADC a XMEGAch nie działa "rail to rail" jak to było w zwykłych atmegach. Nie pamiętam ile dokładnie wynosi zakres napięcia wejściowego w stosunku napięcia gnd i "vdd".
  • #13
    tmf
    Moderator of Microcontroller designs
    pawlik118 wrote:
    ADC a XMEGAch nie działa "rail to rail" jak to było w zwykłych atmegach. Nie pamiętam ile dokładnie wynosi zakres napięcia wejściowego w stosunku napięcia gnd i "vdd".

    Od strony GND działa nie tylko od 0 V, ale nawet poniżej (-150 mV), co umożliwia lepszą detekcję przejścia przez 0. Od strony Vcc jest ograniczenie, ale to się prosto rozwiązuje stosując programowy dzielnik (1/2). ADC mierzy do ARef, tyle, że ARef jest niższe niż Vcc. Generalnie ADC w XMEGA jest bardzo rozbudowany, stąd może wiele mitów narosło, bo wielu użytkowników przenosi stare nawyki i najczęściej korzysta z nieodpowiedniego trybu pracy.
    Co do rozwoju tej rodziny - na razie jest stagnacja, ja bym widział rozbudowę modułu XCL, najlepiej gdyby dodali cele znane z CPLD, lub wprost komórki z FPGA. Kiedyś Atmel miał (i chyba nadal ma) rodzinę będącą połączeniem AVR i FPGA, szkoda, że tego nie rozpropagowali. No i przydałby się jakiś prosty FPU, chociażby mający tylko podstawowe działania na integer 32-64 bity i float. Jest taki chip do AVR będący koprocesorem matematycznym, tyle,że łączy się go po I2C.
    AVR32 były fajne, niestety już oficjalnie zarzucone. Szkoda, bo w czasach kiedy cortexów jeszcze nie było na świeci, oferowały więcej niż obecne ARMy. Niestety jak koledzy już pisali, marketing w Atmelu to był kosmos.
  • #14
    lvy
    Level 12  
    tmf wrote:
    Od strony GND działa nie tylko od 0 V, ale nawet poniżej (-150 mV),

    To chodzi o to:
    "In unsigned mode the conversion range is from ground to the reference voltage. To be able to have zerocross detection a ΔV is subtracted. The ΔV is approximately 0.05* VREF, so the ground level will be
    approximately 0.05 of the total value range (0.05 * 4095 with 12-bit resolution). This will also limit the
    maximum input voltage of 0.05* VREF, so the maximum input voltage is VREF - ΔV. This is illustrated in the
    figure below, "Unsigned and Signed Conversion Mode". z noty : AVR1300: Using the AVR XMEGA ADC"

    A dodatkowo, kolego tmf, może wiesz, czy jeśli mierzę napięcie poniżej masy to wynik dalej jest liniowy?
  • #15
    tmf
    Moderator of Microcontroller designs
    Dokładnie o to chodzi. Żaden problem - po prostu dla 0V na wejściu ADC, odczytujesz nie 0, lecz pewną wartość będącą offsetem. Można go zresztą programowo zmierzyć i użyć do kalibracji, jeśli ktoś potrzebuje, albo użyć ADC w trybie różnicowym.
    Poniżej masy w pewnym zakresie wynik jest liniowy, lecz nie powiem czy w całym. W nocie o tym nic nie ma, ale logika podpowiada, że skoro wejścia są zabezpieczone diodami, a one poniżej -150 mV już coś tam przewodzą, a ich prąd lawinowo rośnie, aby w okolicy -0,6V być w pełni otwarte, to przy niskich napięciach i dużej rezystancji wyjścia zapewne nieliniowość się pojawi.
  • #16
    leonow32
    Level 30  
    tmf napisał świetne książki na ten temat - to jest must have dla każdego zajmującego się procesorami XMEGA. Niestety tytuły tych książek mają się nijak do zawartości
    - AVR. Praktyczne projekty
    - AVR. Układy peryferyjne
    To dwie części na temat XMEGA, które bardzo kompleksowo omawiają wszystkie peryferia.

    Na mojej stronie też coś jest na ten temat, ale nie omawiam kalibracji ADC i innych zaawansowanych funkcji
    https://extronic.pl/content/category/11-kurs-xmega
  • #17
    lvy
    Level 12  
    Szanowni koledzy tmf oraz leonow32;
    Bardzo zaintrygowała mnie możliwość mierzenia ADC poniżej napiecia zasilania, gdyż pierwszy raz w życiu z taką magią się spotkałem i trochę poszperałem po internecie i niestety kupa, praktycznie nic konkretnego nie ma. Więc postanowiłem sprawdzić orgnoleptycznie jak to faktycznie działa.
    Moim miernikiem był RIGOL DM3068 i że jest ciągle na gwarancji to uznałem że jego wskazania są poprawne (6 i pół cyfry właśnie w takich sprawdzaniach przydaje), natomiast sprawdzanym procesorem była xmega256A3BU (wersja z wewnętrznym RTC, który to średnio chodzi), natomiast źródłem badanego napięcia była bateria alkaliczna na potencjometrze wielo-obrotowym 10k by pozbyć się tętnień napięcia (choć znając życie i tak było sporo zakłóceń bo nie robiłem tego w klatce Faradaya).
    algorytmem badania było zbieranie sumy 100 próbek z 3 kanałów (ustawionych na próbkowanie z jednego pinu) na FCPU = 2Mhz oraz największym możliwym dzielniku częstotliwości ADC. a następnie odrzucenie największej i najmniejszej sumy z 3 kanałów.
    źródłami badanymi były: wewnętrzne 1V(i tu się nie zgodzę z książką tfm, te źródło ma fatalną dokładność, potrafi pływać ponad 1% w przeciągu roku), zewnętrzne źródło REF3020 o napięciu ~2,048V( i pomiar wyniósł 2,048922V wiec całkiem nieźle) oraz klasyczny tl431 bez feedbacka (pomiar wyniósł 2,491345 V).

    dla wzrokowców przedstawiam wykres, z naniesionymi liniami regresji liniowej dla serii:
    Płytka rozwojowa dla ATxmega serii A3U



    a dla lubiących surowe dane jest dokument z wynikami.
    pomiary AD... xmega.xls Download (10.5 kB)

    wnioski:
    1. Z wykresu wyraźnie widać iż liniowość przetwornika jest zachowana praktycznie do samego dołu zakresu pomiarowego.
    2. widać iż zakres jest trochę mniejszy niż zawarty w nocie 5% V-ref. i zależy od aktualnie używanego procesora (na szybko przetestowałem jeszcze na płytce leonow32 i wyniki były podobne, ale tam bliżej było do 5% wspomnianych w nocie.
  • #19
    tmf
    Moderator of Microcontroller designs
    @lvy Dobra robota. Tylko kilka uwag:
    lvy wrote:
    algorytmem badania było zbieranie sumy 100 próbek z 3 kanałów (ustawionych na próbkowanie z jednego pinu) na FCPU = 2Mhz oraz największym możliwym dzielniku częstotliwości ADC

    To jest ADC z wejściem typu S&H, a więc mamy kondensator. Nie powinno sę za bardzo schodzić z częstotliwością, bo upływność tego kondensatora się ujawni i wpłynie to na wyniki pomiaru. Dlatego taktowanie ADC powinno być rozsądne, z tego co pamiętam >100 kHz, optymalnie więcej. Od góry ogranicza nas impedancja wejścia.
    Jeśli możesz sprawdź jak wygląda liniowość dla napięć ujemnych, jeśli źródło ma wysoki opór wewnętrzny - IMHO wtedy powinny się ujawnić upływności z diod zabezpieczających wejście i powinna być nieliniowość.
    lvy wrote:
    wewnętrzne 1V(i tu się nie zgodzę z książką tfm, te źródło ma fatalną dokładność, potrafi pływać ponad 1% w przeciągu roku)

    1% jest zgodne z deklaracją producenta, więc nie nazwałbym tego wyniku fatalnym. W innych AVR dokładność jest w granicach 5% lub gorsza. Oczywiście każde zewnętrzne źródło referencyjne jest o wiele lepsze. No ale często takie źródło kosztuje tyle co procesor :)
    lvy wrote:
    wersja z wewnętrznym RTC, który to średnio chodzi

    A jakie napotkałeś z tym problemy? Ja w kilku projektach używam tego RTC i nie mam zastrzeżeń. Jedynie manual do procesora jest w opisie RTC mocno pokręcony i chyba nie wyjaśnia wszystkiego. Ale IMHO fajnie to działa, super fajna jest możliwość cyfrowej kalibracji rezonatora kwarcowego. Jedyna wada - RTC z podtrzymaniem jest tylko w XMEGA A3BU, w dodatku wymieniona przez ciebie XMEGA jest nienormalnie droga.
  • #20
    lvy
    Level 12  
    Witam.
    Co do kalibracji to w mojej pierwszej bibliotece zawarłem kod skopiowany z internetu który pobiera bity kalibracyjne z "production signatures" i zawsze jest to wpisywane. Zauważyłem także iż sygnatury te zawsze są równe zero (przynajmniej dla serii A)
    Płytka rozwojowa dla ATxmega serii A3U
    wiec swojego czasu sprawdziłem czy wpisywanie tego ma sens i.... wyszło ze nie, choć mam doświadczenie głównie z 128a3u oraz 192a3u i praktycznie nie używałem wersji bez "u", wiec moje doświadczenie w całej rodzinie jest trochę ubogie.

    Dodano po 59 [minuty]:

    tmf wrote:
    Jeśli możesz sprawdź jak wygląda liniowość dla napięć ujemnych, jeśli źródło ma wysoki opór wewnętrzny - IMHO wtedy powinny się ujawnić upływności z diod zabezpieczających wejście i powinna być nieliniowość.

    Witam!
    Jakbyś mógł to podrzuć jaką rezystancją mam testować (10k, 100k?). A co do czestotliwości próbkowania to chciałem dobrze, wyszło jak zwykle, więc przelecę jeszcze raz z czestotliwoscią 125kHz (2MHz presc: 16).

    tmf wrote:
    A jakie napotkałeś z tym problemy? Ja w kilku projektach używam tego RTC i nie mam zastrzeżeń. Jedynie manual do procesora jest w opisie RTC mocno pokręcony i chyba nie wyjaśnia wszystkiego. Ale IMHO fajnie to działa, super fajna jest możliwość cyfrowej kalibracji rezonatora kwarcowego. Jedyna wada - RTC z podtrzymaniem jest tylko w XMEGA A3BU, w dodatku wymieniona przez ciebie XMEGA jest nienormalnie droga.

    Zacznijmy od ceny, a mianowicie na TME różnica mięszy 128a3u a 256a3bu jest minimalna, a cena RTC na I2C była dużo wyższa niż owa różnica. Po drugie z doświadczenia wiem ze wolę mieć dana funkcjonalność wewnątrz procka niż przez zewnętrzne interfejsy, bo mniej zabawy w debugowanie, oraz szybsza praca urządzenia(zazwyczaj). ALE, podtrzymanie bateryjne zasila tylko oddzielny moduł procesora, który to musi mieć zewnętrzny kwarc. Dobór kwarcu to koszmar, dosłownie trzeba sprawdzać każdą PCB oddzielnie. Zazwyczaj kwarc sie wzbudzał na jakiejś wyższej częstotliwości. Próby różnych źródeł, producentów , a nawet wylutowanie kwarcu ze startowego do 256a3bu atmela nie dało nic(a także dodawanie różnych kondensatorów, rezystorów terminujących ETC). Zauważyłem że musi być odpowiednie długie ścieżki do rezonatora by działał on poprawnie, wiec ostatecznnie zarzuciłem używanie tego procka ( i dlatego zwróciłem uwagę na zamieszczony w pierwszym poście zegar RTC w SO8 !). Śmieszna sprawa, ale pierwsza moja próba z tym modułem była jak podmieniłem na płytce leonow32 właśnie na xmegę 256a3bu i wlutowałem jakiś stary kwarc z jakiegoś taniego zegarka i wszystko śmigało bez zarzutu, a problemy pojawiły się dopiero jak zrobiłem swoje PCB(3 różne projekty i dopiero ostatni jakkolwiek czasem zadziała poprawnie).
  • #21
    tmf
    Moderator of Microcontroller designs
    lvy wrote:
    Jakbyś mógł to podrzuć jaką rezystancją mam testować (10k, 100k?)

    Sprawdź różne. Im większa w stosunku do próbkowania, tym większy powinien być problem.
    lvy wrote:
    Dobór kwarcu to koszmar, dosłownie trzeba sprawdzać każdą PCB oddzielnie.

    Z tego co piszesz wynika, że być może problem leży w projekcie PCB. Weź pod uwagę, że ze względu na oszczędność energii, generator ten pracuje z mikroskopijnymi prądami, w efekcie jest podatny na zakłócenia z zewnątrz. Stąd projekt PCB jest kluczowy, warto przejrzeć noty (niekoniecznie Atmela) dotyczące projektowania obwodów dla RTC. Warto też sprawdzić, czy poprawnie skonfigurowałeś ten oscylator - wybrałeś odpowiedni kwarc, ew. warto włączyć silniejsze sterowanie kwarcem (full swing), co redukuje jego podatność na zakłócenia.
    Używam A3BU właśnie ze względu na wbudowany RTC i nie doświadczyłem problemów. Natomiast z postów elektrodowiczów, dotyczących ogólnie RTC (jako osobne scalaki) wiem, że problem z odpowiednim zaprojektowaniem PCB jest częsty i często spotykają się z kłopotami o jakich piszesz, szczególnie w przypadku użycia układów o ultraniskim poborze mocy.
    Ogólnie wszystkie ścieżki powinny być bez przelotek, możliwie krótkie, bez ścieżek sygnałowych w okolicy, szczególnie przewodzących większe prądy. Masa dookoła i od spodu też jest wskazana. Kwarc powinien być obciążony kondensatorami, których wartość trzeba wyliczyć na podstawie noty użytego kwarcu. Warto też sprawdzić co producent zaleca zrobić z obudową - czy np. nie należy ją umasić, co też zmienia pojemności.
  • #22
    piotrva
    VIP Meritorious for electroda.pl
    Po co ten rezystor? Przecież linię można podciągnąć programowo...
    A z ADC w XMega miałem też problem - były szumy większe niż w zwykłych ATMegach - tak że większa rozdzielczość szła własnie na nie.
    Ogólnie były spoko, fajne, że mają zaawansowane "ficzery", że się programuje tak samo jak ATMegi.
    Choć osobiście już przeniosłem się na STM32, ze wspomnianych wyżej powodów (cena, dostępność).
  • #23
    tokrzych
    Level 16  
    Z ciekawości zapytam czy mierzyłeś częstotliwość na wyjściu RTC DS3231M 32kHz ? Pytam dlatego że na 5 sztuk kupionych w Chinach tylko jeden podaje mi dokładnie 32768hz a pozostałe w okolicach 32600Hz . .Dobrze pracuje tylko jeden na 5 egzemplarzy więc nie wiem co może być tego przyczyną.Za to czas bieżący odmierzają poprawnie wszystkie.
  • #24
    paluszasty
    Level 25  
    Spójrz na oscylogram:

    Płytka rozwojowa dla ATxmega serii A3U

    Ja ten układ mam akurat z sampli od Maxima (DS3231MZ+) więc powinien być w porządku. (Szczególnie że był zamawiany do zupełnie innego projektu, i tam sprawuje się bardzo dobrze). Różnica jest 10Hz. Dużo bo aż 0.03% Bo wg specyfikacji to jest 0.00005% (5ppm). Później sprawdzę to na drugim egzemplarzu.
  • #25
    tokrzych
    Level 16  
    U ciebie wygląda że jest OK. Ja kupiłem u Chińczyka 5 sztuk , 2 mają oznaczenia 1549A3 , jeden z nich jest OK drugi jak widać dużo słabiej . Pozostałe 1604A3 i 1551A3 maja w granicach 32600HZ. Tak się zastanawiam skąd on je wziął że 5 sztuk nie jest z tej samej serii ? Dzisiaj w skrzynce znalazłem 3 sztuki nowe 1628A3 , kupione u innego Chińczyka :). Zamówiłem też podstawkę pod nie ale chyba nie wytrzymam i jutro jeden z nich wlutuję więc powiadomię Cię o efektach.Widzę że muszę szukać takich z plusem.Płytka rozwojowa dla ATxmega serii A3UPłytka rozwojowa dla ATxmega serii A3UPłytka rozwojowa dla ATxmega serii A3U
  • #26
    paluszasty
    Level 25  
    Wg mnie to daleko od tego co powinno być.

    A jaki masz wzorzec częstości w swoim mierniku?

    Dodano po 19 [minuty]:

    Jak zawsze problem tkwi w szczegółach. Układy są sprawne.

    Patrz 2str noty:
    https://datasheets.maximintegrated.com/en/ds/DS3231M.pdf
    i tabela:
    Electrical Characteristics—Frequency And Timekeeping

    32kHz Frequency Tolerance 2.5% !!!!

    Wysoką stabilność 32.768kHz ma tylko wersja bez literki M:
    https://datasheets.maximintegrated.com/en/ds/DS3231.pdf

    Podejrzewam ze w wersji M jest rejestr który ma zapisana prawdziwą częstotliwość i w ten sposób korygowana jest częstotliwość 1Hz. Ona jest dokładna (deltaF 5ppm)
  • #27
    tokrzych
    Level 16  
    Kwarc w moim mierniku to 15MHz. To stary MC55. Wczoraj natchnąłeś mnie tym wpisem o 5ppm i po sprawdzeniu tego w nocie dostrzegłem że dotyczy tylko wyjścia 1Hz , a poniżej te nieszczęsne 2.5% ale już późno było więc nie pisałem.Teraz mnie w tym upewniłeś bo jeszcze w to nie wierzyłem po tym jak się naczytałem na temat dokładności tego układu i zawsze myślałem ze generator jest w takim układzie jeden a ta częstotliwość odchodzi z jego odczepu. Wpuściłem to na INT0 i wtedy dostrzegłem że tak mierzony czas rozjeżdża się z czasem z tego samego układu pobieranego przez i2C. Zmylił mnie też wpis z pierwszej strony "1Hz and 32.768kHz Outputs" a potem z siódmej strony "FUNCTION 32KHz 32.768kHz Output (50% Duty Cycle).". Wychodzi zatem na to że gdy chcemy skorzystać z tego wyjścia to pozostaje selekcja. Dziękuję Ci bardzo za poświęcony czas i pozdrawiam.
  • #28
    paluszasty
    Level 25  
    Jak by się uprzeć to można użyć tego sygnały 1Hz jako wzorca do PLL z dzielnikiem czesości.
    http://www.analog.com/media/ru/training-seminars/tutorials/MT-086.pdf
    A jak potrzebujesz stabilnego 32.768kHz to pozostaje wersja bez M w SOIC16. Mam chińskie moduły z tym układem i Fout jest ok.
  • #29
    tmf
    Moderator of Microcontroller designs
    tokrzych wrote:
    Wczoraj natchnąłeś mnie tym wpisem o 5ppm i po sprawdzeniu tego w nocie dostrzegłem że dotyczy tylko wyjścia 1Hz , a poniżej te nieszczęsne 2.5% ale już późno było więc nie pisałem.Teraz mnie w tym upewniłeś bo jeszcze w to nie wierzyłem po tym jak się naczytałem na temat dokładności tego układu i zawsze myślałem ze generator jest w takim układzie jeden a ta częstotliwość odchodzi z jego odczepu.

    W nocie układu masz pokazany schemat blokowy, który wszystko wyjaśnia. Generator jest jeden, lecz wyjście 32 kHz pochodzi bezpośrednio z niego przez dzielnik, natomiast sygnał na wyjściu 1 Hz przechodzi przez blok "digital adjustment & factory trim". Czyli tylko na ten sygnał nakładane są poprawki - kalibracja fabryczna, kalibracja względem temperatury itd. Dziwnie to wymyślili, ale tak jest.
    Niemniej, nie wiem po co tak kombinować, 5 ppm to nie rocket science, dokładność kilku ppm można uzyskać przy pomocy większości kwarców (aczkolwiek zazwyczaj zegarkowe mają dokładność zdecydowanie gorszą), a jak ktoś bardzo potrzebuje to kwarce TCXO dają nawet poniżej 1,5 ppm. Wracając do wątku głównego, w A3BU jest wbudowany RTC z osobną domeną zasilania i działa on bardzo dobrze, bez dodatkowych kosztów i komplikacji związanych z zewnętrznym układem. Podobnie, wiele innych, nowoczesnych procesorów posiada wbudowane dobre RTC i potrzeba stosowania zewnętrznych jest marginalna.