Jump to content

    

Прыжок с AVR на ARM7

Господа!

По опыту освоения чего-то нового знаю, стоит показать, что ты чайник и спросить - "А как мне начать" - появятся профи (действительно профи, но с самомнением) и начнется - вот тебе ссылка google.ru, вот тебе матчасть на 600 стр, и не дай бог, ты прочитаешь 599 страниц, даже не суйся сюда со своими вопросами, у нас нет времени помогать учить азбуку, читай форум, десятки раз обсуждалось."

Иногда при этом даются ссылки по теме, но когда их посещаешь - приходишь с одним вопросом, а уходишь с тремя.

 

Собираюсь перепрыгнуть с AVR на ARM7 и боюсь вновь оказаться в такой ситуации.

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

 

Прошу внимания. ПРостейшая задача - зажечь и погасить светодиод на atmega8.

 

Наипростейшая программа (CodeVision):

#include <mega8.h>
#include <stdio.h>
#include <delay.h>

void main()
{
DDRA=0xFF;
PORTA=0xFF;
delay_ms(1000);
PORTA=0x00;
}

 

Наипростейшая схема с одним светодиодом в аттаче.

Схема программатора вот http://avt.tomica.ru/~andr/Page2408/files/...iles/bbaisp.png.

Программа для прошивки Flash вот http://www.ln.com.ua/~real/avreal/bin/avw126r3.zip.

 

 

Господа, хочу то же самое, только для какого-нибудь AT91SAM7xxx.

Кому как, а у меня написать сей пост и нарыть в интернете ссылок ушло времени 8 минут.

Надеюсь обойтись без отсылания к 600 страничным мануалам, они у меня уже есть.

post-23563-1233770471_thumb.png

Share this post


Link to post
Share on other sites
Господа, хочу то же самое, только для какого-нибудь AT91SAM7xxx.

Сейчас в меня кинут тухлым помидором, наверное, но...

 

Ссылка не на google.ru

 

По ссылке Вы найдете:

- 2 Quickstart Guide'а, для IAR и GCC

- Инструкцию на кит со схемой оного, из которой можно аккуратно перерисовать цепи тактирования, питания, USB, UART etc.

- Программатор AT91-ISP

- 37Mb дурнейших атмеловских примеров, вполне, впрочем, пригодных для старта

Share this post


Link to post
Share on other sites
Господа!

...

 

токо что прошел етот путь.

Линукс - тулчейн от CodeSorcery, openocd скачал и построил из svn,

использую олимексовский jtag wiggler и их же плату на LPC2148.

Скомпилил пример оттуда же - с олимекса (линк) - "blinky".

 

Что пришлось править - config file для openocd.

Они только что команды поменяли.

И мейкфайл - прописал тулзы из тулчейна.

 

Что еще.. А - заливать во флаш можно через тот же openocd,

через

flash write_image erase main.hex

например - main.hex - имя файла для заливки.

 

ну у меня правда не атмел.

 

пока только не смог брейкпойнты поставить на флаш из gdb -

говорит - ок, а брейкпойнтов нет.

еще не разобрался.

Share this post


Link to post
Share on other sites

aaarrr спасибо за ссылки, схему подключения я нашел только самую наикрутейшую - evaluation board. Я плату буду разводить и напаивать компоненты 2 месяца. Схему программатора так и не нашел. Нашел описание ISP Programmera в котором вот это:

3.2.1 AT91Boot_SAM7xxx_Send_Flash

These functions make it possible to write X bytes into the internal Flash memory of the

connected target. If some sectors are locked, they are unlocked in order to effectively

program the internal Flash memory.

Available functions are:

! AT91Boot_SAM7S32_Send_Flash (available for SAM7S32 and SAM7S321 parts)

! AT91Boot_SAM7S64_Send_Flash

! AT91Boot_SAM7S128_Send_Flash

! AT91Boot_SAM7S256_Send_Flash

! AT91Boot_SAM7S512_Send_Flash

! AT91Boot_SAM7A3_Send_Flash

! AT91Boot_SAM7X128_Send_Flash (available for SAM7X128 and SAM7XC128

parts)

! AT91Boot_SAM7X256_Send_Flash (available for SAM7X256 and SAM7XC256

parts)

! AT91Boot_SAM7X512_Send_Flash (available for SAM7X512 and SAM7XC512

parts)

