Monday 8 November 2010

Proiecte de an orientate spre Automotive Engineering

Spre atentia celor pasionati de microcontrollere si in special a celor interesati de Automotive.


Va prezint mai jos citeva oportunitati pentru cei interesati.

1. Proiecte la compania Continental Automotive Group (locatia Iasi) ce cuprind:
- proiect de diploma
- practica de vara
- burse private

2. Executarea Proiectelor de an la disciplinele universitare in directia Automotive.

Exista posibilitatea de a combina Cresterea in cariera profesionala si executarea proiectelor de curs din curicula universitara. aceasta oportunitate se extinde asupra cursurilor Mocroprocesoare (MP), Sisteme Electronice Programabile (SEP), Proiectarea Microsistemelor (PMS), si se poate extinde si pe alte obiecte.

Puteti alege o tema din lista de mai jos, sau propune una proprie conform tematicii Automotive Engineering

- Stergerea automata a partbrizului
- Detectarea calitatii drumului
- Detectare linii de markaj a drumului
- Aprinderea automata a luminilor de noapte
- Pornirea automata a motorului.
- Climatizator (AC)
- Detector de distanta pina la obiecte
- Vitezo-Metru
- Incalzirea scaunelor
- Inchiderea automata a ferestrelor usilor
- Proiect propus de Dvs.

Proiectul se desfasoara in cadrul cercului de microcontrollere organizat catedra MDS UTM.
Participantilor la proiect li se pun la dispozitie Componente electronice si consultatii specializate.

Doritorii de a se inscrie lasati un comentariu la acest post "Proiecte de an orientate spre Automotive Engineering "


Succese in cresterea profesionala!

Are you Automotivated ?
All ingenious is simple !

Proiecte de an orientate spre Automotive Engineering

Spre atentia celor pasionati de microcontrollere si in special a celor interesati de Automotive.


Va prezint mai jos citeva oportunitati pentru cei interesati.

1. Proiecte la compania Continental Automotive Group (locatia Iasi) ce cuprind:
- proiect de diploma
- practica de vara
- burse private

2. Executarea Proiectelor de an la disciplinele universitare in directia Automotive.

Exista posibilitatea de a combina Cresterea in cariera profesionala si executarea proiectelor de curs din curicula universitara. aceasta oportunitate se extinde asupra cursurilor Mocroprocesoare (MP), Sisteme Electronice Programabile (SEP), Proiectarea Microsistemelor (PMS), si se poate extinde si pe alte obiecte.

Puteti alege o tema din lista de mai jos, sau propune una proprie conform tematicii Automotive Engineering

- Stergerea automata a partbrizului
- Detectarea calitatii drumului
- Detectare linii de markaj a drumului
- Aprinderea automata a luminilor de noapte
- Pornirea automata a motorului.
- Climatizator (AC)
- Detector de distanta pina la obiecte
- Vitezo-Metru
- Incalzirea scaunelor
- Inchiderea automata a ferestrelor usilor
- Proiect propus de Dvs.

Proiectul se desfasoara in cadrul cercului de microcontrollere organizat catedra MDS UTM.
Participantilor la proiect li se pun la dispozitie Componente electronice si consultatii specializate.

Doritorii de a se inscrie lasati un comentariu la acest post "Proiecte de an orientate spre Automotive Engineering "


Succese in cresterea profesionala!

Are you Automotivated ?
All ingenious is simple !

Tuesday 13 July 2010

Indrumar MP Laborator




Lucrare de laborator Nr. 1

Tema: Iniţierea în programa Assembler, porturi de I/O.

Scopul lucrării:

Să se studieze instrumentele de proiectare pentru programarea microcontrolerelor (AVR Studio, Proteus) şi să se creeze deprinderea scrierii programei în assembler. Să se studieze iterfeţa de comunicare cu mediul extern, I/O Port.

Expunerea problemei: În cadrul acestui laborator ne propunem sa realizăm un program cu ajutorul AVR Studio care ar permite dirijarea unui led prin intermediul unui buton. Ledul se va aprinde la apăsarea butonului. Simularea acestei instalaţii va fi realizată cu ajutorul programului Proteus 7.1. În cadrul construcţiei vom folosi controllerul Atmega16, ce lucrează pe 8 biţi, care va dirija procesul de aprindere / stingere a ledului la acţiunea butonului.

