반응형

1. MCU(Atmega128A)  VCC를 3.3v로 배선하여 내부 클럭 8Mhz로 사용가능함.

 - VCC수정하여 16Mhz 수정개선 필요


2. ISP  헤더 Drill size 미스매치 작아서 안들어감.


3. ISP 다운로더 pin map miss match 


4. CP2102 RX, TX 반대로 그림.


5. BGA type 손땜 불가능


6. Silk data 누락된 곳 IC


7. TEST LED 추가하면 좋을 것 같음.


8. BLE / wifi 추가 기능


9. 배터리 (충방전 회로) 기능 추가


10. 활용 방안 모색


반응형

'Project > Sensor Board' 카테고리의 다른 글

Sensor_Board AVR Source Code ver.1  (0) 2018.12.03
Project - Sensor Board  (0) 2018.10.01
반응형

기능 구현 및 현재 진행 상황


1. buzzer ok

2. serial ok

3. timer ok


*참고

\n \t \b \r \0 등등

\t : 탭키

\b : 백스페이스바

\r : 처음으로 커서를 옮김


* 출력 타입

%d : 10진수 정수형

%f : 실수형

%e : 지수형

%o : 8진수

%x : 16진수

%u : 부호없는 10진수

%g : 실수형 자동출력

%p : 포인터의 주소

%c : 하나의 문자

%s : 문자열


4. I2C

usart 규격정리


- BME280 온습도 센서 

- MAX44009 조도 센서 

- BMI160 자이로 센서 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <avr/io.h>
#define F_CPU 8000000UL
#define SCL_freq 200000 //TWBR = 16, TWPS = 0
// SCL_freq = F_CPU / (16+2*TWBR*4^TWPS) 
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
 
#define I2C_SCL PD0
#define I2C_SDA PD1
 
unsigned int TimerCount =0,sec = 0,min =0;
char buff[100];
 
void init_Buzzer();
void init_Serial();
void init_I2C();
void init_Timer();
 
void test_buzzer();
void test_Serial(int mode);
 
unsigned char USART0_TX();
void USART0_RX(unsigned char data);
void USART0_RX_str(unsigned char *str);
 
int main(void)
{
    init_Buzzer();
    init_I2C();
    init_Serial(115200);
    init_timer();
    sprintf(buff,"Hello\r\n");    
    USART0_RX_str(buff);
    //test_buzzer();
    
    sei();
    
    while (1
    {
        
    }
}
void init_Buzzer(){
    DDRB |= 0x10// PB4
    PORTB &= ~(0x10);
}
void init_Serial(long bautrate){
    UBRR0H = 0;
    switch(bautrate){
        case 115200:
        UBRR0L = 3;
        break;
        
        case 57600:
        UBRR0L = 8;
        break;
    }
    UCSR0A = 0x00;
    UCSR0B = 0x18;
    UCSR0C = 0x06;
}
void test_serial(int mode){
    switch(mode){
        case 0:
        USART0_RX('A');
        break;
        
        case 1:
        if(USART0_TX() == 'h'){
            USART0_RX('B');
        }
        break;
    }
}
void init_I2C(){
    DDRD |= (1 << I2C_SCL);
    DDRD |= (1 << I2C_SDA);
    
    TWBR = 16;
}
void test_buzzer(){
    PORTB = 0x10;
    _delay_ms(10);
    PORTB = ~0x10;
    _delay_ms(10);
}
unsigned char USART0_TX(){
    while(!(UCSR0A & (1<<RXC0)));
    return UDR0;
}
void USART0_RX(unsigned char data){
    while(!(UCSR0A & 0x20));
    UDR0 = data;
}
void USART0_RX_str(unsigned char *str){
    while(*str != '\0'){
        USART0_RX(*str);
        str++;
    }
}
 
void init_timer(){
    TCCR0 = 0x04;
    TIMSK = 0x01;
    TCNT0 = 256-125;    
/*
1/8000000 = 0.000000125
64분주 0.000008
0.000008 *125 = 0.001
TCNT0 = 256-125;
*/
}
 
ISR(TIMER0_OVF_vect){
    TCNT0=256-(256-125);
    TimerCount++;
    if(TimerCount>=1000){
        TimerCount=0;
        sec++;
        /* test_timer
        sprintf(buff, "min : %u, sec : %u \r\n", min,sec);
        USART0_RX_str(buff);
        */
        if(sec>=60){
            min++; sec=0;
            if(min>=60) min=0;
        }
    }
}
cs


반응형

'Project > Sensor Board' 카테고리의 다른 글

[Sensor Board] 개선해야 할 점  (0) 2018.12.10
Project - Sensor Board  (0) 2018.10.01
반응형

1. Sensor Board

 - BST-BMA280-DS000-11-1393596_가속도계

 - BST-BME280_DS001-09-521021_습도압력온도센서

 - BSTBMG160DS00008_published_자이로스코프 // 제품 단종으로 인해 부품 교체

 - BST-BMG250-DS000-02-967971 자이로스코프

 - BST-BMI160-DS000-07-1366203_관성측정

 - BST-BMM150-DS001-01-1393684_자력계

 - MAX44009-59959_디지털조도센서


2. MCU - Atmega 128


3. Bom list

Sensor board_BOM.xlsx


4. Cadence Orcad


 1) sensor lib

SENSOR_LIB.OLB

sensor_lib.opj


 2) board circuit

SENSOR BOARD.DSN

Sensor board_Circuit_page1.pdf

Sensor board_Circuit_page2.pdf



5. Cadence Allegro


 1) FootPrint symbol lib

Allegro_lib.zip



 2) PCB ArtWork

SENSOR BOARD.brd




6. 참고 자료

 - Bosch XDK110 Cross-Domain 개발 키트.link

AN005_PCB_Guidelines_TRINAMIC_packages_Rev1.02.pdf

 

etc) 진행 자료.

AVR I2C(TWI) Interface.txt

Sensor board BOM.xlsx


반응형

'Project > Sensor Board' 카테고리의 다른 글

[Sensor Board] 개선해야 할 점  (0) 2018.12.10
Sensor_Board AVR Source Code ver.1  (0) 2018.12.03

+ Recent posts