Fórum témák
» Több friss téma |
Köszönöm szépen.
Ezekre okvetlen rákeresek, mert még semmit nem tudok róluk.
Biztosan ez lesz a megoldás.
Igaz, első ránézésre még nem értem, hogyan lehet egy adott címhez rendelni. Ha lehetne mondjuk akár 4 párhuzamos portot nyerni ilyenekkel, akkor biztosan ez a megoldás.
Kérdés a sebesség is. Egy 16 bites GPIO porton egy teljes port művelet az 1, maximum 2 CPU cycle. Ha jól emlékszem. Shift regiszternél idő, mire kimegy az adat. Ráadásul egy Bluepillre plusz shift regiszter az vagy külön NYÁK, vagy vezeték dugdosás. Egy Nucleo-ra viszont rámegy az egész 2x16 bit egyben...
Viszont a 4 párhuzamos port szöget ütött a fejembe. Ilyenre létezik cél megoldás, és egyszerűbb, mint egy mikrokontrollerből csinálni. Például ez.
Nagyon köszönöm!
Ezek szerint teljesen el voltam tévedve. Én úgy gondoltam, hogy néhány IC-vel, mint mondjuk ez a shift regiszter gyorsabban lehet megoldani a problémát, mint mondjuk egy mikrovezérlő, amihez még program is kell. Nekem a sebesség nem annyira lényeges. Ha egy ISA port sebességét tudja, az már nekem elég. Gondolom, te nagyon otthon lehetsz a témában. Ezért megkérdezném, hogy mi lenne a módja annak, hogy PCI buszon keresztül tudjak vezérelni valamit akár 16 bites adatbusszal. Annyit tudok a dologról csak, hogy multiplex jön az adat és cím, de hogy hogyan lehet szétválasztani őket, arra még nem találtam leírást. Mert ha ez menne, akkor nem is volna szükségem más irányba nézelődni. Egy PCI ISA átalakító már megoldaná a problémámat, de ilyet nem tudtam szerezni. No meg jó volna tisztába lenni a PCI működésével. Tudnál erről írni valamit, vagy esetleg volna egy link, hogy mit és hogyan. Persze, magyarul volna a legjobb, ha lehet.
Le tudnád írni PONTOSAN, hogy mit szeretnél?
Kezdetnek egy CNC esztergára gondoltam.
Tudom, egyszerűbben is meg lehet oldani, de azért éppen ezzel próbálkoznék elsőre, mert a CNC dolgokban nagyjából eligazodok. Tudom, hogy mit várjak egy ilyen vezérléstől. Kezeljen útmérőket és a főorsó enkóderét. Lehessen hozzá kapcsolni akár léptető motorokat, akár szervomotort. A grafikus felület a PC-n, de ennek az eszköznek legyenek azért kijelzőik.X,Y, fordulatszám és előtolás. Nagyjából ennyi. AVR-el oldottam már meg hasonló feladatot.
Sajnos, csak most olvastam ezt a hozzászólást, ugyanebbe futottam bele most.
Segway-ek mainboardját gd32f103rctx szerettem volna átprogramozni, sikerült is, de ahogy a kezelőszerveket meghosszabbítottam 1m-es drót végére (két kapcsoló és egy potméter), két panelt is sikerült hazavágni. A stabilizátor megúszta, de a proci kemény zárlatba került a Vdd Vss között. PIC-nél ilyet még soha nem tapasztaltam, pedig jópárral dolgoztam már. A másik problemám, hogy GD32F130-ast (nem elírás!, az előző kistestvére) programoznék és az ST-LINk V2.0 nem tudja írni egyáltalán. Olvasni tudja, chip erase, sector erase megy, de a programozásnál az első byte már hibát jelez. Külső tápról megy a proci és a kétvezetékes módszerrel, st tools progival írnám. Sajnos nagyon kezdő vagyok az ARM vonalon.
GD32 az a GigaDevices eszköze, és nem az STM-é. Kérj tőlük eszközt a programozáshoz.
STM32F130 nincsen. M0 maggal az STM32F0XX sorozat rendelkezik.
Az ST-Link az elvileg csak STM eszközökhöz használható. Trükközéssel néha működik mással is. Az STM32 sorozat az az STMicroelectronics nevű cég terméke, a GD32 pedig a Gigadevce terméke. Ez utóbbi is megvásárolta az ARM-tól a processzormagot, köré rakta a saját perifériáit, amiknek a regiszterkiosztása, és elnevezése többé-kevésbé megyegyezik az STM32 sorozatéval. Tehát annyra hasonlít rá, hogy még éppen legális. Nem klón. De nem is ugyanaz. Több kérdés is felmerült bennem ezután. 1. Miért nem STM32 MCU-t használsz? Nagyobb a választék, jobb a terméktámogatás. 2. Ha kitartasz a GD32 mellett, akkor miért nem a Gigadevice által készített, ajánlott fejlesztőeszközöket használod?
Köszönöm neked és Rolandgw-nek is a választ.
Azért kell ezt használnom, mert: - ez a chip van a hoverboardok kész alaplapján. - ST-LINK programozót sikerült kölcsönkérnem, GD link nem volt - árában kb fele-harmada az azonos tudású STM-nek.
Most nézem, a GD-link 16000+ÁFA, vagyis 20e felett van.
Az ST-LINK nagyjából ezer forint alatt van.
Az inkább 7 ezer. Az ezer alatti az hamisítvány.
Szevasztok!
Meg kérdezném, hogy az STM32-nél egy port különböző bitjei lehetnek eltérő sebességre állítva? PORTA-n van a SPI1 amit nagy sebességen HIGH-en szeretnék járatni, és az LCD vezérlése amit lassabban MEDIUM-on. Mert a hosszú kábel miatt szemetel a kijelző! Lehet így használni?
A reference manual szerint (stm32f429-rm0090) minden láb beállítható külön sebességűre az OSPDEEDR regeszteren keresztül.
Így szerintem használhatod.
Tudomásom szerint mindegyik stm32 családnál lábanként állítható a sebesség. Viszont attól hogy a jel felfutás/lefutás sebessége lassabb lesz, nem fog megszűnni a hosszú kábel okozta szemetelés.
Köszönöm mind a két hozzászólást.
Sajnos még nem jutottam odáig, hogy teszteljem is az ötletemet. Arduinos 8bites TFT, tulajdonképpen lassabb sebességre tervezték az 16MHz AVR-ekhez. Akkor mit ajánlotok a probléma megoldására? A hozzászólás módosítva: Okt 9, 2019
Nincs itt valami félreértés? A portbitek beállítható "sebessége" valójában csak az átbillenés idejét befolyásolja (a kimeneti feszültség változási sebességét korlátozza, nagyon leegyszerűsítve egy RC tagot közbeiktat). Az, hogy a TFT kijelző lábait milyen sebességgel kapcsolgatod, az már a programodtól függ. Én például most egy LED-et 1 Hz frekvenciával kapcsolgatok az egyébként max. 50 MHz-re állított portlábon.
Akkor tényleg félre értelmeztem ezt a HW lehetőséget!
Nincsen ennek a sebesség szabályozásnak valami egyszerűbb hardveres beállítása? Muszáj a programban késleltetni? Pl.: A PSRAM HCLOK clok cycles beállításokkal lehet játszani? A hozzászólás módosítva: Okt 9, 2019
HW lehetőség: az órajelet előállító kvarcot alacsonyabb frekvenciájúra cseréled (feltéve, hogy nem a belső RC oszcillátorról jár a proci, meg ez ugye minden mást is visz magával). A többi verzió szoftver módosítást igényel.
Mivel nem tudjuk milyen vezérlő milyen programmal milyen periférián keresztül működteti a milyen kijelzőt, a szoftveres időzítés módosításának lehetőségéről többet nem lehet mondani.
A vezérlő: STM32F103RB
Az LCD: arduino-uno-2-4-tft-lcd-display-shield-touch-panel-ili9341 Bővebben: Link Átkötve FMSC-re. A program ezt módosítanám: Bővebben: Link A hozzászólás módosítva: Okt 9, 2019
Letölthető: Bővebben: Link
És elkészítettem az STM CubeMX-es változatát. A hozzászólás módosítva: Okt 9, 2019
Idézet: „Átkötve FMSC-re.” Bocsi már keverem az F407zet projectel! Itt nincsen FSMC! LCD adat port átkötve: PB08-PB14-re A hozzászólás módosítva: Okt 9, 2019
Úgy tűnik, akkor marad a késleltetés a programban.
LCD adat írás közben várakozás, de HAL_Delay(1);-t nem akarok használni, az soknak tűnik. Viszont pár __asm nop utasítás segíthet? A hozzászólás módosítva: Okt 9, 2019
A kérdés a megjegyzésben:
A hozzászólás módosítva: Okt 9, 2019
Ilyen próbálkozás működhet?
A hozzászólás módosítva: Okt 9, 2019
CMSIS-ben:
Miért nem használod az FMC perifériát 8bites LCD módban? Ott hardveresen megadhatod a késleltetéseket, majd DMA-val lőheted a képernyőre az adatokat.
|
Bejelentkezés
Hirdetés |