Consideraţii teoretice:

Arhitectura ATmega16

ATmega 16 este un microcontroler CMOS de 8 – biţi de mică putere bazat pe arhitectura RISC AVR imbunatăţită.

Dispune de un set de 131 instructiuni si 32 de registre de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permitand accesarea a doua registre independente intr-o singura instructiune. Se obtine astfel o eficienta sporita in executie (de pana la zece ori mai rapide decat microcontrorelerele convetionale CISC).

ATmega16 este un microcontroler RISC pe 8 biţi realizat de firma Atmel. Caracteristicile principale ale acestuia sunt:

- 16KB de memorie Flash reinscriptibilă pentru stocarea programelor

- 1KB de memorie RAM

- 512B de memorie EEPROM

- două numărătoare/temporizatoare de 8 biţi

- un numărător/temporizator de 16 biţi

- conţine un convertor analog – digital de 10 biti, cu intrări multiple

- conţine un comparator analogic

- conţine un modul USART pentru comunicaţie serială (port serial)

- dispune de un cronometru cu oscilator intern

- oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).

Structura internă generală a controlerului este prezentată în Figura 1. Se poate observa că există o magistrală generală de date la care sunt conectate mai multe module:

- unitatea aritmetică si logică (ALU)

- registrele generale

- memoria RAM si memoria EEPROM

- liniile de intrare (porturile – I/O Lines) si celelalte blocuri de intrare/iesire. Aceste ultime module sunt controlate de un set special de registre, fiecare modul având asociat un număr de registre specifice.














Fig. 1 Diagrama generală a MCU

ATmega16 conţine 32 de registre de uz general si 64 de registre speciale pentru modulele I/O. Aceste registre sunt mapate la adrese din memoria RAM cuprinse între 0000h si 005Fh.

Descrierea pinilor: VCC – Sursa de curent

GND – Masa

Port A (PA7 .. PA0)

Port-ul A serveşte drept port de intrări analogice pentru Convertorul A/D. Port-ul A serveşte de asemenea şi ca un port bidirecţional I/O de 8 biţi, în cazul în care Convertorul A/D nu este folosit. Pinii de port pot fi conectaţi opţional la VCC prin rezistori interni, (selectaţi pentru fiecare bit). Buffer-ele de ieşire ale Portului A au caracteristici de amplificare .

Port B (PB7.. PB0)

Portul B este un port I/O de 8 biţi bidirecţional cu rezistori interni (opţionali). Buffer-ele de ieşire ale Port-ului B au caracteristici de amplificare. Port-ul B îndeplineşte de asemenea funcţii speciale ale microcontrolerului ATmega 16.

Port C (PC7…PC0)

Portul C este un port I/O de 8 biţi bidirecţional cu rezistori interni (opţionali).Buffer-ele de ieşire ale Port-ului C au caracteristici de amplificare. Dacă interfaţa JTAG (de depanare) este activată , rezistorii pinilor PC5(TDI), PC3(TMS) si PC2(TCK) vor fi activaţi, chiar dacă are loc o resetare. Port-ul C îndeplineşte de asemenea funcţii ale interfeţei JTAG şi alte funcţii speciale ale ATmega 16.

Port D (PD7…PD0)

Portul D este un port I/O de 8 biţi bidirecţional cu rezistori interni conectaţi opţional la VCC (selectaţi pentru fiecare bit). Buffer-ele de output ale Port-ului D au caracteristici de amplificare. Port-ul D îndeplineşte de asemenea funcţii speciale ale ATmega 16.

Reset

Un nivel scăzut la acest pin mai mare ca durata decât o valoare prestabilita, va genera o iniţializare.

XTAL 1: Intrare pentru amplificatorul inversor al Oscilatorului;

XTAL 2: Ieşire pentru amplificatorul inversor al Oscilatorului.

AVCC: AVCC este pin de alimentare pentru Port-ul A si Convertorului A/D. Trebuie conectat extern la Vcc, chiar daca ADC nu este folosit. Daca ADC este folosit , ar trebui conectat la Vcc printr-un filtru trece - jos.

AREF :AREF este pinul de referinţă analogica pentru Convertorul A/D

PORTURILE I/O

ATmega16 dispune de 32 de linii de I/O grupate în patru porturi de 8 biţi. Porturile sunt denumite cu literele A, B, C si D. Fiecare pin al oricărui port se poate seta individual ca intrare sau ieşire fără să afecteze ceilalţi pini. In plus, anumiţi pini se pot utiliza pentru funcţii speciale ale microcontrolerului. In Figura 3 este prezentată structura generală a unui pin.Toţi cei 32 de pini au fiecare câte o rezistenţă „pull-up” care poate fi activată sau dezactivată.















Fig.2 Structura generală a unui pin

Operaţiile cu porturile se fac prin intermediul unui set de 3 registre alocate fiecărui port: PORTx, PINx si DDRx; x poate fi A, B, C sau D. Aceşti regiştri fac parte din categoria regiştri de intrare / ieşire de aceea instrucţiunile care pot lucra direct cu ei sunt CBI, SBI, IN si OUT.

Regiştrii DDRx stabilesc dacă un pin este intrare sau ieşire. Astfel, un bit cu valoarea „1” în registrul DDRx face ca pinul corespunzător să fie considerat ieşire; altfel pinul va fi intrare.

Regiştrii PORTx sunt utilizaţi pentru a scrie o valoare în portul corespunzător iar regiştrii PINx se folosesc pentru a citi valoarea prezentă pe pinii unui port.

Activarea sau dezactivarea rezistenţelor „pull-up” este determinată de bitul PUD din registrul SFIOR si de valorile regiştrilor PORTx si DDRx aşa cum se poate observa în tabelul următor.





Tabelul 1

Toate porturile AVR au funcţia Citeşte – Modifică – Scrie atunci când sunt folosite ca porturi I/O digitale generale. Asta înseamnă ca direcţia unui pin port poate fi schimbata fără a schimbă în mod intenţionat direcţia oricărui alt pin cu comenzile SBI si CBI. Aceeaşi regula se aplica când se schimba valoarea dive-ului (dacă este configurat ca output) sau a activării / dezactivării rezistorilor ( dacă sunt configuraţi ca input). Fiecare buffer de input are caracteristici similare de drive atât cu capacitatea sursei cât şi cu sincronizarea. Driver-ul pinului este îndeajuns de puternic ca sa activeze displayul LED direct. Toţi pinii port au rezistori care pot fi selectaţi individual cu o sursa suplimentara de tensiune cu rezistentă invariabilă.

Toţi pinii I/O au diode de protecţie atât la Vcc cât si la împământare aşa cum este indicat in figura 3.

Toţi regşitrii şi referinţele de bit din aceasta secţiune sunt scrişi în formă generală. Un “x” mic reprezintă litera care denumeşte portul şi un “n” mic reprezintă numărul bitului. Când se utilizează registrul sau biţii intr-un program , trebuie sa fie folosita forma exacta. Adică, PORTB3 pentru bitul numărul 3 în Portul B, prezentat general ca PORTxn.

Trei locaţii de adrese de memorie I/O sunt alocate pentru fiecare port;

- una pentru fiecare registru de date - PORTx,

- Registrul direcţiei datelor – DDRx,

- port de intrare – PINx. Locaţia pinilor port intrare este read only, in timp ce Registru de Date si DDR sunt read si write. In plus, bitul PUD (dezactivare pull-up) din SFIOR dezactivează funcţia pull-up pentru toţi pinii din toate porturile când este setat.

Majoritatea pinilor au funcţii alternative pentru caracteristicile periferice ale dispozitivului.

Este de remarcat faptul ca activarea funcţiilor alternante ale unor pini port nu afectează utilizarea altor pini din port ca I/O general digital.

Iniţializarea în AVRStudio

AVRStudio este un mediu de software dezvoltat de Atmel pentru înscrierea în limbaj de asamblare, compilarea şi simularea de programe destinate microcontrolerelor produse de această companie. Orice program scris în AVRStudio este conţinut într-o structură de tip proiect. Paşii care trebuie urmaţi pentru a crea un proiect nou sunt:1)după lansarea programulu apare o fereastră similară cu cea din figura se va alege opţiunea „New Project” :













Figura 3












Figura 4

În acest moment se va afişa o fereastră asemănătoare cu cea din figura 3. Se bifează opţiunile „Create Initial File” şi „Create Folder”, se completează câmpurile „Project Name” şi „Location” iar apoi se apasă butonul „Next”