! AT91Boot_SAM7SE256_Send_Flash

! AT91Boot_SAM7SE512_Send_Flash

3.2.1.1 Prerequisite Embedded Flash Controller Flash Mode Register (EFC_FMR) must be programmed

correctly prior using one of these functions.

Note: Two Embedded Flash Controllers are embedded in AT91SAM7S512, AT91SAM7X512

and AT91SAM7SE512 parts. Both EFC_FMRx registers must be programmed correctly

prior using one of these functions.

3.2.1.2 Description void AT91Boot_SAM7xxx_Send_Flash(int h_handle, int uOffset, char *bData, int uSize,

int *err_code);

Table 3-14. AT91Boot_SAM7xxx_Send_Flash

Type Name Details

Input Parameters

h_handle

Communication handle returned by AT91Boot_Open

function

uOffset Internal Flash Offset where to write 8-bit value

*bData Pointer to 8-bit data buffer to writ

 

ну честное слово, оно мне надо на первом этапе?

Я ж первый шаг хочу сделать, я малыш еще, а вы мне брусья предлагаете )))

Тот же самый диалог мог бы получиться, если бы я попросил дать мне материалы по AVR, однако я привел пример первого шага, рассчитываю получить это же для ARM7

 

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

 

1. Я так понял, что способов запрограммировать ARM7. Что посоветуете, спаять что-нибудь простое, или купить готовый полноценный девайс?

 

остальные вопросы задам попозже, надо бежать...

Share this post


Link to post
Share on other sites
Схему программатора так и не нашел. Нашел описание ISP Programmera
Вот именно поэтому профессионалы и отсылают к мануалам на 600 страниц.

Share this post


Link to post
Share on other sites

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

крутейшую плату для мигания можно не делать - возмите с сайта Olimex-а простую - там только питание и сам проц разведен (можете еще rs232 прицепить и USB)

Share this post


Link to post
Share on other sites

скажу поподробнее про SAMBA - ибо сам тоже разбирался когда-то сам

SAMBA - это встроенный загрузчик (почти как в AVR :) ) - что-бы залить "прошивку" надо просто подключить проц SAMxxx к компу через USB шнурок (до этого должна быть установлена прога с сайта одноименная и "активирован" загрузчик в кристалле) и всё . После прошивки загрузчик более не работает (для восстановления активности надо провести манипуляции с перемычкой на платке с процом - очень не удобно :laughing: )

Посему лучше юзать Jtag отладчик\программер - для чего надо предусмотреть подключение к процу.

Крайне не рекомендовал юзать Wiggler - мало того что будут возникать вопросы по освоению проца , дык плюс к этотому постоянные глюки с этим "отладчиком"

Рекомендую или сделать самому(прост до безобразия) или купить (около 50$у нас) MT-Link.

прикрепляю оба -Вам выбирать

А вооще у меня порядка 1G подборка док и исходников по ARM

Я брал для примера распайку для макетки сам MT-Link.

Всё фурычит только в путь...

Удачи нам всем в таких начинаниях в такое неспокойное время ;)

pack.zip

Share this post


Link to post
Share on other sites

В архивичке в папке MT-LINK есть схема, программатора, которая включает в себя контроллер ARM7. Это как понять?

Или же это та самая минимальная схема для диода, а обвязка к нему и сеть программатор?

 

То есть, есля я правильно понял, в AVR достаточно было передернуть Reset и контроллер переходил в режим программирования, после чего сам запускался. Здесь же нужно активировать загрузчик, загрузить прошивку, после чего загрузчик автоматически выключается. Я правильно понял?

Если делать через MT-Link то такого неудобстава не будет?

Share this post


Link to post
Share on other sites

это схема самого программатора - её же можно смело брать за типовую минимальную схему включения SAM7x64

Вы абсолютно правильно меня поняли :-))

Share this post


Link to post
Share on other sites

А вот нашел Olimexовскую платку

http://olimex.com/dev/images/ARM/ATMEL/SAM7-Hxxx-sch-C1.gif

Там и JTAG и USB.

Можно напрямую подключать к компу через USB? Тогда будет байда с актвивацией загрузчика.

А если через MT-Link, тогда к разъему JTAG, я правильно понял?

 

Что-то дорогие эти MTLink. В основном баксов 100 в efind.

 

