Program írás help
A procicsere anyagi okok miatt most realizálódott. Átterveztem a panelt, ott a hidegítő kondi a RESET lábon, nem csak a felhúzó ellenállás.7kaz írta:Beforrasztottam a kondit, de továbbra sem megy. Úgyhogy procicsere
A proci szépen indult, a nem használt A/D lábakra kötött led-eket vezéreltem először, hogy ellenőrizzem az áramkört.
A korábban már megépített UART-USB átalakító (FT232RL) felkerült a soros portra (külön panelen), az SPI-re ezután beforrasztottam az ellenállásosztókat és az SD-foglalatot. A korábban már kitárgyalt programot betöltöttem a prociba, az ISP kábelt lehúztam, a kártya ment a helyére.
És már megint ugyanaz a hiba: csak akkor van soros kommunikáció a PC felé, ha az ISP kábel is a procin lóg! Ha lehúzom róla, akkor ugyan elindul a proci, de nincs adatküldés a PC felé. Elképzelésem sincs, hogy mi lehet a hiba!
A hardver rendben van, legalább ezerszer leellenőriztem, és most szigorúan csak az SPI port és pár db led van a procin (beleértve a működéshez szükséges sallangokat - kristály, hidegítő kondik, stb.).
Tápfesz pontosan 5V, az áramfelvétel normális, nincs melegedés.
Kapcsolásilag echte ugyanaz, mint a Webservernél, azaz SPI portlábak -> ISP csatlakozó -> ellenállásosztók -> SD-foglalat. Szándékosan megépített, kipróbált, bevált kapcsolási részleteket alkalmaztam.
A szoftvert korábban már kitárgyaltuk, de nekem valahogy mégsem tetszik, hogy hiába M32, ez már sok neki:
$hwstack = 128
$swstack = 128
$framesize = 128
A $framesize méretét 112-re csökkentve már nincs "Out of SRAM space" hibaüzenet, de a 128 már sok (?!) neki.
Ez lehet-e baj?
A "Config_MMC.bas" fájlban csupán az /SS portláb beállításán változtattam, mert az eredeti fájl M128-ra íródott. Ám ezen kívül semmit nem írtam át, főleg a "Config_AVR-DOS.bas"-ban nem.
Akad-e esetleg olyan fórumtag, aki már kezelt SD-kártyát AVR-DOS-szal? Mindenféle segítség jól jönne!
Az SPI beállításával kapcsolatban mindössze ez a néhány sor foglalkozik. Természetesen HW SPI-t használok.
Const Cmmc_soft = 0
Config Pinb.4 = Output
Mmc_cs Alias Portb.4
Set Mmc_cs
Config Pinb.4 = Output
Spi_ss Alias Portb.4
Set Spi_ss
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
Spsr = 1
Spiinit
A kód az eredeti "Config_MMC.bas"-ból származik. Egyetlen sor nem világos: "Spsr = 1". Erre nem találtam magyarázatot.
Const Cmmc_soft = 0
Config Pinb.4 = Output
Mmc_cs Alias Portb.4
Set Mmc_cs
Config Pinb.4 = Output
Spi_ss Alias Portb.4
Set Spi_ss
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
Spsr = 1
Spiinit
A kód az eredeti "Config_MMC.bas"-ból származik. Egyetlen sor nem világos: "Spsr = 1". Erre nem találtam magyarázatot.
Vettem egy mély lélegzetet, és levettem az áramkörről az UART-USB átalakítót. A szabad portlábakra felraktam egy LCD-t, és láss csodát: így, hogy nincs kommunikáció az UART-on, egyből nem fagy le a proci!
100%, hogy valamiért nem szereti az FT232RL-t! MAX232-vel még nem próbáltam, de megnézem azzal is. Magyarázatot nem tudok adni a jelenségre, nem is igazán értem.
Viszont már látom, hogy megy az SD kártya piszkálgatása a proci felől, de: időnként kiolvassa a kártya méretét és a szabad helyet, néha meg különféle hibaüzeneteket ad. Tehát van valamiféle kommunikáció az SD-kártyával, de az nem tökéletes.
Kérdéseim:
-A korábban beszúrt SPI beállító soroknál mi az "Spsr = 1" jelentése? Kell az egyáltalán oda?
-A Clockrate-n próbáljak állítani, hátha a busz sebessége gyors/lassú (14,7456MHz az órajel)?
100%, hogy valamiért nem szereti az FT232RL-t! MAX232-vel még nem próbáltam, de megnézem azzal is. Magyarázatot nem tudok adni a jelenségre, nem is igazán értem.
Viszont már látom, hogy megy az SD kártya piszkálgatása a proci felől, de: időnként kiolvassa a kártya méretét és a szabad helyet, néha meg különféle hibaüzeneteket ad. Tehát van valamiféle kommunikáció az SD-kártyával, de az nem tökéletes.
Kérdéseim:
-A korábban beszúrt SPI beállító soroknál mi az "Spsr = 1" jelentése? Kell az egyáltalán oda?
-A Clockrate-n próbáljak állítani, hátha a busz sebessége gyors/lassú (14,7456MHz az órajel)?
Hát, efelől kivételesen vannak kétségeim. Egyrészt, mert a gyári kapcsolás szerint megy az FT, másrészt más alkalmazásokban nekem is megy gond nélkül, csak ebben nem, ahol megy az SPI és az UART is egyszerre.Robert írta:Nálam kb. 15-20 féle! helyen van a FT232RL. Ott szerintem valami bekötési zűröd lehet....
A kiolvasási nehézségek egyébként megszüntek, volt egy kontaktos forrszem a kártyafoglalaton. Azóta tökéletesen megy a kártya olvasása.
Már csak azt nem tudom, hogy lesz ebből PC-s kapcsolat ...
Sima TxRx bekötést csináltad meg, vagy a kézfogásosat a Ft232-vel?
A kontroller felé amire vigyázz: A FT232 a tápot a PC felől kapja, ne a kontroller 5V-ját!. A Kontroller fele csak a GND+Tx+Rx jelek mehetnek... A táp nem lehet közös! A FT232 mellé kell 2 db 100nF hidegítő az 5V részre és 1 db 100nf v. 33 nF-s a 3V3-as lábra...
Ha csak a FT232 van bekötve, és a TxRx lábait összekötöd akkor a teminálban visszajön a küldött karakter?
Én a tápelkötés-összeveszésre tippelek....
A kontroller felé amire vigyázz: A FT232 a tápot a PC felől kapja, ne a kontroller 5V-ját!. A Kontroller fele csak a GND+Tx+Rx jelek mehetnek... A táp nem lehet közös! A FT232 mellé kell 2 db 100nF hidegítő az 5V részre és 1 db 100nf v. 33 nF-s a 3V3-as lábra...
Ha csak a FT232 van bekötve, és a TxRx lábait összekötöd akkor a teminálban visszajön a küldött karakter?
Én a tápelkötés-összeveszésre tippelek....