În fereastra care apare se selectează „AVR Simulator” ca „Debug Platform” , apoi se selectează din listă microcontrolerul „ATMega16” şi în final se apasă butonul „Finish”:












Figura 5

Înainte de a scrie programul propriu-zis, se introduce următoarea linie: .include”m16def.inc”Această linie este o directivă de compilare care indică numele fişierului ce conţine descrierea regiştrilor şi caracteristicilor microcontrolerului.

După scrierea programului, se aleg opţiunile „Save Project” şi „Built” din meniul „Project”. Orice erori de sintaxă vor fi semnalate de compilator .Pentru a scrie un nou program, din meniul „Project” se va alege opţiunea „Project Wizard”. După ce se apasă butonul „OK” din fereastra de dialog apărută, se vor repeta paşii prezentaţi mai sus .

Mersul lucrării:

1) Familiarizarea cu scopurile propuse, formularea principiului de funcţionare ledului şi a butonului la apăsare şi crearea schemei bloc .





2) Următorul pas este crearea ciruitului în programul de simulare PROTEUS, unde se demonstrează cum funţionează porturile de I/O şi respectiv programul microcontrolerului.

Apăsarea unei taste va duce la aprinderea LED-ului corespunzător tastei.




3) Scrierea programului propriu-zis, conform schemei bloc create.

Listingul Programului:

--------------directive de procesare-------------

.include "m16def.inc" ; accesarea bibliotecii ”m16def.inc”

.cseg ; se alege segmentul codului de program

.org 0 ; se seteaza originea programului la la adresa o

.list ; activarea listingului

-------------- partea de iniaţilizare------------------

; setarea portului A ca port de intrare

LDI R16, 0x00 ; incarca in registrul r16 valoarea 0x00

OUT DDRA, R16 ; incarca in registrul DDRA valoarea

; registrului R16

; activarea rezitenţelor „pull-up”

LDI R16, 0xFF ; incarca in registrul r16 valoarea 0xFF

OUT PORTA, R16 ; incarca in registrul PORTA valoarea

; registrului R16

; setarea portului B ca port de iesire

LDI R16, 0xFF ; incarca in registrul r16 valoarea 0xFF

OUT DDRB, R16 ; incarca in registrul DDRB valoarea

; registrului R16

; dezactivarea rezitenţelor „pull-up”

LDI R16, 0x00 ; incarca in registrul r16 valoarea 0x00

OUT PORTB, R16 ; incarca in registrul PORTB valoarea

; registrului R16

---------------------partea de procesare-------------

main: ; eticheta procedurii principale

IN R16, PINA ; incarca in registrul r16 datele de intrare

; din portul A

OUT PORTB, R16 ; incarca in registrul PORTB datele din

; registrul R16

rjmp main ; setează PC la adresa etichetei „main”

4) Compilarea programului, şi verificarea funcţionării sale (executării) pas cu pas cu scopul de a găsi şi elimina erorile.

5) Ultimul pas e simularea circuitului în PROTEUS, în urma căreia ne putem convinge că programul funţionează corect şi că microcontrolerul execută toate comenzile cu exactitate, obţinînd rezultatul dorit.

6) Prezentarea şi descrierea instrucţiunilor utilizate

LD R1, R2 – încarcă datele din registrul R2 în registrul R1

LDI R1, K - încarcă în registrul R1 o constantă

IN R1, PINx – citeşte în registrul R1 datele de intrare de la PINx

OUT PORTx, R1 – încarcă în registrul de ieşire a potului x datele din registrul R1


Friday 2 July 2010

Prima intilnire cu participantii la proiect

Anunt

Luni, 5 Iulie, va avea loc prima adunare in cadrul proiectului.

Toti doritorii de a participa la proiect sunt rugati sa se prezinte la facultate in jurul orei 11:00 in laboratorul 427.

NOTA: nu exista limite referitor la statutul participantilor la proiect (an de studii, specialitate, locul petrecerii practicii), toti doritorii sunt bineveniti sa si puna aportul la proiect.
totodata, la dorinta, participarea la proiect pote fi inregistrata oficial ca loc de petrecere a practicii de vara.

Prima intilnire cu participantii la proiect

Anunt

Luni, 5 Iulie, va avea loc prima adunare in cadrul proiectului.

