AVR-DOS

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Hooligan01

HozzászólásSzerző: Hooligan01 » 2008. szeptember 4. csütörtök, 20:00

Ez elég szomorú.. :(

Persze nem vág a földhöz egy 1GB-os kártya ára, de azért jó lett volna felhasználni, így csak porosodnak a többi kacattal együtt... :D

Mellesleg az AVR-DOS leírása tényleg hagy némi kívánnivalót maga után...
De azért örülök hogy van, a nagy kártyákat szépen eszi :D

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. szeptember 4. csütörtök, 20:05

Az AVRDOS-nak most estem neki. Mármint kivesézni az alapoktól. Lehet vagy fejezet, vagy alkalmazási minta lesz.

A kicsi kártyákat én is sajnáltam...

Fejleszteni rá meg nem érte meg:(. Drágább volt a foglalat :P. És néhány darab volt csak...

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. december 11. csütörtök, 9:13

Melyik szintkonverterIC javasolt az 5V AVR és a 3.3V SDkártya közé?

A Zener+ellenállás illetve az ellenállásosztó ugyanannyi helyet foglal, mintha egy 16lábú logikai IC kerülne be. A 74LV sorozat lenne jó, de melyiket tegyem be?:)
SMD-nél meg inkább 1 ICt rakok be, mint 8 ellenállást...

Hooligan01

HozzászólásSzerző: Hooligan01 » 2008. december 11. csütörtök, 9:58

Hello!

74LVC244, de mehet a 74LVC245 is, csak az irányt fixáld be.
Szóval a kulcsszó az LVC.

Ha pedig 8-nál több illesztésre van szükség, akkor 74LVC16244.
De ez már SSOP tokozású.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2008. december 11. csütörtök, 10:41

Koszonom!

Ami tervek miatt van:
- ATMega128@14.7456MHz (5V) és mellette 3.3V-ról a SD kártya.
időnként (1-3 naponta) SD kártya hibával leáll a rendszer. Minden SD művele előtt SD inicilaizálás, Filerendszer inicializálás.
A M128 SW SPIről jár, a HW alapú nem tetszett neki (bizonytalan volt). Lehet, hogy a nagy sebesség miatt a sok ellenállás kapacitásként is kezdett viselkedni...

Most épp a hibakereséséi fázis van. Gyári megoldás során a következőket találtam:
- SD újrainicializálás, majd ha nem megy, akkor restart ATMega.
- SD-t áramtalanítja egy FET segítségével ilyen esetben.

Avatar
Higgins
Tranzisztorgyógyász
Hozzászólások: 169
Csatlakozott: 2006. február 23. csütörtök, 7:00
Tartózkodási hely: Győr
Kapcsolat:

HozzászólásSzerző: Higgins » 2009. március 28. szombat, 14:04

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... :oops:

Melyiknél milyen beállítást használjak, vagy melyik lábra kössem a /CS kivezetést az AVR-re?


Üdv: Higgins

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. március 28. szombat, 18:13

A SW-s SPI-t probald meg.

Az ENC chip reset lábát beállítottad?

Avatar
Higgins
Tranzisztorgyógyász
Hozzászólások: 169
Csatlakozott: 2006. február 23. csütörtök, 7:00
Tartózkodási hely: Győr
Kapcsolat:

HozzászólásSzerző: Higgins » 2009. március 29. vasárnap, 12:54

OK! Megpróbálom...hátha így jó lesz

Ha sw-ben oldom meg az SPI-t akkor azt lehet arra a lábakra konfigurálni, amin a hw-s SPI van? Bár szerintem lehet...vagy nem? :oops:

Üdv: Higgins

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. március 29. vasárnap, 13:26

lehet. Simán....

Avatar
Higgins
Tranzisztorgyógyász
Hozzászólások: 169
Csatlakozott: 2006. február 23. csütörtök, 7:00
Tartózkodási hely: Győr
Kapcsolat:

HozzászólásSzerző: Higgins » 2009. március 29. vasárnap, 14:09

Az eredeti Tuxgraphics-os kapcsolást csináltam meg, ahol az ENC chip reset lába simán fel van húzva egy 10k-s ellenállás a +3,3V-os tápra, a /Cs láb is egy 10k-s -al a tápra van felhúzva. Szóval minden ugyanúgy van csak ATmega 168 helyett Atmega 128L-es van helyette, így aze gész megy +3,3V-ról és az SD-nél se kellet bűvészkedni szintillesztéssel.

HA jól tudom több SPi eszköz is használható és épp azzal az eszközzel fog ill. tud beszélgetni az AVR, amelyiknél engedélyezve van.

Akkor próbálkozok egy sw-s SPI beállítással, aztán megnézem külön külön, hogy megy-e az ENC meg az SD, aztán meg összehegesztem a kettőt.
De akkor elvileg mennie kellene...

Esetleg az eredeti kapcsolást te hogyan módosítanád Róbert, hogy jó legyen?

Üdv: Higgins

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. március 30. hétfő, 5:49

Igen, az AVR SPI ChipSelecttel válassza ki a chipet.

Nálam is gond van:)
1, M168 OK, M32 valamiért nem megy:(
2, A RESET megoldása a ENC chipnek silicon rev függő!
A jó kód:

Kód: Egész kijelölése

Enc28j60_cs = 0
'reset ENC28J60
X = Enc28j60_soft_reset
Spiout X , 1
Enc28j60_cs = 1

'Do
'Call Enc28j60readcontrolregbyte(estat)
'X = Enc28j60_data.estat_clkrdy
'Loop Until X = 1

Waitms 1000

3, A ben féle leírás elején is van valami a SPI buszról....

Avatar
glbtech
DrótVégénSzéndarab
Hozzászólások: 29
Csatlakozott: 2007. február 13. kedd, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: glbtech » 2009. július 15. szerda, 21:39

Régen akartam már molyolni kicsit az SD kártya használatával, és most rá is szántam az időt. Mega32 a proci, és a Bascom AVR-DOS-át használom mert azt szeretném ha a loggolt adat simán olvasható lenne PC-n. És azt kell mondjam hogy működik. :-) Elsőre SW SPI-vel próbáltam, úgy is megy, de ma kipróbáltam HW SPI-vel is, és így is megy. Holnap megméregetem hogy melyik milyen gyors, mekkora a különbség. Most még a soros porttal bíbelődöm, az a szokott módon eldobál néha karaktereket, de még nem nagyon feküdtem rá a dologra. Mindenesetre csak azért írtam, hogy azért ilyen is van, hogy elsőre működik ez a dolog. :-) SD kártya foglalatot az első kísérletekhez floppy kábel csatlakozóból csináltam, de ma vettem a Chipcadban rendes kártyafoglalatot és csináltam hozzá gyorsan egy kis nyákot. A mikrokontroller az egyszerűség kedvéért 3.3V-ról megy a kártyával együtt, és MAX3232 van a PC felé. A MAX232 valahogy nem volt stabil 3.3V-on. :-) 3 SD kártyával játszottam eddig, egy 32M, egy 128M és egy 1G SD-vel, érdekes módon a 128M nem működik rendesen, de az máshol is csinált már furcsa dolgokat, nem is szenvedek vele.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9973
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 15. szerda, 22:07

