Připojení k SPI 3.3V součástku s 1.8V

PanVP

Připojení k SPI 3.3V součástku s 1.8V
« kdy: 24. 04. 2021, 16:55:45 »
Ahoj, kamarád se na mě obrátil s prosbou.

Potřebuji k RPI (protože má SPI) a jeho SPI (3.3V) připojit čip s SPI 1.8V. Prostě mají jiná napětí.

Konkrétně se jedná o: Winbond 25q256JW
NOR Flash Serial (SPI) 1.8V 256M-bit 32M x 8 6ns 24-Pin TFBGA

Malý švábík 8 kontaktů, 4 z každé strany, "malá" flash paměť - pokud nějaké ještě nejsou zespodu...

To W asi upozorňuje na povolené napájecí napětí 1.75-1.95V.
Vstupy asi nebudou 3.3V tolerant že?

Pro rs232ku jsem měnil úrovně jednoduchým odporovým děličem (udělat z 5V těch 3.3V pro zařízení) ale to pro SPI asi nepůjde hm?

Hardware dělám vyloženě okrajově, navíc tohle je naletované v zařízení a okolo jsou další IO a vyndat (mně) to nepůjde (bez zničení zařízení).

Tahle vychytávka k RPI to třeba umí:
https://github.com/hexeguitar/FLASH-Pi
...ale sehnat to, sehnat to rychle, sestavit, odladit...

Mám dostupný "8 Channel 5V/3.3V IIC UART SPI TTL Logic Level Converter Bi-Directional", prý by měl umět i 1.8V, ale než se pustím do pájení a skládání, tak se chci ujistit, že není nějaká méně trnitá cesta. Ten jsem ovšem nikdy nepoužíval. Nerad bych ten čip poškodil, resp. poškodit ho by bylo velmi drahé.

Co s tím?


Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #1 kdy: 24. 04. 2021, 17:13:42 »
Podle datasheetu to skutečně 3.3 V nezvládne: napájecí napětí je kolem 1.8 V, a napětí na kterémkoliv pinu může být maximálně o 0.6 V vyšší. Takže musíte napětí SPI překládat.

Buď tím level converterem, co máte (podle názvu těžko určím co to přesně je), a nebo můžete level shifter postavit z diskrétních součástek. SPI nemá duplexní linky, takže to jde snadno: MOSI a SCK snižujete z 3.3 na 1.8 prostou rezistivní děličkou, a MISO zvyšujete z 1.8 na 3.3 V pomocí tranzistoru.

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #2 kdy: 24. 04. 2021, 17:25:33 »
Mam za to, ze lidi, co si neumi vyresit ani problem s prizpusobenim napetovych urovni - a to ani po teoreticke strance, by se nemeli poustet vubec do bastleni. Predpokladam ze ta flash pamet je nejspis nejaky BIOS na jine desce, takze pri urovni znalosti "kamarada" si zadelava na dalsi - omnoho vetsi - prusvih.

PS: A ze to nejde vyndat bez zniceni zarizeni? Ale jdete!
« Poslední změna: 24. 04. 2021, 17:27:24 od RDa »

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #3 kdy: 24. 04. 2021, 17:43:34 »
Pro rs232ku jsem měnil úrovně jednoduchým odporovým děličem (udělat z 5V těch 3.3V pro zařízení)
Tak to asi nebyla RS232, ta má +12 a -12, a navíc je opačně (-12 znamená jedničku), ale TTL UART.

ale to pro SPI asi nepůjde hm?
Proč by to nemělo jít? Důležité je jen aby Raspberry tu nižší vstupní hodnotu vyhodnotilo jako 1, což bohužel tedy vypadá že je dost těsné. Chtělo by to vyzkoušet. Když to nepůjde, tak na ten jeden drát (MISO) budeš muset dát shifter z tranzistoru, který si vygooglíš.

Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #4 kdy: 24. 04. 2021, 19:05:32 »
Flashky od Winbondu (a klony) se vyrábí i v 3.3V variantě. Nejlepší tedy patrně bude použít vhodnou součástku.

Pokud to potřebuješ jen přečíst nebo jednorázově přepsat a nemáš k dispozici žádný 1.8V systém (třeba nějakou destičku s mikrokontrolérem, atd), tak sice můžeš vyzkoušet nějaké analogové tranzistorové shiftery, ty ale nesmíš taktovat moc rychle, protože celkem významě zkreslují signál. Lepší řešení je použít něco jako https://www.laskarduino.cz/8-kanaly-obousmerny-prevodnik-logickych-urovni-5v-a-3-3v/ což je mnohem robustnější (a potenciálně spolehlivější) řešení.


Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #5 kdy: 24. 04. 2021, 21:06:51 »
SPI je ještě skoro DC... :-)

