|
Прыжок с AVR на ARM7 |
|
|
|
Feb 4 2009, 18:02
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Господа! По опыту освоения чего-то нового знаю, стоит показать, что ты чайник и спросить - "А как мне начать" - появятся профи (действительно профи, но с самомнением) и начнется - вот тебе ссылка 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 страничным мануалам, они у меня уже есть.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 4 2009, 20:38
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 4 2009, 21:02)  Господа, хочу то же самое, только для какого-нибудь AT91SAM7xxx. Сейчас в меня кинут тухлым помидором, наверное, но... Ссылка не на google.ruПо ссылке Вы найдете: - 2 Quickstart Guide'а, для IAR и GCC - Инструкцию на кит со схемой оного, из которой можно аккуратно перерисовать цепи тактирования, питания, USB, UART etc. - Программатор AT91-ISP - 37Mb дурнейших атмеловских примеров, вполне, впрочем, пригодных для старта
|
|
|
|
|
Feb 4 2009, 21:55
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(Зверюга @ Feb 4 2009, 13:02)  Господа! ... токо что прошел етот путь. Линукс - тулчейн от CodeSorcery, openocd скачал и построил из svn, использую олимексовский jtag wiggler и их же плату на LPC2148. Скомпилил пример оттуда же - с олимекса (линк) - "blinky". Что пришлось править - config file для openocd. Они только что команды поменяли. И мейкфайл - прописал тулзы из тулчейна. Что еще.. А - заливать во флаш можно через тот же openocd, через flash write_image erase main.hex например - main.hex - имя файла для заливки. ну у меня правда не атмел. пока только не смог брейкпойнты поставить на флаш из gdb - говорит - ок, а брейкпойнтов нет. еще не разобрался.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Feb 5 2009, 05:51
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
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. Что посоветуете, спаять что-нибудь простое, или купить готовый полноценный девайс? остальные вопросы задам попозже, надо бежать...
|
|
|
|
|
Feb 5 2009, 07:51
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 15-06-05
Из: Минск
Пользователь №: 6 028

|
скажу поподробнее про SAMBA - ибо сам тоже разбирался когда-то сам SAMBA - это встроенный загрузчик (почти как в AVR  ) - что-бы залить "прошивку" надо просто подключить проц SAMxxx к компу через USB шнурок (до этого должна быть установлена прога с сайта одноименная и "активирован" загрузчик в кристалле) и всё . После прошивки загрузчик более не работает (для восстановления активности надо провести манипуляции с перемычкой на платке с процом - очень не удобно  ) Посему лучше юзать Jtag отладчик\программер - для чего надо предусмотреть подключение к процу. Крайне не рекомендовал юзать Wiggler - мало того что будут возникать вопросы по освоению проца , дык плюс к этотому постоянные глюки с этим "отладчиком" Рекомендую или сделать самому(прост до безобразия) или купить (около 50$у нас) MT-Link. прикрепляю оба -Вам выбирать А вооще у меня порядка 1G подборка док и исходников по ARM Я брал для примера распайку для макетки сам MT-Link. Всё фурычит только в путь... Удачи нам всем в таких начинаниях в такое неспокойное время
Прикрепленные файлы
pack.zip ( 229.52 килобайт )
Кол-во скачиваний: 272
|
|
|
|
|
Feb 5 2009, 09:40
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
А вот нашел 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?
|
|
|
|
|
Feb 5 2009, 10:30
|
Местный
  
Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139

|
Цитата(Зверюга @ Feb 5 2009, 12:59)  Хорошо, собрал я предложенную Вами 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 работал, у них по другому прошивается память. Кстати, МТ-ЛИНК - очень удобная вещь, особенно для начинающих - это отладчик, с его помощью можно по шагам выполнить программу непосредственно в МК, при этом имея доступ к значениям переменных, видя куда "пошла программа" и т.д.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|