roboforum.ru

Технический форум по робототехнике.

 

Помогите пожалуста

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Помогите пожалуста

Сообщение libricon » 16 фев 2006, 01:17

Я новичек в этом деле, и мне нужна ваша помощь.

я собрал простую схему, и использую AT90S8515 , просто расжился я этим вот.и решил попробовать.

для прошивки использую программу uisp, и avr-gcc  компилятор.
мои действия :

Код: Выделить всёРазвернуть
avr-gcc -Os -mmcu=at90s8515 -o led led.c
avr-objcopy -O ihex led led.hex
uisp -dprog=dapa -dpart=AT90S8515 -dlpt=/dev/parport0 --erase

uisp -dlpt=/dev/parport0 --upload if=led.hex --verify -v=3 -dprog=dapa -dpart=AT90S8515

и тут облом. эффект нулевой.
код программы простой
Код: Выделить всёРазвернуть
/* I/O PORT B, DATA DIRECTION REGISTER (0 -> in, 1 -> out) */
#define DDRA    (*(volatile unsigned char *)(0x17 + 0x20))

/* I/O PORT B, DATA REGISTER */
#define PORTA   (*(volatile unsigned char *)(0x18 + 0x20))

int main(void) {
   int i;

   /* Set the whole port (all bits) to "output" */
   DDRA = 0xff;

   while(1) {
   /* Turn on all leds connected to port B */
       PORTA = 0x00;

   /* Delay */
       for(i = 0; i < 0xffff; i++);
   {
   /* Turn on all leds connected to port B */
       PORTA = 0xff;
       
   /* Delay */
       for(i = 0; i < 0xffff; i++);
   for(i = 0; i < 0xffff; i++);
   }

   return 0;
}


вроде все правельно, но не выходит.... распайка
такая :
init( 16' ) = reset (9' )
d0 (2' ) = mosi (6' )
busy (11' ) = miso (7' )
strobe ( 1' ) = sck (8' )
gnd (18' ) = gnd(20 )

на ресет я подаю 5 волье через 10 кОм. кварц 8 МГц.
на порт А 0,1,2 припаяны диоды через 700 омные резисторы. такая вещь, что они все время горят. от включения, и во время прошивки и после все время. сам кристал не греется , холодный. у меня их несколько, я попробовал 2-ой, тоже самое... а если у менякварц сломан, такое может быть?  при прошивки кстати диоды немного сменили яркость, и все.

буду благодарен за помощь

еще есть у меня снимок фьюзов и процесс записи, см. файлы.
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение -= Александр =- » 16 фев 2006, 01:40

У кварца конденсаторы стоят? Надо от каждой ноги кварца по конденсатору на землю. Керамика, 22-27 пикофарад.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3664
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C++, VB, asm
ФИО: Курмис Александр Андреевич

Re: Помогите пожалуста

Сообщение ASin » 16 фев 2006, 02:02

libricon писал(а):
Код: Выделить всёРазвернуть
        /* Delay */
       for(i = 0; i < 0xffff; i++);
       for(i = 0; i < 0xffff; i++);

***
кварц 8 МГц.
***
 при прошивки кстати диоды немного сменили яркость, и все.


На 8 МГц такая задержка?!? Может быть, там всё работает, только очень быстро :)

Попробуй задержку
Код: Выделить всёРазвернуть
for(i = 0; i < 0xffff; i++) for(j = 0; j < 0xffff; j++) ;

а ещё лучше

Код: Выделить всёРазвернуть
#define F_CPU 8000000L
#include <avr/delay.h>

**
_delay_ms(1000);
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

Сообщение avr123.nm.ru » 16 фев 2006, 11:05

попробуй компилятор CodeVisionAVR и его примеры.

а главное симулятор VMLAB  - тогда будешь знать в чем у тебя проблема в проге или в железе.

как ими пользоваться у меня в курсе:
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение libricon » 16 фев 2006, 12:24

спасибо.
1 ) есть по 22 пикофарад
2 ) проверю задержку, может и так
3 ) судя по выводу, прошивка прошла успешно?

вообще это нормально что они горят ? постоянно? как только включаешь питание

вообще питание у него бортовое. т.е я беру его с молекса потом 470 микро фарад на землю = крен 5 вольт = 0,1 микрофарад  , на выводе жестко 5,1 вольт

+ перед входом 5 вольт еше висит 0,1 микрофарада


приду домой проверб задержку, если не выйдет.... то надо будет перепаясть провод и попробовать в виндовсе его перешить?

кстати, может быт ьпроблема в проводе? я  взял около 50 см провода 10 жил , каждые две жилы в своем экране, обе жили замкнуты и используются как одна, общий екран и дополнительные экраны исбользуются как масса. может быть тут проблема?
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение avr123.nm.ru » 16 фев 2006, 12:57

libricon писал(а):вообще это нормально что они горят ? постоянно?
как только включаешь питание


краткий курс - задача 1

libricon писал(а):проверб задержку, если не выйдет....


попробуй симулятор VMLAB  - тогда будешь знать в чем у тебя проблема в проге или в железе.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Сообщение libricon » 16 фев 2006, 19:38

тут все в норме?

bash-3.00#  uisp -dlpt=/dev/parport0 --upload if=led.hex --verify -v=3 -dprog=dapa -dpart=AT90S8515
Reset inactive time (t_reset) 1000 us
AVR Direct Parallel Access succeeded after 31 retries.
Vendor Code: 0x1e
Part Family: 0x93
Part Number: 0x01
Atmel AVR AT90S8515 is found.
Page Write Disabled
FLASH Write Delay (t_wd_flash): 11111 us
EEPROM Write Delay (t_wd_eeprom): 11111 us
Uploading: flash
#####
(total 148 bytes transferred in 0.64 s (231 bytes/s)
Polling: count = 148, min/avg/max = 0.69/2.72/4.16 ms
Verifying: flash
#####
(total 148 bytes transferred in 0.12 s (1223 bytes/s)
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение ASin » 16 фев 2006, 19:45

На вид -- нормально
Хотя "AVR Direct Parallel Access succeeded after 31 retries" просто поражает

Надо сказать, я с uisp не работал, только с avrdude.
И кабель у меня а-ля stk200: http://parts.roboclub.ru/htmls/klokov1.gif
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

Сообщение libricon » 16 фев 2006, 19:49

а там может чтото быть с фюьзами замучено?

или если кварц мертвый,то такое поведение может быть?
Вложения
read_fuses.txt
(688 байт) Скачиваний: 134
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение ASin » 16 фев 2006, 19:58

На память фузы не помню ;)

А ещё странно, что диоды горят во время программирования. Там ничего гореть не должно. Такое чувство, что контроллер не ресетится.
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

Сообщение libricon » 16 фев 2006, 20:28

я сделал ресет, шишка как на платах, джемпер .. ставишь, и на землю его...
вот я отверктой замыкал контакты, а он не реагирует чгеото вообще
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение libricon » 16 фев 2006, 20:30

и вообще мне не нравится , посмотрите в файл, как то он долго стучится к контролееру
Вложения
write_a_program.txt
(534 байт) Скачиваний: 133
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение libricon » 16 фев 2006, 20:32

во, как раз я такой и собираюсь распаять, под винду, а авр дуде, чето я собрать не смог. :(

вот на уисп остановился

кстати, можно кабель использовать сетевой? или шину шлейф, а то удобно шлейф на плату потом разьем прикрутить, да и есть.
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение libricon » 16 фев 2006, 20:34

а че такое avcc  куда 5 вольт идет?
libricon
 
Сообщения: 303
Зарегистрирован: 09 июн 2005, 19:49

Сообщение ASin » 16 фев 2006, 20:50

libricon писал(а):во, как раз я такой и собираюсь распаять, под винду, а авр дуде, чето я собрать не смог. :(

вот на уисп остановился

кстати, можно кабель использовать сетевой? или шину шлейф, а то удобно шлейф на плату потом разьем прикрутить, да и есть.


У меня как раз 10-проводной шлейф. Около метра длиной. Проблем не замечено.
Кстати, PonyProg есть под линух.

libricon писал(а):а че такое avcc  куда 5 вольт идет?

Питание АЦП, кажись.

libricon писал(а):на порт А 0,1,2 припаяны диоды через 700 омные резисторы

А вторым концом куда? На землю?
ASin
 
Сообщения: 155
Зарегистрирован: 18 дек 2004, 03:14
Откуда: Москва

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Mail.ru counter