Mesa 7i96 - ochrana P1

Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

18. 9. 2022, 4:06

Čaute,

sepsal jsem dva způsoby jak ochránit konektor P1 na Mesa kartě.

https://zz912.webnode.cz/ochrana-p1/

První způsob je použití rozšiřující Mesa karty, což je docela drahé a navíc k tomu není převodní kabel 25-ti pin na 50ti pin, takže stejně člověk u toho musí přemýšlet (a to dneska bolí).

Druhý způsob je potřeba dobastlit, což se mi taky nelíbí.

Vlastní plošňák se mi vyrábět nechce.

Nevíte o něčem, co bych jen koupil za slušný peníz a zadrátoval? Nemusí to být přímo galvanické oddělení.
LinuxCNC - MESA 7i96
zz912.webnode.cz
atlan
Příspěvky: 3345
Registrován: 7. 2. 2011, 9:12

18. 9. 2022, 6:38

Navrhni plosak v cine vyrobia, len napajkujes suciastky, a budes to mat presnebako chces.
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

18. 9. 2022, 6:42

Pokud by něco existovalo, tak bych to radeji koupil.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

18. 9. 2022, 7:42

Pár poznámek.

Mesa 7i96 má i na pinech "holých" konektorů předřazenou ochranu. Platí to nejen pro 7i96, ale snad pro všechny nebo skoro všechny Mesy.
Je tam velmi chytře zapojené pole FET tranzistorů, které umožňují obousměrný provoz, ale současně limitují napětí, které jde na piny FPGA, na 3.3V, Proto je možné používat tyto vstupní piny například přímo na 5V-logice, i když hradlové pole by při napětí na vstupu nad 4V odešlo.
Je to (podle mě) jedna z chytře vymyšlených věcí.
Obecně ty Mesa karty navrhoval někdo, kdo skutečně studoval elektroniku a ne gender studies. Klobouk dolů.
Pozor! Ta ochrana se dá na většině karet jumperem vypnout. Tak si ji někdo omylem neznefunkční.

Ty optronové moduly jsou teda divné. Divně zapojené, divně fungující, a s navíc pak s divně dobastlenou úpravou. ;-)

Fotky na tom Tvém webu jsou hodně špatně čitelné. Ale jestli to luštím správně, tak na výstupu optronu má v kladné větvi připojený odpor 3k. Je to teda taková divná hodnota mimo řadu, no ale proč ne. Hlavně ale proč ho tam strkali.
Pokud je to skutečně přímo na tom modulu takhle zapojeno, tak je ten modul určený aby fungoval jako výstup typu PNP, neboli source.
Není to moc zvykem, že by se obecný optronový oddělovač takto dedikoval pro konkrétní zapojení, ale možné to samozřejmě je (i když trochu nesmyslné).
Takže by se zřejmě dalo předpokládat, že by mohla existovat i nějaká jeho jiná varianta.
To, že jsi odpor proklemoval, je (podle mě) správné řešení.

Analogové optrony (což je i tento případ) jsou rozdělené do kategorií podle proudového převodního poměru. Tj. jaký proud na výstupu dají při definovaném proudu na vstupu. Asi nejběžněji se používá kategorie 'C', tedy označení xx817C. Ta má přenosový poměr 200-400%. Takže při proudu vstupní diodou třeba 10mA by výstupem mohlo téct 20-40mA.

I optrony s nejnižším přenosovým poměrem začínají na 50%. Tedy při 10mA na vstupu by jím teklo až 5mA na výstupu.
Proč to píšu: máš tam uvedeno, že vstupem optronu Ti teče velký proud, kde LEDka na vstupu už vypaluje oči a topí. Ale přesto tam podle Tvých slov neteče výstupem dost velký proud na to, aby přetáhl nějaký pull-up 4.7k. To je opravdu divné.

