реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Освоение ADuC7060
Sargass
сообщение Jul 13 2010, 22:16
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Добрый день.

Недавно начал осваивать сабж, для меня это первый опыт работы с ARM-ми. В качестве инструментария выбрал WinARM. Посмотрел примеры, которые идут с ним. По похожести контроллера самый близкий пример там для ADuC7020. Как я понял из этого примера, чтобы скомпилировать прогу под 7060, мне понадобятся кое-какие файлы, типа ADuC7060.h, ADuC7060-RAM.ld, ADuC7060-ROM.ld, может еще что-то... ADuC7060.h я нашел в интернетах, а вот с файлами *.ld пока туговато. Если в make-файле я поменяю SUBMDL = ADuC7020 на SUBMDL = ADuC7060, то естественно проект перестает компилироваться, требуя эти файлы. Не могло бы уважаемое сообщество помочь мне разобраться, как имеющуюся прогу под 7020 переделать на 7060?
Go to the top of the page
 
+Quote Post
etoja
сообщение Jul 13 2010, 23:30
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



В местных закромах есть компилятор rowley crossstudio, который представляет собой графическую оболочку и GNU C.
Настроечные файлы для ADUC70xx можно взять с сайта разработчика www.rowley.co.uk/arm/
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 13 2010, 23:50
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Sargass @ Jul 14 2010, 09:16) *
Как я понял из этого примера, чтобы скомпилировать прогу под 7060, мне понадобятся кое-какие файлы, типа ADuC7060.h, ADuC7060-RAM.ld, ADuC7060-ROM.ld, может еще что-то...
Вы можете пересохранить под этими названиями имеющиеся файлы и исправить их под ADuC7060.
Цитата(Sargass @ Jul 14 2010, 09:16) *
ADuC7060.h я нашел в интернетах
А вы уверены, что он писан под ваш компилятор?
Цитата(Sargass @ Jul 14 2010, 09:16) *
а вот с файлами *.ld пока туговато.
Вам нужно один раз прочитать документацию на линкер. Вероятнее всего вам потребуется лишь изменить размер памяти кристалла в секции MEMORY в начале файла.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jul 14 2010, 00:41
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Вот минимальный проект для aduc706x под gcc: Прикрепленный файл  aduc_minimal_c.rar ( 14.13 килобайт ) Кол-во скачиваний: 221


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 14 2010, 01:43
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



QUOTE (Sargass @ Jul 14 2010, 09:16) *
В качестве инструментария выбрал WinARM.

Выбрали самый древний из существующих.
Go to the top of the page
 
+Quote Post
Sargass
сообщение Jul 15 2010, 07:09
Сообщение #6





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Цитата(IgorKossak @ Jul 14 2010, 05:43) *
Выбрали самый древний из существующих.
Какой посоветуете из бесплатных и современных?
Go to the top of the page
 
+Quote Post
etoja
сообщение Jul 15 2010, 07:40
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Цитата(Sargass @ Jul 15 2010, 11:09) *
Какой посоветуете из бесплатных и современных?


Бесплатные:

Yagarto: http://www.yagarto.de/

Eclipse: http://forum.puppyrus.org/index.php?action...ge;topic=2645.0

Платные:

Rowley Crossstudio (ссылка была ранее) : 150 USD

Imagecraft http://www.imagecraft.com/ : 249 USD


Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2010, 10:25
Сообщение #8


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



QUOTE (Sargass @ Jul 15 2010, 10:09) *
Какой посоветуете из бесплатных и современных?

Code Sourcery Lite.
Go to the top of the page
 
+Quote Post
Sargass
сообщение Jul 16 2010, 09:40
Сообщение #9





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Цитата(Сергей Борщ @ Jul 14 2010, 03:50) *
Вы можете пересохранить под этими названиями имеющиеся файлы и исправить их под ADuC7060.
В общем переделал вроде бы все файлы под себя, пока прога отказывается работать.

Код
#include "aduc7060.h"

static void delay(const unsigned long length)
{
    volatile unsigned long cnt;
    
    cnt = length;
    
    while (cnt > 0) {
        cnt--;
    }
}

int main(void)
{    
T1LD = 0x80; // 32,768 clock ticks
T1CON = 0xC0; // Periodic mode, enable
// timer, 32,768 Hz clock/1
IRQEN |= 0x10; // Enable Timer1 interrupt

// source
PLLKEY1 = 0xAA; // Switch to external crystal
PLLCON = 0x02;
PLLKEY2 = 0x55;

POWKEY1 = 0x01; // Enter nap mode
POWCON0 = 0x70; //10mhz
POWKEY2 = 0xF4;

    GP0DAT = 0x04000000;            // P0.2 configured as an output. LED is turned on    

    while (1) {
        GP0DAT ^= 0x00040000;        // Complement P0.2
        delay(2000UL);
    }
    
    return 0; /* never reached */
}

Осциллографом смотрел - на P0.2 получается постоянная еденица, на XTAL1 и XTAL0 тоже постоянные уровни, хотя по идее выбран внешний кристалл, согласно даташиту. Знач что-то не так компилируется, хотя ошибок не выдает. Понять бы что не так...
Go to the top of the page
 
+Quote Post
Шурила
сообщение Jul 16 2010, 11:07
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 28-07-07
Из: Кишинев
Пользователь №: 29 434



Цитата(Sargass @ Jul 15 2010, 10:09) *
Какой посоветуете из бесплатных и современных?

А про IAR (32KB KickStart edition) забыли? Для ADuC7060 (32 kB (16 kB × 16) Flash/EE memory) самое то!
Go to the top of the page
 
+Quote Post
Sargass
сообщение Sep 7 2010, 07:22
Сообщение #11





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Цитата(Шурила @ Jul 16 2010, 15:07) *
А про IAR (32KB KickStart edition) забыли? Для ADuC7060 (32 kB (16 kB × 16) Flash/EE memory) самое то!

Если честно, я про него и не знал, чтобы забыть) Спасибо за подсказку, поставил, попробовал - решает.
Go to the top of the page
 
+Quote Post
Sargass
сообщение Sep 9 2010, 07:07
Сообщение #12





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Понадобилось переключить aduc на внешний кристалл, в даташите пишут:

Код
To switch to an external crystal, users must follow this procedure:
1. Enable the Timer1 interrupt and configure it for a timeout period of >120 μs.
2. Follow the write sequence to the PLLCON register, setting the OSEL bits to [10] and clearing the EXTCLK bit.
3. Force the part into nap mode by following the correct write sequence to the POWCON register.
4. When the part is interrupted from nap mode by the Timer1 interrupt source, the clock source has switched to the external crystal.

Example source code

T1LD = 0x80; // 32,768 clock ticks
T1CON = 0xC0; // Periodic mode, enable timer, 32,768 Hz clock/1
IRQEN |= 0x10; // Enable Timer1 interrupt source

PLLKEY1 = 0xAA; // Switch to external crystal
PLLCON = 0x2;
PLLKEY2 = 0x55;

POWKEY1 = 0x1; // Enter nap mode
POWCON0 = 0x73;
POWKEY2 = 0xF4;

Сделал простейший код, генерирующий импульсы на P0.2, когда вставил в него приведенный кусок - импульсов нема. Ощущение, что ядро не выходит из power-down. Почитав еще немного, заметил, что хотя везде говорится про "nap mode", в примере получается не "nap" а "pause". Поменял. Не работает. В какую сторону копать?
Go to the top of the page
 
+Quote Post
Sargass
сообщение Sep 20 2010, 11:53
Сообщение #13





Группа: Участник
Сообщений: 8
Регистрация: 13-07-10
Пользователь №: 58 434



Почему может не работать синхронизация PWM от внешнего сигнала?

Код
GP1CON =  BIT9;
  
  GP2CON  = BIT5 + BIT4 + BIT1 + BIT0; //Enable P2.0 & P2.1 as PWM0 & PWM5 Outputs
  PWMCON  = BIT14 + BIT8 + BIT7 + BIT6 + BIT0; //SYNC + PWMEN + /256
  
  PWM0COM0 = 0x190;
  PWM0COM1 = 0xC8;
  PWM0COM2 = 0x40;
  PWM0LEN = 0x190;

  PWMCLRI=0x00;
Go to the top of the page
 
+Quote Post
swisst
сообщение Sep 24 2010, 06:59
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



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

мк ADuC7060. нужен SPI интерфейс , но весь. можно ли и будет ли работать, если ноги SPI будут конфигурированы след образом:
MOSI -> MOSI
SCK -> SCK
MISO -> GPIO
SS -> GPIO

писать по SPI хочу аппаратно (по прерываниям) в 2 микросхемы. в целях экономии ног - хочу использовать MISO и SS в качестве сигналов CS для этих микросхем.

так вот - будет ли такое работать и нет ли подводных камней (вопрос тем, кто работал с SPI ADuC7060) ?
Go to the top of the page
 
+Quote Post
swisst
сообщение Sep 29 2010, 07:19
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



еще вопрос - в каком состоянии будут ноги контроллера после резета (интересно, что в датащите об этом ни слова) или где еще это может быть документально описано ?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01506 секунд с 7
ELECTRONIX ©2004-2016