Butterfly és a Bascom...
http://avr.tavir.hu/modules.php?name=Co ... ge&pid=126
A cikkben sokminden felvillantásra kerül....
AVR-Butterfly és a Bascom....
Az SPI kezelésnek Bascom fordítási hibája van (1.11.9.8 alatt)
A legegyszerűbb program amin tesztelni lehet, az a SPI memória méretlekérdezése.
Ez a &h57-es opkóddal lehetséges.
A vizsgált illetve hiányzó rész az SPI inicializálás.
A program magja:
A legegyszerűbb program amin tesztelni lehet, az a SPI memória méretlekérdezése.
Ez a &h57-es opkóddal lehetséges.
A vizsgált illetve hiányzó rész az SPI inicializálás.
A program magja:
Kód: Egész kijelölése
$regfile = "m169def.dat"
$crystal = 1000000
$baud = 4800
'set U2x for 9200 Baud (9600 direkt beállítás nem megy a Bascom korlátai miatt, nem ismeri a 2x-ezést...!)
Ucsr0a = 2
Dim Cim(5) As Byte
Dim A(4) As Byte
'******** SPI Hardware ****************************
Missing/hiányzik -> lsd lentebb
'DS Reset (van gyári külső felhúzó!)
Config Porte.7 = Input
Porte.7 = 1 'Pullup High (D_Chip reset)
'Define Dataflash CS Pin
Cs Alias Portb.0
'Főprogram / Main
Spiinit
Print "Starting..."
Print
Print "SPI init"
Print
Reset Cs
Waitus 10
Spiinit
Waitus 10
Set Cs
Wait 1
Print "Reading Device...."
Reset Cs
Waitus 10
Cim(1) = &H57
Spiout Cim(1) , 1
Spiin A(1) , 1 ' read A(1) from SPI
Waitus 5
Set Cs
Print Cim(1) ; " " ; A(1)
Print
Shift A(1) , Right , 3
A(1) = A(1) And &H07
If A(1) = 1 Then
Print "128K Page_size = 264 Pages = 512"
Elseif A(1) = 2 Then
Print "256K Page_size = 264 Pages = 1024"
Elseif A(1) = 3 Then
Print "512K Page_size = 264 Pages = 2048"
Elseif A(1) = 4 Then
Print "1M Page_size = 264 Pages = 4096"
Elseif A(1) = 5 Then
Print "2M Page_size = 528 Pages = 4096"
Elseif A(1) = 6 Then
Print "4M Page_size = 528 Pages = 8192"
End If
Wait 100
End
Tesztek: Bascom 1.11.9.8Reg
SPI Init Szoftveres:
A Ki/bemenetek konfigurálása fontos! Az SPIInit nem hajtja végre, nekünk kell megtenni.
Hardveres megoldás:
A lábak iránybeállítása nem szükséges, az Initspi elvégzi!
SPI Init Szoftveres:
Kód: Egész kijelölése
Config Portb.3 = Input 'MISO
Config Portb.2 = Output 'MOSI
Config Portb.1 = Output 'CLK
Config Portb.0 = Output 'CS_DF
Config Spi = Soft , Din = Portb.3 , Dout = Portb.2 , Clock = Portb.1 , Ss = None
Spiinit
Hardveres megoldás:
Kód: Egész kijelölése
Config Spi = Hard , Interrupt = Off , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
'SPI double speed settings
Spsr = &B00000001
'Ezt a válzozót az inicializálás során nem végzi el a bascom a M169 chip alkalmazásakor! Ezért kézzel szükséges.
Initspi