No a proč jsem drze napsal (promiň), že je tam divně dobastlená úprava: zvednutí vstupního proudu na nějakou šílenou hodnotu sice zafungovalo, ale dobře to není. Jednak ten optron brzo odejde. Ale hlavně je třeba především přijít na to, kde je problém. Je to jaky bys měl přidřená ložiska nebo zataženou brzdu, a problém vyřešil tím, že prostě víc šlápneš na plyn, abys to překonal.
A navíc pokud jsi to zapojil tak, jak jsi namaloval, tak jsi navíc kompletně zrušil galvanické oddělení, kvůli kterému tam ten optron má smysl. Pokud takto propojíš země navzájem, tak pak už skoro pozbývá smysl tam cpát optron. Pak se to dá vyřešit snadněji nějakým levným integráčem nebo dokonce jen odporovým děličem.

Takže bych v první fázi prohlídl optron, co je na něm napsané.
A pak s ním trochu polaboroval. Pustil mu do vstupu definovaný proud, výstup připojil natvrdo mezi +5V a zem, a změřil, co tím výstupním tranzistorem poteče. A podle toho pak řešil dál.
A když tam chceš mít nějaký ten bočník k LED, co sis tam doletoval, tak ho aspoň zapoj na vstupní zem a ne na výstupní. I když máš třeba momentálně modul zapojený tak, že jsi země jumperem propojil.
Uživatelský avatar
gekonko
Příspěvky: 334
Registrován: 24. 10. 2014, 11:23
Bydliště: Bratislava

18. 9. 2022, 7:54

Ja som to riesil podobne, na mesa strane som rezistor dal prec a prepojil, na druhej strane mam 2k2 rezistor a funguje to na 5v logiku, Musim tam dat ale mensi, lebo pri 4.7V uz to nie je spolahlive. Prud som nemeral
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

18. 9. 2022, 7:59

To Gekonko: Mohl bych te poprosit, jestli by si byl ochotny zmerit proud na diodě optočlenu a napětí na strsně Mesy? Moje konkrétní Mesa považuje za logickou nulu i 1.5 Voltu.

To Mex: diky za podněty pro přemýšlení. Ještě nèco zkusím zmèřit a dám vědět
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

18. 9. 2022, 8:22

Noooo, tak mi to nedalo, nahodil jsem mašinu a udělal jsem pokus. Vstupní pin jsem spojil přes ampérmetr se zemí a naměřil jsem 15mA, což by odpovídalo PULL UP 0k333 a né 4k7.

Chová se to stejně jak při spuštěném LCNC, tak i při vypnutém.

Něco je tedy špatně, ale co?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

18. 9. 2022, 8:27

Pin je nakonfigurován jako výstupní.
A už musí být pěkně nasraný, co mu to tam na ten výstup furt připojuješ.
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

19. 9. 2022, 8:44

Ovšem nic tomu nenasvědčuje:

Kód: Vybrat vše

zdenek@CNC:~$ mesaflash --device 7i96 --addr 10.10.10.10 --readhmid
Configuration Name: HOSTMOT2

General configuration information:

  BoardName : MESA7I96
  FPGA Size: 9 KGates
  FPGA Pins: 144
  Number of IO Ports: 3
  Width of one I/O port: 17
  Clock Low frequency: 100.0000 MHz
  Clock High frequency: 200.0000 MHz
  IDROM Type: 3
  Instance Stride 0: 4
  Instance Stride 1: 64
  Register Stride 0: 256
  Register Stride 1: 256

Modules in configuration:

  Module: DPLL
  There are 1 of DPLL in configuration
  Version: 0
  Registers: 7
  BaseAddress: 7000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: WatchDog
  There are 1 of WatchDog in configuration
  Version: 0
  Registers: 3
  BaseAddress: 0C00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: IOPort
  There are 3 of IOPort in configuration
  Version: 0
  Registers: 5
  BaseAddress: 1000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: PWM
  There are 1 of PWM in configuration
  Version: 0
  Registers: 5
  BaseAddress: 4100
  ClockFrequency: 200.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: StepGen
  There are 4 of StepGen in configuration
  Version: 2
  Registers: 10
  BaseAddress: 2000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: QCount
  There are 1 of QCount in configuration
  Version: 2
  Registers: 5
  BaseAddress: 3000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: SSerial
  There are 1 of SSerial in configuration
  Version: 0
  Registers: 6
  BaseAddress: 5B00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 64 bytes

  Module: SSR
  There are 1 of SSR in configuration
  Version: 0
  Registers: 2
  BaseAddress: 7D00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: LED
  There are 1 of LED in configuration
  Version: 0
  Registers: 1
  BaseAddress: 0200
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

