w5100 ethernet shield és W25Q54FV flash SPI probléma.
w5100 ethernet shield és W25Q54FV flash SPI probléma.
Sziasztok!
Segítséget, irány mutatást szeretnék kérni a következő problémával kapcsolatban.
A hardver összetevői:
-SainSmart DUE http://www.sainsmart.com/sainsmart-due- ... black.html
-CTE 4,3"(ssd1963)LCD touch panel SD-kártya http://www.ebay.com/itm/SainSmart-4-3-T ... 338f2c2b53
-Wiznet w5100 ethernet shield
A kijelzőhöz UTFT , UTouch ,UTFT_SPIflash könyvtárakat használtam a következő oldalról. http://www.henningkarlsen.com/electroni ... .php?id=51
A flash tartalom feltöltéséhez pedig a SPIflash könyvtárat. http://www.henningkarlsen.com/electroni ... .php?id=65
A probléma a következő lenne. Adott a fent említett kijelző amin található egy W25Q64FV flash ic amibe feltöltöttem különböző képeket amik egy menü megjelenését hívatott szolgálni. Ezzel eddig nem is volna gond, mert számomra megfelelően működik az érintő képernyő segítségével. Szerettem volna ha az eszköz elérhető lett volna hálózatról, internetről ezért esett a választás a Wiznet w5100 shield-re(ez volt itthon) ekkor szembesültem a problémával, hogy az Ethernet shield és a flash ic is a SPI bus-t használja. Sehogy sem sikerül a két eszközt egy program kódban működésre bírni. Az eszközök külön-külön megfelelően működnek. A mosi, miso, sck, közösek. A flash ic pin52(flash_cs) az ethernet pedig pin10(eth_cs) lábakat használja. Nem tudom jól fejezem ki magam talán a "cs" lábak vezérlésével van a gond. Ha jól tudom a "cs" láb akkor aktív amikor alacsony szinten van. Viszont a kód futtatása közben az eth_cs magas szintre a flash_cs alacsonyra az olvasás idejére és utána a flash_cs magas szintre a eth_cs pedig alacsony szintre teszem utána nem elérhető. Elnézést ha nem fogalmaztam helyesen nem vagyok programozó guru.
Válaszotokat és segítségeteket előre is köszönöm.
Segítséget, irány mutatást szeretnék kérni a következő problémával kapcsolatban.
A hardver összetevői:
-SainSmart DUE http://www.sainsmart.com/sainsmart-due- ... black.html
-CTE 4,3"(ssd1963)LCD touch panel SD-kártya http://www.ebay.com/itm/SainSmart-4-3-T ... 338f2c2b53
-Wiznet w5100 ethernet shield
A kijelzőhöz UTFT , UTouch ,UTFT_SPIflash könyvtárakat használtam a következő oldalról. http://www.henningkarlsen.com/electroni ... .php?id=51
A flash tartalom feltöltéséhez pedig a SPIflash könyvtárat. http://www.henningkarlsen.com/electroni ... .php?id=65
A probléma a következő lenne. Adott a fent említett kijelző amin található egy W25Q64FV flash ic amibe feltöltöttem különböző képeket amik egy menü megjelenését hívatott szolgálni. Ezzel eddig nem is volna gond, mert számomra megfelelően működik az érintő képernyő segítségével. Szerettem volna ha az eszköz elérhető lett volna hálózatról, internetről ezért esett a választás a Wiznet w5100 shield-re(ez volt itthon) ekkor szembesültem a problémával, hogy az Ethernet shield és a flash ic is a SPI bus-t használja. Sehogy sem sikerül a két eszközt egy program kódban működésre bírni. Az eszközök külön-külön megfelelően működnek. A mosi, miso, sck, közösek. A flash ic pin52(flash_cs) az ethernet pedig pin10(eth_cs) lábakat használja. Nem tudom jól fejezem ki magam talán a "cs" lábak vezérlésével van a gond. Ha jól tudom a "cs" láb akkor aktív amikor alacsony szinten van. Viszont a kód futtatása közben az eth_cs magas szintre a flash_cs alacsonyra az olvasás idejére és utána a flash_cs magas szintre a eth_cs pedig alacsony szintre teszem utána nem elérhető. Elnézést ha nem fogalmaztam helyesen nem vagyok programozó guru.
Válaszotokat és segítségeteket előre is köszönöm.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
A CS mondja meg, hogy melyik eszközzel beszélgetnél. A memóriachipet kösd át máshova szabad lábra és a kódban is arra hivatkozz.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
Köszönöm a gyors reagálást!
A chip az rajta van a kijelzőn egy kicsit bonyolult lenne átkötni. Elméletileg amit a w5100 használ CS az szabadon van ami a 10 láb. A DUE hardveres SPI lábai:
SCK D76;
MISO D74;
MOSI D75;
ETH-CS D10 //w5100
SD-CS D4 //w5100
Flash-CS D52 //CTE shield
Tanácstalan vagyok most próbálgatom a kódot ha benne hagyom azt a sort, hogy flash.begin();(elméletileg engedélyezi a flash-t. )akkor betölti a hátteret ha viszont
//flash.begin(); akkor viszont látom a hálózaton. Azt próbálom most, hogy van az server.begin(); ami csak a void setup(){}-ban van jelen most megpróbálom bemásolni a kliens csatlakozása elé is.
A chip az rajta van a kijelzőn egy kicsit bonyolult lenne átkötni. Elméletileg amit a w5100 használ CS az szabadon van ami a 10 láb. A DUE hardveres SPI lábai:
SCK D76;
MISO D74;
MOSI D75;
ETH-CS D10 //w5100
SD-CS D4 //w5100
Flash-CS D52 //CTE shield
Tanácstalan vagyok most próbálgatom a kódot ha benne hagyom azt a sort, hogy flash.begin();(elméletileg engedélyezi a flash-t. )akkor betölti a hátteret ha viszont
//flash.begin(); akkor viszont látom a hálózaton. Azt próbálom most, hogy van az server.begin(); ami csak a void setup(){}-ban van jelen most megpróbálom bemásolni a kliens csatlakozása elé is.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
Meg kell nézni, hogy minden SPI ezsköz _KÜLÖN_ CS lábon legyen.
A eszkoz.begin() pedig meglesendő a *.cpp állományban. Hátha fix CS került be
CS -> Outputra állítani és kézzel H/L állapotokba rakni...
A leírásodból ítélve CS ütközés van a memóriakártya és a W5100 közt.
A eszkoz.begin() pedig meglesendő a *.cpp állományban. Hátha fix CS került be
CS -> Outputra állítani és kézzel H/L állapotokba rakni...
A leírásodból ítélve CS ütközés van a memóriakártya és a W5100 közt.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
A cs pinek elméletileg rendben vannak mert ahogy már írtam az ethernet a pin10-et a flash ic pedig a pin52 használja ráadásul ezek megfelelnek a hardveres SPI bus kiosztásának is. Próbáltam már az általad ajánlott H/L szinteket is de az sem hozott eredményt.
Most, hogy nézegetem a *.cpp fájlokat az tűnt fel , hogy az ethernet spi busz beállítása 4Mhz, a flas-hez tartotozó *.cpp-ben pedig 21Mhz-re van definiálva a sebesség. Szerintem ez okozhat gondot, hogy nem egy frekvencián dolgoznak vagy nem jól gondolom?
Most, hogy nézegetem a *.cpp fájlokat az tűnt fel , hogy az ethernet spi busz beállítása 4Mhz, a flas-hez tartotozó *.cpp-ben pedig 21Mhz-re van definiálva a sebesség. Szerintem ez okozhat gondot, hogy nem egy frekvencián dolgoznak vagy nem jól gondolom?
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
21??
Az Avr chip 16 MHz-n jár, így a SPI 4 MHz lehetne....
Az SPInek 4 féle módja van: mode0...3
Ez is okozhat ütközést.
Az Avr chip 16 MHz-n jár, így a SPI 4 MHz lehetne....
Az SPInek 4 féle módja van: mode0...3
Ez is okozhat ütközést.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
Jelen esetben mint ahogy az elején is írtam "SainSmart DUE http://www.sainsmart.com/sainsmart-due- ... black.html" környezetről van szó amiben a SAM3X8E proci 84Mhz-en ketyeg és azért 21, mert 4 osztja az alapóra jelet. A flash.h-ban pedig ez szerepel:
// *** Hardwarespecific defines ***
#define cbi(reg, bitmask) *reg &= ~bitmask
#define sbi(reg, bitmask) *reg |= bitmask
#define regtype volatile uint32_t
#define regsize uint32_t
#define F(arg) (arg)
// *** Hardware SPI-specific defines
#define SPI_CLOCK_4MHZ 0x15
#define SPI_CLOCK_21MHZ 0x04
//#define SPI_CLOCK_DEFAULT 0x04 // ez volt az eredeti alapértelmezett
#define SPI_CLOCK_DEFAULT 0x15 // így próbálkozok most
#define SPI_CHIP_SEL 3
egyenlőre ez sem segített még ezzel az utolsó sorral nem vagyok teljesen tisztában ez elméletileg a 3. cs lábat használja?
Az arduino.cc oldalon olvastam, hogy van valami kiegészítő SPI könyvtár ami ebben a környezetben (Arduino DUE) képes egyszerre több CS vezérelni vagy esetleg ezt félre értelmeztem?
// *** Hardwarespecific defines ***
#define cbi(reg, bitmask) *reg &= ~bitmask
#define sbi(reg, bitmask) *reg |= bitmask
#define regtype volatile uint32_t
#define regsize uint32_t
#define F(arg) (arg)
// *** Hardware SPI-specific defines
#define SPI_CLOCK_4MHZ 0x15
#define SPI_CLOCK_21MHZ 0x04
//#define SPI_CLOCK_DEFAULT 0x04 // ez volt az eredeti alapértelmezett
#define SPI_CLOCK_DEFAULT 0x15 // így próbálkozok most
#define SPI_CHIP_SEL 3
egyenlőre ez sem segített még ezzel az utolsó sorral nem vagyok teljesen tisztában ez elméletileg a 3. cs lábat használja?
Az arduino.cc oldalon olvastam, hogy van valami kiegészítő SPI könyvtár ami ebben a környezetben (Arduino DUE) képes egyszerre több CS vezérelni vagy esetleg ezt félre értelmeztem?
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
egy érdekesség, hogy ha dos parancssorból vagy a router-ből indítok egy ping tesztet akkor ott 4 elküldött, 4 fogadott és 0 elveszett csomagot produkál viszont ha böngészőből nézem ott nem jelenik meg semmi.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
Ping:
A W5100 önállóan intézi, ha az elején felparaméterezted.
Böngésző:
A w5100 megkapja és a AVR generéálja a weblap adatokat.
A W5100 önállóan intézi, ha az elején felparaméterezted.
Böngésző:
A w5100 megkapja és a AVR generéálja a weblap adatokat.
Re: w5100 ethernet shield és W25Q54FV flash SPI probléma.
Írtam egy pársort amit kiküld a weboldalra és ha megérintem a touch felületet akkor az oldalon megjelenik az érintés értéke pl.: "touch x: 70 touch y: 100", de abban a pillanatban, ha engedélyezem a flash-ből való olvasást akkor semmi nem látható. pedig flash olvasás előtt a ethernet CS pin-t "HIGH"-re a flash CS pin-t "LOW"-ra és amikor kiolvasta a flash-ből az adatokat akkor a flash CS pint-t "HIGH"-re az ethernet CS pint-t pedig "LOW"-ra. Így megvalósul az, hogy még olvas addig a flash van kiválasztva amikor pedig végzett az olvasással akkor pedig az ethernet eszköz van kiválasztva.
