Ismerkedek mostanában én is az AVR-DOS-al, és egy 64MB-os SD kártya a tesztalanyom. Szépen működik rajta minden, minden OK!
Az enc28j60-as ethernet chippel szeretném összekötni+ATmega128, de itt elakadtam.
Az SD hardveres SPI beállítással jól működik,de az enc chip mellette nem megy, hiába van megadva másik /CS láb megadva az AVR-nél
Tehát az eredeti Config_MMC.BAS állományom ez:
Kód: Egész kijelölése
Const Cmmc_soft = 0
#if Cmmc_soft = 0
' --------- Start of Section for HW-SPI ----------------------------------------
' define Chip-Select Pin
Config Pinb.4 = Output ' define here Pin for CS of MMC/SD Card
Mmc_cs Alias Portb.4
Set Mmc_cs
' Define here SS Pin of HW-SPI of the CPU (f.e. Pinb.0 on M128)
' If an other Pin than SS is used for MMC_SS, SS must be set to OUTPUT and high for proper work of SPI
' otherwise AVR starts SPI-SLAVE if SS-Pin is INPUT and goes to LOW
Config Pinb.4 = Output ' define here Pin of SPI SS
Spi_ss Alias Portb.4
Set Spi_ss ' Set SPI-SS to Output and High por Proper work of
' SPI as Master
' HW-SPI is configured to highest Speed
Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
' Spsr = 1 ' Double speed on ATMega128
Spiinit ' Init SPI
' --------- End of Section for HW-SPI ------------------------------------------
#else ' Config here SPI pins, if not using HW SPI
Vagyis ugyan az SD-nél nem használom a szokványos PortB.0-át a chip selet-re, hanem azt az enc-re kötöttem.
A BEN féle kódból alkalmazva
Enc28j60_cs Alias Portb.0
Config Enc28j60_cs = Output
...
ez a beállítás jó volt az enc-re, de SD-vel összekötve már nem.
Hol kavarodtam el????
Egy kis segítség jó lenne...
Melyiknél milyen beállítást használjak, vagy melyik lábra kössem a /CS kivezetést az AVR-re?
Üdv: Higgins