Configuration pin-out:

IO Connections for TB3 -> 7I96_0
Pin#                  I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

TB3-1                   0   IOPort       None           
TB3-2                   1   IOPort       None           
TB3-3                   2   IOPort       None           
TB3-4                   3   IOPort       None           
TB3-5                   4   IOPort       None           
TB3-6                   5   IOPort       None           
TB3-7                   6   IOPort       None           
TB3-8                   7   IOPort       None           
TB3-9                   8   IOPort       None           
TB3-10                  9   IOPort       None           
TB3-11                 10   IOPort       None           
TB3-13,14              11   IOPort       SSR              0        Out-00          (Out)
TB3-15,16              12   IOPort       SSR              0        Out-01          (Out)
TB3-17,18              13   IOPort       SSR              0        Out-02          (Out)
TB3-19,20              14   IOPort       SSR              0        Out-03          (Out)
TB3-21,22              15   IOPort       SSR              0        Out-04          (Out)
TB3-23,24              16   IOPort       SSR              0        Out-05          (Out)

IO Connections for TB1/TB2 -> 7I96_1
Pin#                  I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

TB1-2,3                17   IOPort       StepGen          0        Step/Table1     (Out)
TB1-4,5                18   IOPort       StepGen          0        Dir/Table2      (Out)
TB1-8,9                19   IOPort       StepGen          1        Step/Table1     (Out)
TB1-10,11              20   IOPort       StepGen          1        Dir/Table2      (Out)
TB1-14,15              21   IOPort       StepGen          2        Step/Table1     (Out)
TB1-16,17              22   IOPort       StepGen          2        Dir/Table2      (Out)
TB1-20,21              23   IOPort       StepGen          3        Step/Table1     (Out)
TB1-22,23              24   IOPort       StepGen          3        Dir/Table2      (Out)
TB2-2,3                25   IOPort       PWM              0        PWM             (Out)
TB2-4,5                26   IOPort       PWM              0        Dir             (Out)
TB2-7,8                27   IOPort       QCount           0        Quad-A          (In)
TB2-10,11              28   IOPort       QCount           0        Quad-B          (In)
TB2-13,14              29   IOPort       QCount           0        Quad-IDX        (In)
TB2-16,17              30   IOPort       SSerial          0        RXData0         (In)
TB2-18,19              31   IOPort       SSerial          0        TXData0         (Out)
Internal-TXEn          32   IOPort       SSerial          0        TXEn0           (Out)
Internal               33   IOPort       SSR              0        AC Ref          (Out)

IO Connections for P1 -> 7I96_2
Pin#                  I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

P1-01/DB25-01          34   IOPort       None           
P1-02/DB25-14          35   IOPort       None           
P1-03/DB25-02          36   IOPort       None           
P1-04/DB25-15          37   IOPort       None           
P1-05/DB25-03          38   IOPort       None           
P1-06/DB25-16          39   IOPort       None           
P1-07/DB25-04          40   IOPort       None           
P1-08/DB25-17          41   IOPort       None           
P1-09/DB25-05          42   IOPort       None           
P1-11/DB25-06          43   IOPort       None           
P1-13/DB25-07          44   IOPort       None           
P1-15/DB25-08          45   IOPort       None           
P1-17/DB25-09          46   IOPort       None           
P1-19/DB25-10          47   IOPort       None           
P1-21/DB25-11          48   IOPort       None           
P1-23/DB25-12          49   IOPort       None           
P1-25/DB25-13          50   IOPort       None 
GPIO-output.png
Nenapadá Tě, co ještě zkontrolovat?
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

