Soros port (rs232)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Amúgy működhet....

Az illesztőt ami az AVR bemenetre megy, mehet direktbe. (a jelszintek:L - 0...0,8V, H:1,5....5V).
Az AVR adása során tedd be az ellenállásosztót. Annak is jónak kellene lennie. Az AVR H szintje 5V esetén 4.2...4.6V)
A FT232 esetén az alacsony bemenet0...0,8V, magas: 1.3....)
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

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

okés működik... köszi
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

Sziasztok!

(Ezzel is van egy kis problémám.) :( Szóval: ugyanaz az áramkör ahol az LCD és az STK200 furcsa dolgokat csinál. Van rajta egy MAX232, ezzel a programmal:

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

$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600

Config Portd.6 = Output


Cursor Off
Cls

Dim Szam As Integer
Szam = 0

Lcd "Inditas!"
Wait 1

Do
  Reset Portd.6
  Cls
  Lcd "Input"
  Input "Szam" , Szam
  Waitms 100
  Cls
  Lcd "Szam: " ; Szam
  Set Portd.6
  Wait 2
Loop

End
A Bascom Terminaljában miután az LCD kiírja, hogy Input &,;° meg ilyenek jelennek meg. Én megnyomok egy számot (hasonló karaktereket ír ki a Terminal), de az LCD nem ír ki semmit. Megpróbáltam másik MAX 232-vel, másik soros porton (USB <-> RS232, gyári), másik programmal is próbáltam, de ott is ugyanez. Mi a probláma?
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

A Tiny2313 mellett 4 MHz kristály van?

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

$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600

Config Portd.6 = Output

Do
  Reset Portd.6
  Waitms 500
  Set Portd.6
  Waitms 500
Loop
End 
A LED így 1 sec periódusidővel villog?
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

Tiny2313 4MHZ! Én nem tudom, hogy villog, de nem egyenletesen, egyszer gyorsabban, egyszer lassabban. Na most lehúztam a programozót, és kb. 2 mp-ig be, 2 mp-ig ki.
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Ha nem egyenletese villog, akkor valószínű véletlenszerűen resetelget....

A Reset lábon a 4,7...10K felhúzó és a 100nF kerámia a GND fele ott van?

2mp ki/2mp be - a névleges 0,5sec ki/0,5 sec be helyett:
-> belső 1 MHz-ről jár a chip, nem a külső 4 MHzről.

A programot fordítsd le $crystal=1000000 '(1MHz) beállítással. Így a LED 0,5 sec periódusidővel villog?


A biztosítékbit lett állítva? vagy alaphelyzet van?
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

A reseten van felhúzó (10k), de 100 nF nincs. $crystal=1000000 délután kipróbálom. Biztosítékbit nem lett állítva, kéne? Na megyek suliba. Hello!
Bence
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Ha a biztosítékbit nem lett állítva, akkor a chip az alapértelmezett _1 MHz_ órajelről jár.

Bővebben lsd:Kezdők problémái és itt a Az alkalmazás működik, de az új mikrokonrollereken lassú és hülyeségeket ír ki.

A biztosítékbitek:Bascom, mint programozó és a Biztosítékbitek, és itt kb. középtájon vannak a biztosítékbitek.
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

Hello!

Beálítottam a biztosítékbiteket remélem jól!

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

Fusebit C: 1:Divide clockby 8 disable
Fusebit KLA987: 001100:Ext. Crystal Osc.; Freqency 3.0-8.0 MHz; Start-up time: 14 CK + 4.1 ms; [CKSEL=1100 SUT=00]
Most a LED 500 ms-ig be 500 ms-ig ki. 4 MHz kvarc van az áramkörön.

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

$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600

Config Portd.6 = Output

Do
  Reset Portd.6
  Waitms 500
  Set Portd.6
  Waitms 500
Loop

End
Bence
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00

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

És szépen működik ez is, úgy hogy rá van dugva a programozó!!! :D Valószínűleg a biztosítékbitek voltak a problémásak. Bár a 7805 most is elég meleg, még nem tettem rá 100 nF-t.

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

$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600

Config Portd.6 = Output


Cursor Off
Cls

Dim Szam As Integer
Szam = 0

Lcd "Inditas!"
Wait 1

Do
  Reset Portd.6
  Cls
  Lcd "Input"
  Waitms 50
  Input "Szam" , Szam
  Waitms 50
  Cls
  Lcd "Szam: " ; Szam
  Set Portd.6
  Wait 2
Loop

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

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

Valószínű időzítési elcsúszások voltak, és valami a körben nem értékelhette....

A sorosport tuti kifekszik, az LCD-nél ez esetleges....
Avatar
Daveeboy
DrótVégénSzéndarab
Hozzászólások: 39
Csatlakozott: 2007. november 21. szerda, 7:00

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

Hogyan tudok szoftveres UART-hoz puffert rendelni?
A forumot olvasva úgy tűnik a SW UART alapból nem pufferelt, de lehet hozzá rendelni. Hogyan?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

Hozzárendelni... Hát, jellemzően baromi macera ("gyárilag" nincs):
Ugye NINCS ami jelezzen ha indul az adatfolyam. Így ezt INT lábra kell tenni, hogy a fel/lefutó él azonnal indíthassa...
Amíg adatcsomag jön (byte), addig INTben vagy, így a főprogramod nem fut. Amint bejött egy byte, letárolod egy változóba, amit a BUFFER-hez adsz. Kilpsz az INTből. de amint jön a köv byte felfutó éle, újra bemész az INT rutinba, és bevárod az adatot....

A buffert sem tudod kiolvasni, mert itt már karakterléncod van a bejött adatokból....

Én inkább átnyertgelnék 2 UARTot tartalmazó chipre (pl. ATMega162, 644, 164 (DIP) vagy ATMega64/128-ra (SMD)). Vagy ha több UART kell, akkor az ATMega256x-eskre...
Esetleg segédIC, UART->I2C vagy UART->SPI (ez is lehet újabb ATMega/Tiny IC)...
Avatar
Daveeboy
DrótVégénSzéndarab
Hozzászólások: 39
Csatlakozott: 2007. november 21. szerda, 7:00

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

Sajnos az áramkör már megvan :-( A gond az hogy lassú a SW port. A cél hogy a HW port adatait feldolgozás után kiírjam a SW portra. A HW és SW port azonos sebességen megy, és úgy tűnik hogy nem tudja elég gyorsan kiírni a sw portra ezért adatvesztés van. A SW port sebességét nem tudom emelni mert nem bírja el a chip. 19200Baud-on megy. Ezért gondoltam pufferes sw portra. Majd elsz valahogy. Köszi.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

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

A küldés alatt -a lábbillegetés miatt - fogod a chipet SW port esetén.
Sebességet nem lehet növelni? 19200->115200-ra?

A HW portod ki és bemenetet is felhasználod? nem lehetne hogy a bemenet az egyik, a kimenet a másik áramkör felé megy?:)


Adatvesztés befele van? Ott a HW portra tegyél buffert. 254-es lehet Config COM=Buffered....
Válasz küldése