Toti doritorii de a participa la proiect sunt rugati sa se prezinte la facultate in jurul orei 11:00 in laboratorul 427.

NOTA: nu exista limite referitor la statutul participantilor la proiect (an de studii, specialitate, locul petrecerii practicii), toti doritorii sunt bineveniti sa si puna aportul la proiect.
totodata, la dorinta, participarea la proiect pote fi inregistrata oficial ca loc de petrecere a practicii de vara.

Wednesday 23 June 2010

Super Automobilul asteapta sa fie supus experimentelor

Buna,

In sfarsit am achizitionat automobilul mult dorit.

Aduc multumiri baietilor care au pus umarul ca in cautarea si treansportarea masinei. Asi dori sa-i mentionez, acestia sunt Andrei Ribac, Stepan Balaban . Iliea Gutu.

Automobilul este de acelasi model, chiar si culoare cu cel din antetul Blogului (apropo, poza din antetul blogului este foto a automobilului lui Putin)

Am avut un mare noroc cu vinzatorul automobilului, el s-a dovedit a fi chiar Gheorghe Medinschi, un absolvent al facultatii Electrofizica, prezent CIM, si a predat lectii la catedra de fizica UTM. Lumea e mica.

Pe linga Automobil el ne-a oferit si mai multe piese de schimb, mai mult chiar, el era pasionat de acest automobil si chiar a experimentat nitel cu el. Sistemul de aprindere a motorului este realizat de el personal. Motorul porneste din prima si are un suntet de o placere sal asculti.

Mai mult de atit, el ne-a oferit si literatura colectata de el, trei carti care descriu structura, functionalitatea, si reparatia automobilului ZAZ 968A, si chiar s-a oferit in calitate de consultant pe proiect.

Deci , avem deacum automobilul, si cred ca putem incepe lucrul indata cu inceputul practicii.

Baietii mentionati mai sus, ii vor ajusta sistemul de frina si ambreaj, si in curind il veti putea vedea linga facultate in toata frumusetea lui.
Din pacate automobilul nu are acumulator, care unul nou ne va costa cit jumatate de automobil, in caz de cineva are unul utilizat si nu are nevoie de el pe parcursul practicii, il poate oferi. echipa participanta la proiect ii va fi recunoscatoare pt acest serviciu.

Deci, ca concluzie, primul pas e facut.

Sa dorim succes proiectului!!!

Super Automobilul asteapta sa fie supus experimentelor

Buna,

In sfarsit am achizitionat automobilul mult dorit.

Aduc multumiri baietilor care au pus umarul ca in cautarea si treansportarea masinei. Asi dori sa-i mentionez, acestia sunt Andrei Ribac, Stepan Balaban . Iliea Gutu.

Automobilul este de acelasi model, chiar si culoare cu cel din antetul Blogului (apropo, poza din antetul blogului este foto a automobilului lui Putin)

Am avut un mare noroc cu vinzatorul automobilului, el s-a dovedit a fi chiar Gheorghe Medinschi, un absolvent al facultatii Electrofizica, prezent CIM, si a predat lectii la catedra de fizica UTM. Lumea e mica.

Pe linga Automobil el ne-a oferit si mai multe piese de schimb, mai mult chiar, el era pasionat de acest automobil si chiar a experimentat nitel cu el. Sistemul de aprindere a motorului este realizat de el personal. Motorul porneste din prima si are un suntet de o placere sal asculti.

Mai mult de atit, el ne-a oferit si literatura colectata de el, trei carti care descriu structura, functionalitatea, si reparatia automobilului ZAZ 968A, si chiar s-a oferit in calitate de consultant pe proiect.

Deci , avem deacum automobilul, si cred ca putem incepe lucrul indata cu inceputul practicii.

Baietii mentionati mai sus, ii vor ajusta sistemul de frina si ambreaj, si in curind il veti putea vedea linga facultate in toata frumusetea lui.
Din pacate automobilul nu are acumulator, care unul nou ne va costa cit jumatate de automobil, in caz de cineva are unul utilizat si nu are nevoie de el pe parcursul practicii, il poate oferi. echipa participanta la proiect ii va fi recunoscatoare pt acest serviciu.

Deci, ca concluzie, primul pas e facut.

Sa dorim succes proiectului!!!