• Szanowny Użytkowniku, serwisy w domenie modelarstwo.info wykorzystują pliki cookie by ułatwić korzystanie z naszych serwisów. Jeśli nie chcesz, by pliki cookies były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki.

ZIMO mnie rozczarowało, SUSI niezgodne ze standardem!

r-mik

Pan Chlewik
Reakcje
145 30 0
#1
Podczas budowy dekodera http://forum.modelarstwo.info/threads/budowa-tanich-dekoderów-trakcji-dźwięku-funkcyjnych.50313/ wdrożyłem SUSI. Zdziwiłem się dlaczego funkcje dekodujące przeniesione. Po zgłębieniu tematu okazało się, że dana jest wystawiana po narastającym zboczu sygnału CLK!
susi.png

Powiększenie:
SUSI ZIMO zly CLK.png


Analizator, to nie klon SaleAE 24MHz za 40zł tylko oryginalny LA za blisko 500zł ale dla pewności sprawdziłem na dosyć szybkim 200MHz (to niekonieczne, wystarczyłby 10MHz) oscyloskopie:
SUSI ZIMO oscyl.png

W powiększeniu:
SUSI ZIMO oscyl ZOOM.png

Według dokumentacji, dana musi być wystawiona przed narastającym zboczem CLK i utrzymana do czasu zbocza opadającego. W ZIMO tak nie jest! Warto o tym wiedzieć gdy pisze się oprogramowanie dla dekodera funkcyjnego, zwłaszcza na szybkie uC lub korzystając ze sprzetowego SPI. Problemu nie ma gdy uC jest wolne, jak popularne PIC czy AVR. Zanim CPU wejdzie w przerwanie, odczyta GPIO minie tak dużo czasu (2us), że czy program nawet gdy reaguje na zbocze narastające, dane od czytywane są poprawnie. Niestety, w szybkim uC tak już nie jest. Wstawianie w kodzie delay jest "godne" Arduinowca ale nie poważnego programisty. Pozostaje użyć timera, który kilka us po zboczu narastającym odczyta daną albo reakcja na zbocze opadające tak jak zrobiłem ja. Niestety, trzeba się liczyć, że inny producent może zmieniać daną przed zboczem opadającym :(

SUSI mimo, że podobny do half-duplex SPI, utrudnia wykorzystanie sprzętowego SPI do nadawania/odbioru danych. Jest to możliwe ale wymaga, zarówno w przypadku nadawania, włączania SPI na czas transmisji i wyłączania po jej zakończeniu co jest potrzebne do odbioru ACK. W przypadku odbioru, na czas nadania ACK trzeba wyłączyć SPI. Zdecydowanie prościej udało się zrealizować tą funkcjonalność w sposób programowy, zarówno dla nadawania, jak i odbioru. Zaletą rozwiązania programowego jest to, że mogę wykorzystać dowolne GPIO (w AVR to nie takie oczywiste, bo nie każdy pin moze generowac przerwanie w każdym uC) do SUSI. Max CLK SUSI to 50kHz, więc niewielkie obciążenia dla ARM (w AVR juz niekoniecznie, zwłaszcza gdy jest taktowany 8MHz aby nie podłączać zewnętrznego kwarcu).

Ten problem, wyjaśnia, dlaczego testerzy dekoderów muszą dysponować oscyloskopem i analizatorem logicznym. Bez tym urządzeń nie byłoby możliwości szybkiego zdiagnozowania problemu.

Na zakończenie, zegar SUSI ZIMO:
ziom.png

Widać, że coś mu przeszkadza (przerwania) aby był generowany stabilnie. To nie ma wpływu na działanie SUSI bo MX623 jest masterem ale da się do zrobić dobrze, nawet programowo.

Dlaczego zanan firma, przez lata, sprzedaje dekoder z SUSI, który niczym Window$ nie jest zgodny nawet sam ze sobą?
 

Załączniki

Ostatnio edytowane:

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
353 0 0
#2
Czy Kolega jest pewien, że jest to niepoprawne?

Stan linii danych odczytywany jest w momencie zbocza opadającego linii CK.
Nie jest wiec istotne czy stan ten zmieni się przed, czy po narastającym zboczu sygnału zegarowego.

Poniżej przebiegi transmisji pokazane na trzeciej stronie definicji standardu SUSI ((TI-9.2.3)
SUSI.png

Na wcześniejszej stronie znajdujemy również potwierdzenie tej informacji:
All SUSI packets are a multiple of 8-bits. The Clock is active low. Data is set on the positive edge and mustbe valid on the negative edge.
Miłośnicy języka Goethe'go znajdą te same informacje na stronie Dietz'a - czyli twórcy SUSI ( przebiegi na stronie 6).

Wygląda na to, że ZIMO pracuje zgodnie z zaleceniami i nie wiem na podstawie jakiej dokumentacji wyciąga Kolega takie wnioski.

Pozdrawiam
Piotr
 
Ostatnio edytowane:
OP
OP
r-mik

r-mik

Pan Chlewik
Reakcje
145 30 0
#3
Tłumaczenie wychodzi mi tak "Dane są ustawiane na zboczu dodatnim i muszą być poprawne na zboczu ujemnym.".
Na dodatnim to nie to samo co po dodatnim, no chyba, ze tłumaczenie nie bardzo.

Nie znalazłem tez nigdzie informacji, że dane MAJĄ być odczytywane na ujemnym. Może kolega wskazać gdzie tak jest napisane?
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
353 0 0
#4
To nie musi być napisane "łopatologicznie". To wynika z pokazanych przebiegów, a dodatkowo, jak Kolega myśli, po co stan linii danych ma być stabilny w czasie opadającego zbocza linii CK? To nie przypadek...
 
Ostatnio edytowane:
OP
OP
r-mik

r-mik

Pan Chlewik
Reakcje
145 30 0
#5
Z przebiegów i z tekstu wynika "Dane są ustawiane na zboczu dodatnim i muszą być poprawne na zboczu ujemnym". Przebiegi z ZIMO pokazują, że dane da ustawiane 2us PO zboczu narastającym. Jest to niezgodne z tym co napisano w dokumencie.
Fakt, że rysunek pokazuj, iż w czasie zbocza narastającego dane nie muszą być stabilne ale w czasie a nie po.

Kto rozsądny zmienia stan danych w czasie zbocza sygnału lub po zboczu aktywnego sygnału zegara? Nigdzie czegoś takiego nie widziałem. Czy to SPI, czy I2C (pomiajm start i stop). W ZIMO widzę dwa błedy, ustawianie sygnału po zboczu zamiast przed i "machnięcie" linią CK i jakieś dziwne nierówności zegara. Raz 119, innym razem 85us to różnica 34us. To raczej nie, są to przerwania. Wnioskuję, że sygnał SUSI jest generowany w pętli głównej co trąci amatorszczyzną. Tak to piszą Arduinowcy i potrafią najszybszy nawet CPU spowolnic do szybkości 8080 przez delay.
 
Ostatnio edytowane:

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
353 0 0
#6
Kolega zbytnio przywiązuje się do "dokładnego" tłumaczenia, a za mało zastanawia się nad zasadą tego typu transmisji.

W interfejsie SUSI dane synchronizowane są w oparciu o sygnał CK.
On jest tu kluczowy i powinien mieścić się w określonych przedziałach czasowych (szczegóły w normie).
Dla sygnału DT nie ma dokładnie określonych wymogów czasowych. Jedyny wymóg, to to, że musi on być ustalony w momencie opadającego zbocza CK, bo to jest sygnał dla odbiornika, że na linii DT dostępna jest do odczytu wartość kolejnego bitu danych.

Dlatego twierdzenia, że:
dana musi być wystawiona przed narastającym zboczem CLK
oraz
Dlaczego zanan firma, przez lata, sprzedaje dekoder z SUSI, który niczym Window$ nie jest zgodny nawet sam ze sobą?
uważam za bezzasadne, a nawet krzywdzące dla tak doświadczonej firmy jak ZIMO.
 
OP
OP
r-mik

r-mik

Pan Chlewik
Reakcje
145 30 0
#7
A podobne wypowiedzi pod kątem STM-a czy Micor$oft nie są krzywdzące?
To nie pierwszy przypadek, gdzie studenci piszą soft a efekty są jakie są. Przebiegi z analizatora i oscyloskopu to fakty, nota katalogowa to fakt, niezgodność z notą też jest faktem.
Gdzie tu widzisz jakieś krzywdzące wypowiedzi? Wypuścili badziewie i to jest fakt! KAŻDY dekoder na szybkim CPU, reagujący na zbocze narastające nie będzie działał, wolny może stwarzać problemy a to z powodu niezgodności ZIMO ze standardem.
To jest fakt!
ZIMO moje wypowiedzi ma w d.... tak jak i to, ze nie zamontowali rezystorów w dekoderach. Spróbuje ustalić o jaka ilość chodzi.
Brak rezystora to fakt, gdzie jest kontrola techniczna? Nawet kontroli optycznej nie robią albo robią studenci i efekt jest jaki jest.
W moich oczach ta firma dużo straciła. Wyszły dwa babole jednego dnia.
A może fakt, że wytykam błąd w montażu jest krzywdzący dla ZIMO? Będziesz ich bronił? Jak?
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
353 0 0
#8
Ok, widzę, że Kolega twardo trzyma się Swojej wersji. Nie będę Kolegi przekonywał na siłę, nie jest to zresztą mój cel.
Proszę potraktować moje wypowiedzi jako informacje w temacie interfejsu SUSI. Może przydadzą się dla osób, które chciały by go wykorzystać w swoich projektach.

I jeszcze na koniec, każdy dekoder zbudowany czy na szybkim czy wolniejszym CPU, przy uwzględnieniu podanych wcześniej zasad transmisji będzie działać poprawnie. Wszystko zależy ot tego jak napisze się soft.

Nie rozumiem też, jaki związek z tematem ma reagowanie na zbocze rosnące w przypadku gdy istotna jest reakcja na zbocze opadające.
Czyżby Kolega w swoim programie oczekuje na narastające zbocze CK i w tym momencie czyta stan DT?
Jeśli tak, to to dopiero jest zgodne z normą - tylko jaką, bo mam wrażenie, że tylko Kolegi. I nie chce tu być złośliwy, ale dla mnie to jest fakt...

Jeżeli chodzi o dekodery ZIMO, to twierdzi Kolega, że wypuścili badziewie...
Pytanie tylko, czy to "badziewie" pracuje poprawnie z firmowymi modułami SUSI?
Czy twierdzenia oparte są tylko na własnych eksperymentach ze swoimi modułami testowymi?

Używam dekoderów ZIMO od wielu lat i jedyne problemy z obsługa SUSI były wiele lat temu (a było to około 2005 roku) i zostały dawno rozwiązane w ramach aktualizacji softu.

Pozdrawiam i życzę zdrowia
Piotr

edit.
Widzę, że w trakcie tworzenia mojej odpowiedzi dopisał Kolega jeszcze końcowy akapit.
Nie liczyłem nigdy rezystorów na płytce dekodera. Nie wiem czy ich tam nie wlutowali, czy też ich tam w ogóle nie ma być.
Pamiętajmy jednak, że wyjścia te nie są tak jak w SUSI (wzorując się na magistrli I2C) wyjściami typu OC, tylko to są normalne wyjścia logiczne.
Obsługa SUSI jest tylko jedną z ich funkcji.
Nie zmienia to jednak faktu, że jeśli nawet taki fakt występuje, to nie przeszkadzał on mi do tej pory w poprawnej współpracy z modułami SUSI.
Swoją drogą, jeśli brakuje tam rezystora szeregowego, to znaczy, że pady wyjść SUSI nie mają połączenia z wyjściem dekodera... jak więc to działa?
Chyba nie musiał Kolega szukać innych (poza wskazanymi w instrukcji) miejsc podłączenia?
 
Ostatnio edytowane:
OP
OP
r-mik

r-mik

Pan Chlewik
Reakcje
145 30 0
#9
Brak rezystora to ewidentny błąd montażowy. Musi tam być bo jest włączony w szereg (470R jak zaleca SUSI) pomiędzy GPIO a wyjście SUSI.
Pin danych SUSI nie może być zwykłym GPIO MUSI być OC bo inaczej nie dałoby się odczytać impulsu potwierdzenia z dekodera SUSI.
Podłączałem tam gdzie ma być. Na fotce ewidentnie brak rezystora:

_MX623 - brak rezystora.JPG
 

PiotrK

Aktywny użytkownik
FREMO Polska
Reakcje
353 0 0
#10
A skąd bierzesz sygnał CLK? Na fotce podłączoną masz tylko GND i DATA.

Sprawdziłem jeden z moich dekoderów MX623. Jest wszystko.
Reklamuj ten dekoder.
Z drugiej strony piny na Twoim zdjęciu wyglądają na już "pobielone cyną" (może to złudzenie), a nie złocone jak na moim.
Może ktoś wcześniej przy nich dłubał i przyokazji odlutował się ten rezystor. Wyjaśnij te sprawę ze sprzedawcą.

Poniżej zdjęcie byś mógł sprawdzić sprawdzić obecność rezystorów.

20200616_211909.jpg
 
OP
OP
r-mik

r-mik

Pan Chlewik
Reakcje
145 30 0
#11
CLK? Susi działa więc jakoś CLK podłączyłem. Właśnie na CLK nie było rezystora, przewód odlutowałem aby wlutować rezystor dlatego styki nie są złote.
Reklamacja? Napiszą, że był lutowany i abym spadał tylko jak podłączyć SUSI bez lutowania?
 
Autor wątku Podobne wątki Forum Odpowiedzi Data
DCC 4
DCC 4
DCC 4
DCC 16
DCC 70

Podobne wątki