Ne vážně, jestliže má pod kontrolou mastera (což tazatel má, když píše o RPi), tak si to může taktovat jak pomalu potřebuje. Winbond flashky (a drtivá většina dalších SPI zařízení) ochotně shiftují bity i po 1 Hz.

PanVP

Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #6 kdy: 24. 04. 2021, 21:26:25 »
SPI nemá duplexní linky, takže to jde snadno: MOSI a SCK snižujete z 3.3 na 1.8 prostou rezistivní děličkou, a MISO zvyšujete z 1.8 na 3.3 V pomocí tranzistoru.

Dík!

se nemeli poustet vubec do bastleni
Umím připojit zařízení, poskládat jednotlivé kousky lega.
Ty toho víš samozřejmě mnohem víc, ostatně aby ne, když umíš programovat hradlové pole.
Nicméně 3.3V a 5V logika je překvapivě kompatibilní, těch 3.3V je víc než prahová úroveň většiny logických prvků, takže to je v pohodě. Ano, moje znalosti této úrovně končí u pull up/down rezistorů a jednoduchých odporových děličů. Moje silné stránky jsou prostě jinde.

PS: A ze to nejde vyndat bez zniceni zarizeni? Ale jdete!
Píšu, že bych to nevyndal bez zničení zařízení. Nikoliv, že to nejde.

Je to jednorázovka, asi použiju ten jednoduchý shifter.

Ne vážně, jestliže má pod kontrolou mastera (což tazatel má, když píše o RPi), tak si to může taktovat jak pomalu potřebuje. Winbond flashky (a drtivá většina dalších SPI zařízení) ochotně shiftují bity i po 1 Hz.
Trochu se bojím, co se bude dít, protože ta paměť je zapojená uvnitř zařízení.
Dost nerad bych ten čip domrvil ještě víc.
Zlatá doba, kdy se čipy dávaly do socketů.
Každopádně díky.

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #7 kdy: 24. 04. 2021, 21:28:30 »
SPI je ještě skoro DC... :-)

Ne vážně, jestliže má pod kontrolou mastera (což tazatel má, když píše o RPi), tak si to může taktovat jak pomalu potřebuje. Winbond flashky (a drtivá většina dalších SPI zařízení) ochotně shiftují bity i po 1 Hz.

SPI nema proc nefungovat na jakekoliv frekvenci - kdyz je to master/slave postaveni, a casovani diktuje master.

U I2C se da bavit o nejnizsi frekvenci, ale to uz pak neni cistokrvne I2C - ale SMBus, kde byl zaveden timeout mechanismus na odblokovani zbernice.

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #8 kdy: 24. 04. 2021, 21:35:21 »
se nemeli poustet vubec do bastleni
Umím připojit zařízení, poskládat jednotlivé kousky lega.
Ty toho víš samozřejmě mnohem víc, ostatně aby ne, když umíš programovat hradlové pole.
Nicméně 3.3V a 5V logika je překvapivě kompatibilní, těch 3.3V je víc než prahová úroveň většiny logických prvků, takže to je v pohodě. Ano, moje znalosti této úrovně končí u pull up/down rezistorů a jednoduchých odporových děličů. Moje silné stránky jsou prostě jinde.


Ne vážně, jestliže má pod kontrolou mastera (což tazatel má, když píše o RPi), tak si to může taktovat jak pomalu potřebuje. Winbond flashky (a drtivá většina dalších SPI zařízení) ochotně shiftují bity i po 1 Hz.
Trochu se bojím, co se bude dít, protože ta paměť je zapojená uvnitř zařízení.
Dost nerad bych ten čip domrvil ještě víc.
Zlatá doba, kdy se čipy dávaly do socketů.
Každopádně díky.

Presne tohle jsem myslel - protoze jenom absolutniho amatera napadne programovat flashku v zarizeni.

Zaprve - jestli to budete delat ve vypnutem stavu - fungovat to nebude: napajeci vetev z flashky bude rozlezla ruzne po desce, navic IO piny mivaj ESD ochrany a diody vedou do zeme a do napajeci vetve s potencialem zeme. Tohle je spatny.

Zadruhe - pokud to budete delat za chodu - jste schopen zajistit stav vysoke impedance na budicich ktere ridili tu flashku? Jsou tam oddelovaci seriove odpory na vedeni, aby jste mohl naprasaka pripojit jine napeti k flashce?

Zatreti - tipy s odporovym delicem nebudou fungovat, kdyz signal bude s nizsi impedanci drzen v urovni v ramci desky.

Proste - VSECHNO SPATNE, ale vy to vite lip. Jasne. Radeji si hrajte s opravdovym Legem, a ne timto prosim.

Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #9 kdy: 24. 04. 2021, 22:55:08 »
casovani diktuje master

