Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 24.10.2008, 20:51   #1
Stan88
Частый гость
 
Регистрация: 11.10.2008
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Stan88 на пути к лучшему
По умолчанию ARM7

Добрый вечер! Помогите пожалуйста разобраться с возникшей проблемой... Имеется отладочный стенд на AT91SAM7S64. Изучаю азы - пытаюсь мигать светодиодами. Ворде разобрался, залил прошивку - работает. Но через определенное время происходит сброс (что заметно по неравномерному миганию диодов). Ниже привожу код прошивки:

Код:
#include ‹ARMatmelAT91SAM7S64.h›
#include ‹arm_macros.h›
#define nop() asm ("nop") // подключение nop()

void AT91F_LowLevelInit(void) 
{
 	// OER - Output Enable Regiser (регистр разрешения вывода) 
 	PIO_OER=0xffffffff; // порт А настроен на вывод
}

void delay(int cl) // функция задержки
{
 	int i,i1=0;
	for(i=0;i‹cl;i++) 
	{
	for(i1=0;i1‹320;i1++) { nop(); }
	}
}

void main()
{
 	AT91F_LowLevelInit();
 	while(1)
	{
	// CODR - регистр сброса выводимых данных 
	PIO_CODR=0x00040000; // сброс высокого уровня PA18
	// SODR - регистр записи выводимых данных
	PIO_SODR=0x00020000; // установка высокого уровня PA17 (светит LED1)
	delay(6); // задержка 
	PIO_CODR=0x00020000; // сброс высокого уровня PA17
	PIO_SODR=0x00040000; // установка высокого уровня PA18 (светит LED2)
	delay(6); // задержка 
	// светодиоды активируются низким уровнем сигнала (GND to ARM)
	}
}
Может глючит сам стенд? Пишу в ICCV7ARM. Еще раз прошу о помощи. Заранее благодарен! С уважением, Stan88.
Реклама:
Stan88 вне форума  
Непрочитано 25.10.2008, 01:09   #2
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Советую поставить KEIL - в нем симулятор всех ARM с прекрасным интерфесом и логич анализатоором. Отлаживать просто и удобно.

https://kazus.ru/forum/topics/13069.html
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 25.10.2008, 12:13   #3
Stan88
Частый гость
 
Регистрация: 11.10.2008
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Stan88 на пути к лучшему
По умолчанию

Ух ты!!! Круто!) Спасибо огромное!)
Stan88 вне форума  
Непрочитано 26.10.2008, 19:04   #4
Stan88
Частый гость
 
Регистрация: 11.10.2008
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Stan88 на пути к лучшему
По умолчанию

Чтоб не создавать новую тему решил спросить здесь. Имеется реализованная в железе шина I2C, к которой подключено 6 датчиков (три пары датчиков, в разных корпусах) - 1) AT24C256 DIP, AT24C256 SOIC; 2) DS1621 DIP, DS1621 SOIC; 3) DS1307 DIP, DS1307 SOIC. Зачем это сделано я так и не понял... Выходы A0, A1, A2 у всех сидят на земле. Шина висит на ATmega8515, поэтому реализация протокола программная. Собрал подобную схему в Протеусе (пара одинаковых датчиков), все работает. Заливаю в железо - глухо... Может кто с подобным сталкивался? Буду весьма признателен за помощь!!! С уважением, Stan88.
Stan88 вне форума  
Непрочитано 27.10.2008, 10:22   #5
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию

Сообщение от Stan88
6 датчиков (три пары датчиков, в разных корпусах) - 1) AT24C256 DIP, AT24C256 SOIC; 2) DS1621 DIP, DS1621 SOIC; 3) DS1307 DIP, DS1307 SOIC. Зачем это сделано я так и не понял... Выходы A0, A1, A2 у всех сидят на земле.
есть подозрение, что это сделано для того, чтобы на плату можно было ставить _разные_ корпуса, вне зависимости от поставок. Т.е. реально схема содержит 3 датчика, если запаять все 6 корпусов возникнут конфликты по шине.
MisterDi вне форума  
Непрочитано 27.10.2008, 21:32   #6
Stan88
Частый гость
 