20. 9. 2022, 8:23

Vypadá to, že s PCW najdeme chybu. Potřebuje v práci něco prověřit.

https://forum.linuxcnc.org/27-driver-bo ... ood#252429
LinuxCNC - MESA 7i96
zz912.webnode.cz
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

21. 9. 2022, 12:05

Jo, je tam chyba.
Je tam odpor 300R.
Je to ale na opačné straně konektoru, než to máš na těch Tvých obrázcích. Je to pin 13/25 (podle toho, jestli se konektor čísluje normálně nebo podle čísel pinů na Canonu).

Je pěkné, žes na to narazil. A je zajímavé, že na to ještě nikdo nepřišel, když pin 13 je na LPT defaultně vstupní.
Tak buď to lidi nepoužívají, nebo to použili jako výstup a FPGA to prostě přepralo.
Nebo možná mají všichni tak silné oddělovací desky, že to taky přepraly.

Tak nažhavit páječku a odpor vyměnit za 4k7 v pouzdře 0603. Tohle je opravdu nesmyslná hodnota.
Je fajn, žes to odhalil a zveřejnil. :)
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

21. 9. 2022, 6:28

Docela mě některé Tvé hlášky v mém životě pozitivní ovlivňují.
1) Chybělo mi, že si se nezmínil že jsem pechfógl. Měl jsem dvě karty 7i96 a 7i96s. tudíž celkem 34 GPIO pinů a já si vybral na měření jen ten jediný špatný. Ovšem už to možná u mě bereš jako samozřejmost a nepřekvapuje Tě to.

2) Kdybych nastavil výstupní pin na output a pak ho stahoval ke GND, "tak bych šel k zrcadlu a naliskal si"

3) A nejčastější Tvoje hláška, kterou používám nejen v elektrosvětě je "Duchové neexistují". Tahle hláška mě drží nad vodou, když se všechno se*e.

Jinak je to tenhle pin:
Wrong_pin.jpg
A rezistor R38:
20220921_054800.jpg
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
zz912
Příspěvky: 1354
Registrován: 25. 5. 2008, 7:16

21. 9. 2022, 6:40

Co myslíte, že PCW chtěl říci tímto?
OK its R38

It looks like it was a deliberate change to allow better operation with G540 drives (that need more high drive on the charge pump signal = DB25 pin16 =GPIO50)

I will fix the documentation
Dokážete to přeložit z technické odborné angličtiny do amatérské češtiny?

Jinak jsem upravil stránku na svých webovkách ať tam nejsou zavádějící informace. Takže pokud čtete toto vlákno až teď, tak Vám nebudou některé věci dávat smysl. původně jsem měl na stránkách popsán způsob, jak přeprat rezistor R38.
Naposledy upravil(a) zz912 dne 21. 9. 2022, 7:04, celkem upraveno 1 x.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
gekonko
Příspěvky: 334
Registrován: 24. 10. 2014, 11:23
Bydliště: Bratislava

21. 9. 2022, 6:55

zz912 píše: 21. 9. 2022, 6:40 Co myslíte, že PCW chtěl říci tímto?
OK its R38

It looks like it was a deliberate change to allow better operation with G540 drives (that need more high drive on the charge pump signal = DB25 pin16 =GPIO50)

I will fix the documentation
Dokážete to přeložit z technické odborné angličtiny do amatérské češtiny?
Podla guglu gecko g540 drivery maju moznost pouzit vyuzit watchdog timer (charge pump), kedy z riadiaceho systemu pozielas 10kHz pulzy do tohto driveru, a vies tym padom sledovat "vytuhnutie" NC.
Predpokladam, ze 10kHz signal z mesy by bez tak nizkeho odporu nebol pre gecko driver citatelny.
prcek
Příspěvky: 692
Registrován: 31. 10. 2016, 2:26

21. 9. 2022, 7:07

zz912 píše: 21. 9. 2022, 6:28 ...
Myslím, že jsi několika lidem ušetřil solidní bolehlav.
--
Všechno je snadné, než to zkusíš sám.
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“