Časování transportu ano, ale na druhém konci může být libovolná logika s timeouty dle vůle autora. Např. starší MEMS senzory mívaly časové okno na vyčtení registru, protože když master četl, tak už běžela další konverze, jejíž výsledek byl zapsán do čteného registru. Během zápisu se zařízení chovalo jako kdyby bylo nCS volné.

PanVP

Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #10 kdy: 24. 04. 2021, 22:57:46 »
Presne tohle jsem myslel - protoze jenom absolutniho amatera napadne programovat flashku v zarizeni.

Nicméně se to běžně dělá.

Zaprve - jestli to budete delat ve vypnutem stavu - fungovat to nebude: napajeci vetev z flashky bude rozlezla ruzne po desce, navic IO piny mivaj ESD ochrany a diody vedou do zeme a do napajeci vetve s potencialem zeme. Tohle je spatny.
Ano, někdy se musí zařízení zapnout, někdy to jde ve vypnutém stavu.
Už jsem to několikrát dělal.

Zadruhe - pokud to budete delat za chodu - jste schopen zajistit stav vysoke impedance na budicich ktere ridili tu flashku? Jsou tam oddelovaci seriove odpory na vedeni, aby jste mohl naprasaka pripojit jine napeti k flashce?
No...to bohužel v tomhle případě nevím, tak budu doufat.

Zatreti - tipy s odporovym delicem nebudou fungovat, kdyz signal bude s nizsi impedanci drzen v urovni v ramci desky.
No...

Proste - VSECHNO SPATNE, ale vy to vite lip. Jasne. Radeji si hrajte s opravdovym Legem, a ne timto prosim.
Jsi milej  ;D

V tomhle případě mám problém JEN s tím napájením, kdyby ta paměť byla na 3.3V, tak jí vezmu do kleštiček a na zařízení "podržím" reset (dokud se drží reset, řídící logika nic nedělá a paměť vyčtu. Tohle je šváb na který jednak nemám kleštičky a jednak na napěťové úrovni, kterou jsem ještě nedělal.

Mimochodem, vedle čipu je konektor, který používá výrobce na servis.
Bohužel jeho zapojení mi je záhadou :-(
« Poslední změna: 24. 04. 2021, 23:06:53 od PanVP »

PanVP

Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #11 kdy: 24. 04. 2021, 23:26:57 »
Abych svoje tvrzení podložil i důkazy, že se podobné věci provádí i na čipech zapojených do PCB, tak dokonce se prodává "speciální přípravek" / lavička / "stolice".
https://www.aliexpress.com/item/4000127705515.html

Mimochodem, co s tím pouzdrem: WSON-8
Kdybych s tím zajel za někým, kdo má stanici, že bych tam přidal něco jako:
https://www.aliexpress.com/item/33059420544.html
(Samozřejmě za příznivější cenu?)

Jak jinak tam ten čip přidělat "odpojitelně"?

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #12 kdy: 25. 04. 2021, 02:06:38 »
Zaprve - jestli to budete delat ve vypnutem stavu - fungovat to nebude: napajeci vetev z flashky bude rozlezla ruzne po desce, navic IO piny mivaj ESD ochrany a diody vedou do zeme a do napajeci vetve s potencialem zeme. Tohle je spatny.

My jsme flashovali Coreboot do různých starších thinkpadů (x220, x230…) a normálně to fungovalo. Vypnuté zařízení, napájení připojené na flashku (ano, určitě to začlo napájet i nějaké další komponenty na desce, ale nic se nestalo). Na flashku nikdo nesahal (tj. sběrnice ve vysoké impedanci) dokud se nezmáčklo zapínací tlačítko. Předřečník má na zařízení reset, to bude podobné.

Citace
Mimochodem, vedle čipu je konektor, který používá výrobce na servis.
Bohužel jeho zapojení mi je záhadou :-(
Tak to propípej proti nožičkám té flashky, ne?

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Připojení k SPI 3.3V součástku s 1.8V
« Odpověď #13 kdy: 25. 04. 2021, 02:33:31 »
Pro rs232ku jsem měnil úrovně jednoduchým odporovým děličem (udělat z 5V těch 3.3V pro zařízení)
Tak to asi nebyla RS232, ta má +12 a -12, a navíc je opačně (-12 znamená jedničku), ale TTL UART.

Ono to je trošku složitější, RS232 má logickou 1 v rozmezí od -3V do -25V a logickou 0 od +3V do +25V. PC má obvykle napětové úrovně -12V/+12V, ale mělo by umět komunikovat s čímkoli v tom napěťovém rozsahu.