Регистрация: 11.10.2008
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Stan88 на пути к лучшему
По умолчанию

Спасибо большое за ответ! На шине действительно сидят только три датчика (это на схеме их 6). Но даже так работать не хочет!!! Протокол рабочий. Буду колупать железо!)
Stan88 вне форума  
Непрочитано 29.10.2008, 22:53   #7
DrunyaRuma
Временная регистрация
 
Регистрация: 13.02.2008
Сообщений: 60
Сказал спасибо: 10
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
DrunyaRuma на пути к лучшему
По умолчанию

По умолчанию в контроллере включен сторожевой таймер,его необходимо либо сбрасывать, либо отключить
DrunyaRuma вне форума  
Непрочитано 10.11.2008, 20:29   #8
Stan88
Частый гость
 
Регистрация: 11.10.2008
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Stan88 на пути к лучшему
По умолчанию

Спасибо за совет! Отключил WDT и сброс у АРМ-а прекратился!! Но с I2C - опять глухо!! Прогонял все тоже самое на другой железяке (очень похожей, практически такой же) - все работает!) Вывод один - стенд дохлый!!! Где именно определить сложно, сверху куча всего навешано.
(Чтобы не создавать кучу тем, возникающие вопросы буду постить в этой; не обязательно по АРМ-ам)
Теперь дошли руки до протокола 1-Ware. Протокол описал, как ни странно, даже работает! Возник лишь вопрос подсчета контрольной суммы. Т.е. приходит 8 байт данных и 9 байт CRC. Подскажите пожалуйста, кто сталкивался с программным описанием, как подсчитать CRC 8 принятых байт и сравнить его с принятым CRC. Заранее благодарен! С уважением, Stan88!
Stan88 вне форума  
Непрочитано 10.11.2008, 21:41   #9
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от Stan88
как подсчитать CRC 8 принятых байт
Написано в даташите на 1-wire прибор, ds1990 например.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 10.11.2008, 22:14   #10
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,352
Сказал спасибо: 85
Сказали Спасибо 611 раз(а) в 370 сообщении(ях)
pambaru на пути к лучшему
По умолчанию

Сообщение от Stan88
Теперь дошли руки до протокола 1-Ware. Протокол описал, как ни странно, даже работает! Возник лишь вопрос подсчета контрольной суммы. Т.е. приходит 8 байт данных и 9 байт CRC. Подскажите пожалуйста, кто сталкивался с программным описанием, как подсчитать CRC 8 принятых байт и сравнить его с принятым CRC.
Вот 8-ми битная CRC. Для каких-то случаев еще бывает CRC16.

typedef unsigned char byte;

flash byte DowTable[]={
0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
};

byte CalcDOWCRC(byte* Data, byte Count){
byte res, i;
res=0;
for (i=0; i‹Count; i++){
res=DowTable[res ^ (*Data)];
Data++;
};
return res;
}
pambaru вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите начать с ARM7 lockout Микроконтроллеры, АЦП, память и т.д 84 23.09.2011 18:08
USB JTAG отладчик под ARM7 serb-radio Микроконтроллеры, АЦП, память и т.д 13 22.07.2008 15:15
Нада инфа об ARM7 для AT91SAM7хх ua_gruzin Микроконтроллеры, АЦП, память и т.д 14 07.06.2008 11:14
32/16-битные микроконтроллеры ARM7 фирмы Atmel Kombinator Микроконтроллеры, АЦП, память и т.д 1 13.05.2008 16:53
GUI для ARM7-9, Infenion16x jjj Микроконтроллеры, АЦП, память и т.д 1 10.02.2005 17:13


Часовой пояс GMT +4, время: 16:31.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot