AVR kezdőnek

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Building
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2017. augusztus 23. szerda, 17:36

Re: AVR kezdőnek

Hozzászólás Szerző: Building »

A kivezetéseket hogyan kötöm be? Kell-e felhúzó ellenállás?
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

MOSI-n megy ki az adat, MISO-n be. CLK az órajel, valami meg lehet a ChipSelect. Ja, nem tudom, milyen memóriára gondoltál, nekem elsőre RAM jutott eszembe, mert csináltam olyat, de FLASH-nél is ez a bekötés. Némelyiken van WriteProtect láb is, de azt nem kötelező használni. Ellenállások nem kellenek.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

'23LCV1024 SPI XRAM kezelÚse

'Byte írása
Xwr_byte:
Reset Ss
X_parancs(0) = &B0000_0010
Spiout X_parancs(0) , 1 'Byte Write command
Spiout X_cimtomb(2) , 1 '23-16
Spiout X_cimtomb(1) , 1 '15-8
Spiout X_cimtomb(0) , 1 '7-0
Spiout X_adattomb(0) , 1 'Adat ki
Set Ss
Return

Xrd_byte:
Reset Ss
X_parancs(0) = &B0000_0011
Spiout X_parancs(0) , 1 'Byte Read command
Spiout X_cimtomb(2) , 1 '23-16
Spiout X_cimtomb(1) , 1 '15-8
Spiout X_cimtomb(0) , 1 '7-0
Spiin X_adattomb(0) , 1 'Adat be
Set Ss
Return

Xwr_64: '64 byte-os blokk írása
Reset Ss
X_parancs(0) = &B0000_0010
Spiout X_parancs(0) , 1 'Byte Write command
Spiout X_cimtomb(2) , 1 '23-16
Spiout X_cimtomb(1) , 1 '15-8
Spiout X_cimtomb(0) , 1 '7-0
Spiout X_adattomb(0) , 64
Set Ss
Return

Xrd_64: '64 byte-os blokk olvasása
Reset Ss
X_parancs(0) = &B0000_0011
Spiout X_parancs(0) , 1 'Byte Read command
Spiout X_cimtomb(2) , 1 '23-16
Spiout X_cimtomb(1) , 1 '15-8
Spiout X_cimtomb(0) , 1 '7-0
Spiin X_adattomb(0) , 64
Set Ss
Return
Building
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2017. augusztus 23. szerda, 17:36

Re: AVR kezdőnek

Hozzászólás Szerző: Building »

winnerbt írta: 2021. június 24. csütörtök, 19:29 MOSI-n megy ki az adat, MISO-n be. CLK az órajel, valami meg lehet a ChipSelect. Ja, nem tudom, milyen memóriára gondoltál, nekem elsőre RAM jutott eszembe, mert csináltam olyat, de FLASH-nél is ez a bekötés. Némelyiken van WriteProtect láb is, de azt nem kötelező használni. Ellenállások nem kellenek.
Erre gondoltam:
Screenshot_1.jpg
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

Ez I2C nem SPI, ha jól látom.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

I2C read-write utasításokkal kezelheted, felhúzó illik (3.3-4.7k).
Building
DrótVégénSzéndarab
Hozzászólások: 21
Csatlakozott: 2017. augusztus 23. szerda, 17:36

Re: AVR kezdőnek

Hozzászólás Szerző: Building »

Azt néztem én is, hogy I2C kimenete van. Akkor ezek szerint SPI-re nem lehet illeszteni.
Ezt 23LCV1024 hogy kell bekötni?
Screenshot_2.jpg
A Vbat kivezetés mire jó?
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

I2C-t és az SPI-t bármelyik portra rakhatod (ha SW-t használod), ha a beépített hardvert, akkor azokat a portokat, ami a leírásban van. A fordító kezeli mindet. A VBAT az a külső elem csatlakozása, mert ez RAM és ha teszel rá elemet, akkor nem felejt. A bekötése: (lásd pdf!!!), SO= soros kimenet, SI=soros bemenet, SCk= órajel bemenet.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

És a Cs a Chip Select.
Azaz SPI buszon át kezelheted...
http://www.tavir.hu - a gazda :)
tambi
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2015. május 5. kedd, 19:55

Re: AVR kezdőnek

Hozzászólás Szerző: tambi »

Kedves Fórumtársak!

Hogyan lehet a PORTD.0 és PORTD.1-et egyszerű digitális kimeneteként beállítani Bascom-ban?
ARDUINO 2.0... alatt nagyszerűen működik:

#define Tx 0
#define Rx 1
#define LB5 13
void setup() {
pinMode(Tx,OUTPUT);
pinMode(Rx,OUTPUT);
pinMode(LB5,OUTPUT);
}
void loop() {
digitalWrite(Tx,LOW);
delay(100);
digitalWrite(Tx,HIGH);
delay(100);
digitalWrite(Rx,LOW);
delay(100);
digitalWrite(Rx,HIGH);
delay(100);
digitalWrite(LB5,HIGH);
delay(100);
digitalWrite(LB5,LOW);
delay(100);

BASCOMBAN pedig nem működik, bár a szimulátorban igen... Kipróbáltam néhány változatot 2 nano-val, 2 uno-val és egy évtizedes Duino R3-al. Mindegyikben 328p van:
'ELSŐ:

$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32
Baud = 57600
'$sim

Config Portd.0 = Output
Config Portd.1 = Output
Config Portb.5 = Output
Portd.0 = 0
Portd.1 = 0
Portb.5 = 0

Do
Portd.0 = 1
Waitms 100
Portd.0 = 0
Waitms 100
Portd.1 = 1
Waitms 100
Portd.1 = 0
Waitms 100
Portb.5 = 1
Waitms 100
Portb.5 = 0
Waitms 100
Loop
End

'MASODIK:

Config Pind.0 = Output
Config Pind.1 = Output
Config Pinb.5 = Output
Portd.0 = 0
Portd.1 = 0
Portb.5 = 0

Do
Portd.0 = 1
Waitms 100
Portd.0 = 0
Waitms 100
Portd.1 = 1
Waitms 100
Portd.1 = 0
Waitms 100
Portb.5 = 1
Waitms 100
Portb.5 = 0
Waitms 100
Loop
End

'HARMADIK:

Do
Portd = &B11111111
Waitms 100
Portd = &B00000000
Waitms 900
Loop
End

A LED-ek külső, 470Ohm ellenállással, közös anódosként vannak kötve, illetve a nano esetén a saját ledjeit használom, melyek Arduinoval nagyszerűen működnek.

Mit rontok el, mit kell még tennem a D.0 és D.1 (Tx, Rx) -el hogy kimenet legyen???

Köszönettel; Tambi
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

Bootloadered van benne? Hogy programozod?

A sorosportot le kell tiltani és a lábakat kimenetre állítani...
http://www.tavir.hu - a gazda :)
tambi
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2015. május 5. kedd, 19:55

Re: AVR kezdőnek

Hozzászólás Szerző: tambi »

Köszönöm Robert, pontosan ez volt a kérdésem, illetve hogyan kell a soros portot letiltani? És ha letiltom, akkor hogyan fogom ismét használni programfogadásra, ha a benne levő szoftver csak és kizárólag kimenetként kezeli? Bizonyára meg van a módja, de mi???

Szerintem az említett 5 db panelben levő 328p-ben van "eredeti" bootloader, mivel minden másra jók (már amiket én akarok), csak itt elakadtam... Valami megmagyarázhatatlan késztetést érzek, hogy a PORTD kimenet legyen... PORTB-vel már készen lenne, de ...

Köszönöm szépen!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

Bascomban:

Program elején:
Ucsr0b = 0 'disable the HW UART

A Chip reset állapota után:
- bootloader elállít mindent (memória, sorosport kezelés, D0/D1/D13 kivezetések)
- főprogram már az elállított regiszterekkel indul - vissza kell rakni!
http://www.tavir.hu - a gazda :)
tambi
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2015. május 5. kedd, 19:55

Re: AVR kezdőnek

Hozzászólás Szerző: tambi »

Köszönöm szépen Robert.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: AVR kezdőnek

Hozzászólás Szerző: winnerbt »

Sziasztok!
Megállt az agyam...
M328 Timer1 Timer módban, nem tudom változtatgatni az előosztót. Már kínomban kibitezgettem a TCCR1B-t, de semmi változás a kimeneten.
-----------------
Config Timer1 = Timer , Prescale = 1 , Compare A = Disconnect , Compare B = Toggle , Clear_timer = 1
Do
Stop Timer1
Reset Tccr1b.0
Reset Tccr1b.1
Reset Tccr1b.2
Set Tccr1b.0
Start Timer1
Wait 5
Stop Timer1
Reset Tccr1b.0
Reset Tccr1b.1
Reset Tccr1b.2
Set Tccr1b.1
Start Timer1
Wait 5
Stop Timer1
Reset Tccr1b.0
Reset Tccr1b.1
Reset Tccr1b.2
Set Tccr1b.1
Set Tccr1b.0
Start Timer1
Wait 5
Loop
----------------------------------------
Miacsudát nézek be??????? 8MHz-ről 4kHz jön ki mindig (Compare1B=200). Start-stop is már kínomban került bele, hát ha nem szereti a futás közbeni bizergálást.
Válasz küldése