Если я сделаю минималку, как вы вышеуказанной OLIMEX плате, разве нельзя будет программировать через USB?

 

Хитрые манипуляции с перемычкой это оно ?

Power down the SAM7S-EK

Close the Jumper JP5 named TST

Power up the SAM7S-EK

Wait 10s

Power down the SAM7S-EK

Remove the Jumper JP5 named TST

Power up the SAM7S-EK

 

 

быть установлена прога с сайта одноименная

 

Я качнул с АТМЕЛА прогу SAM-BA - там предлагается COM-порт. А как же USB?

Share this post


Link to post
Share on other sites

Да для этого я и говорил про MT-Link - через него "шьётся" программа и выполняется отладка....

Тоже самое и в AVR - если Вы знаете их :rolleyes:

Share this post


Link to post
Share on other sites

Так же как в AVR - контроллер работает, жмешь в программе кнопку PROGRAM, контроллер ресетится шьется и не вынимая кабеля вновь запускается с зашитой программой, правильно? Больше никакого шаманства?

Так можно только через JTag? Все остальное геморройно? Я правильно понял?

 

Хорошо, собрал я предложенную Вами MT-LINK, есть фалик firmarmRev5314c.bin.txt - его через USB заливать чтобы контроллер заработал? Я правильно понял?

Какой программой? Повторю - я скачал с АТМЕЛА SAM-BA 2.8 - в нем источник только COM порт.

Есть еще SAM PROG 2.4 - там вообще порт не выбирается.

 

И почему, когда прошивку льешь через USB шнурок загрузчик перестает работать? В этом есть какой-то глубокий смысл, раз приходится городить JTAG программаторы.

Share this post


Link to post
Share on other sites

Хитрые манипуляции с перемычкой это оно ? да

Я качнул с АТМЕЛА прогу SAM-BA - там предлагается COM-порт. А как же USB? он появиться когда вы подключите правильно спаянную макетку

 

при подключении чистого кристалла всё должно определиться и появиться USB в меню - вот через него и лейте - выставите правильно все перемычки(почитайте про них на гав.ру)

и после заливки прошивки получите MT-link

Share this post


Link to post
Share on other sites

Простите, но не разглядел на схеме MT-LINK, откуда берется напряжение 1.8V для VDDCORE..

Share this post


Link to post
Share on other sites
Хорошо, собрал я предложенную Вами MT-LINK, есть фалик firmarmRev5314c.bin.txt - его через USB заливать чтобы контроллер заработал? Я правильно понял?

Какой программой? Повторю - я скачал с АТМЕЛА SAM-BA 2.8 - в нем источник только COM порт.

Есть еще SAM PROG 2.4 - там вообще порт не выбирается.

 

И почему, когда прошивку льешь через USB шнурок загрузчик перестает работать? В этом есть какой-то глубокий смысл, раз приходится городить JTAG программаторы.

 

Можно и не собирать сам МТ-ЛИНК сначала, но почитать в его описании, как прошить его собственный процессор.

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

Вкратце принцип такой:

1. поставить перемычку

2. подать питание на процессор - если перемычка поставлена, он подготавливается к тому, что его будут прошивать.

3. снять питание

4. подключить к ПК по схеме как сделано в МТ-ЛИНК

5. подать питание на микроконтрололер - он будет ждать, что программа на ПК начнет заливать в него прошивку.

6. Запустить программу на ПК, указать, что надо прошивать и процесс пошел.

7. Снять питание, отсоединить от ПК

8. Подать питание и радоваться видя работающую программу в МК (если, конечно, там нет ошибок :) )

 

Я когда собирал себе МТ-ЛИНК, кажется, использовал для прошивки программу AT91-ISP v1.12 http://www.atmel.com/dyn/resources/prod_do...ISP%20v1.12.exe

Как пользоваться читал документ http://www.atmel.com/dyn/resources/prod_do...nts/doc6132.pdf

Подробнее не скажу - я с контроллерами от NXP LPC2148 работал, у них по другому прошивается память.

 

Кстати, МТ-ЛИНК - очень удобная вещь, особенно для начинающих - это отладчик, с его помощью можно по шагам выполнить программу непосредственно в МК, при этом имея доступ к значениям переменных, видя куда "пошла программа" и т.д.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this