Az SD kártya néha hibázik nagyobb sebességen a HW-es SPI módon (vagy csak nem szereti a 4 MHz-s jelet :P)

Így inkább maradtam a SW-es SPI kezelésnél...

Az M32 elég kicsi SRAM-l van megáldva, és abból a SD elvisz ~1k5-t!

Avatar
Higgins
Tranzisztorgyógyász
Hozzászólások: 169
Csatlakozott: 2006. február 23. csütörtök, 7:00
Tartózkodási hely: Győr
Kapcsolat:

HozzászólásSzerző: Higgins » 2009. július 16. csütörtök, 10:04

Gratula az M32 +AVR-DOS sikeres házasításához.

Csak egy apró megjegyzés, ha 3,3V-ról akarod járatni a rendszert, akkor
ügyelj arra, hogy olyan maxim gyártmányú szintillesztőt vegyél hozzá, ami ezen a fesz.-en is megy, mert ha sima max232-őt veszel az +5V-os rendszerű.

Üdv: Higgins 8)

Avatar
glbtech
DrótVégénSzéndarab
Hozzászólások: 29
Csatlakozott: 2007. február 13. kedd, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: glbtech » 2009. július 17. péntek, 11:31

Persze, ezért is írtam hogy 3232 van benne.
Végeztem pár mérést a sebességet illetően, és egyértelmű hogy az SW SPI sokkal lassabb, nem is az írás hanem a megnyitás/lezáráskor. HW SPI-vel 50 byte írása így nézett ki : 10ms megnyitás - 0.3ms írás - 47ms lezárás Ugyanez SW SPI-vel : 41ms megnyitás - 0.3ms írás - 80 ms lezárás. Érdekes hogy az írási sebességben nincs különbség. 100 byte kiírása 0.42 ms volt mindkét megoldással, a nyitás-zárás idő maradt. Szóval maradok a HW SPI mellett, és az is kiderült hogy ha pl. GPS loggerként akarom használni akkor a soronkénti nyitás-írás-zárás szóba sem jöhet.


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég