Страница 8 из 9
Re: AT91SAM7 старт с коленки
Добавлено: Ср сен 14, 2011 10:54:27
romazan
Да розабрался, проверял не тот влаг, поэтому и глюки были. Флаг ENDRX и ENDTX
Re: AT91SAM7 старт с коленки
Добавлено: Ср сен 14, 2011 11:33:29
SII
Кстати, насчёт SPI на Атмеловских АРМах. Почитайте Еррату -- там довольно много ошибок, в том числе весьма неприятных. Возможно, проблемы возникают именно из-за этого.
Re: AT91SAM7 старт с коленки
Добавлено: Пн окт 03, 2011 20:53:41
inkHunter
Как запустить RTT без прерывания ?
делаю типа так но ниче (
int main (void)
{
AT91PS_PMC pPMC = AT91C_BASE_PMC;
pPMC->PMC_PCER =(1<<AT91C_ID_SYS);
*AT91C_RTTC_RTMR = 0x00008000 | AT91C_RTTC_RTTRST;
while (1)
{}
}
смотрю в дебаге на RTT_VR а он все время 0x00000000 ((((
Re: AT91SAM7 старт с коленки
Добавлено: Вт окт 04, 2011 14:05:40
romazan
DEBUGер не все показывает в нормальном устройстве работать будет
Re: AT91SAM7 старт с коленки
Добавлено: Вс окт 09, 2011 13:15:44
inkHunter
romazan писал(а):DEBUGер не все показывает в нормальном устройстве работать будет
спасиб все работает
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 13, 2011 01:12:11
inkHunter
зацикливается функия main в keil (((
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
return 0;
}
смотрю и на дебаге и в терминале
а получаеться типа так :
int main (void)
{
*AT91C_PMC_PCER=(1 << AT91C_ID_PIOA)|(1 << AT91C_ID_US0)|(1 << AT91C_ID_US1)|(1<<AT91C_ID_SYS);
while (1)
{
printf ("%i\n\r",i);
i++;
if (i==10)
{i=0;}
}
return 0;
}
с мейна не выходет ((( ???
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 13, 2011 16:00:54
romazan
А он с мейна и не выйдет

Заново программа начнёт работу. Процессор работает все время и не может ничего не делать
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 12:21:51
inkHunter
Кто работал с USB CDC AT91SAM7 ?
Передать получаеться а вот прийнять нет ((((
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 12:32:44
SII
Поспрашивайте на
http://electronix.ru/forum, там намного больше народу, работающего с АРМами...
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 12:47:20
Satyr
Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 16:40:12
inkHunter
Satyr писал(а):Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
угу, это типа STM32 ?
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 22:28:15
Satyr
Victor Gordienko писал(а):Satyr писал(а):Ухх.. все SAM7 осваиваете ?
Есть вещи посвежее, поприятнее, поинтереснее. а то и дешевле.
угу, это типа STM32 ?
Да, типа STM32Fxxx и LPC1xxxx.
Порой еще LM3Sxxxx интересны -))
Re: AT91SAM7 старт с коленки
Добавлено: Чт окт 27, 2011 23:08:58
SII
Однако, если в будущем интерес представляют Cortex-A, то лучше изучать SAM7, ведь все перечисленные относятся к Cortex-M и не имеют родной системы команд АРМ вообще, а заодно кардинально отличаются системной архитектурой (режимы процессора, обработка прерываний и т.п.).
Re: AT91SAM7 старт с коленки
Добавлено: Чт ноя 03, 2011 21:59:16
Arlleex
SII - Доброго времени. Хотелось бы узнать, где вы эту ерату нашли, насчет атмеловских ARM-ов.
У меня щас какой-то баг - SPI вообще не работает - даже не инициализируется, поэтому решил узнать.
Заранее спасибо!
Код: Выделить всё
#include "AT91SAM7X256.h"
#include <usart/usart.h>
#include <spi/spi.h>
#include <sd/sd.h>
//******************************************************************************************************
// Начало программы
int main(void) {
unsigned short response;
int a;
//******************************************************************************************************
// Конфигурирование синхронизации МК
volatile AT91PS_CKGR pCKGR = AT91C_BASE_CKGR;
volatile AT91PS_PMC pPMC = AT91C_BASE_PMC;
pCKGR->CKGR_MOR = 0x00000701; // Включение основного генератора
while((pPMC->PMC_SR & (0x1<<0))==0); // Ожидание установки бита MOSCS
pCKGR->CKGR_PLLR = 0x00013F02;
while((pPMC->PMC_SR & (0x1<<2))==0);
pPMC->PMC_MCKR = 0x00000003; // Выбор источника синхронизации и установка предделителя
while((pPMC->PMC_SR & (0x1<<3))==0); // Ожидание установки бита MCKRDY
//******************************************************************************************************
// Разрешение синхронизации периферийных устройств
//******************************************************************************************************
// Конфигурирование PIO
volatile AT91PS_PIO pPIO = AT91C_BASE_PIOA;
pPIO->PIO_PPUDR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18) | (1<<4); // Сброс pull-up резисторов
pPIO->PIO_PDR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18); // Отключение линий PIOA
pPIO->PIO_ASR = (1<<0) | (1<<1) | (1<<13) | (1<<16) | (1<<17) | (1<<18); // Переферийная функция A
pPIO->PIO_PER = (1<<4);
pPIO->PIO_OER = (1<<4);
//******************************************************************************************************
pPMC->PMC_PCER = 0x54; // Разрешение синхронизации PIOA, USART0, SPI0
// Конфигурирование периферийных устройств
// USART0
AT91S_USART *usart = AT91C_BASE_US0; // USART0
USART_Configure(usart, USART_MODE_ASYNCHRONOUS, 38400, 18432000); // Конфигурирование USART0
USART_SetTransmitterEnabled(usart, 1); // Включение передатчика USART0
// SPI0
AT91S_SPI *spi = AT91C_BASE_SPI0; // SPI0
SPI_ConfigureNPCS(spi, 2, 0x00FF2F0A); // Настройка SPI
SPI_Configure(spi, 0x00010011); // Конфигурирование SPI0
//******************************************************************************************************
SPI_Enable(spi); // Включение SPI
//************************************Выдача команды CMD0***********************************************
SPI_Write(spi, 0x40); // Запись первого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись второго байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись третьего байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись четвертого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x00); // Запись пятого байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
SPI_Write(spi, 0x95); // Запись шестого(последнего) байта команды CMD0
response=SPI_Read(spi); // В ответе 0xFF
while(response==255)
{
SPI_Write(spi, 0xFF); // Сдвиг "1" на линию данных
response=SPI_Read(spi); // Чтение данных
}
SPI_Disable(spi); // Отключение SPI
if (response==0x00)
{
while(1)
{
pPIO->PIO_SODR = (1<<4);
for(a=0; a<8000000; ++a)
{
;
}
pPIO->PIO_CODR = (1<<4);
for(a=0; a<8000000; ++a)
{
;
}
}
}
else if (response==0x01)
{
pPIO->PIO_SODR = (1<<4);
}
else
{
pPIO->PIO_CODR = (1<<4);
}
//******************************************************************************************************
while(1); // циклимся
}
Собственно ткнул осциллографом по ножкам микроконтроллера (MOSI, MISO, SPCK and NPCS1 (у меня)) - нифига - везде молчание...
Re: AT91SAM7 старт с коленки
Добавлено: Чт ноя 03, 2011 22:53:17
SII
АТМЕЛ помещает Ерраты в конце даташитов на свои МК. У других производителей Еррата -- отдельный документ.
Re: AT91SAM7 старт с коленки
Добавлено: Ср ноя 23, 2011 10:23:52
ELcat
Вопрос ко всем: какие камушки на ядре Cortex M3 вы уважаете больше всего Atmel, STM, NXP, Freescale и почему? Какие проще в освоении и работе? Количество примеров? Характеристики и периферийные "навороты"?
Re: AT91SAM7 старт с коленки
Добавлено: Ср ноя 23, 2011 10:41:09
Satyr
ELcat писал(а):Вопрос ко всем: какие камушки на ядре Cortex M3 вы уважаете больше всего Atmel, STM, NXP, Freescale и почему? Какие проще в освоении и работе? Количество примеров? Характеристики и периферийные "навороты"?
Забудь про атмел.
Именно STM, NXP, Freescale и есть самые интересные.
У кого что интересней, зависит от применения.
Самые дешевые с USB - NXP. У них же самые навороченные по переферии.
У ST очень привлекательное все и чуть чуть подешевле, но некоторых вариантов как у NXP прост нет.
У фрискейла уже поставляются и готовятся к поставки сверхвыгодные чтуки на M4.
Re: AT91SAM7 старт с коленки
Добавлено: Ср ноя 23, 2011 10:41:43
Satyr
Документации, примеров достаточно на всё.
Re: AT91SAM7 старт с коленки
Добавлено: Чт ноя 24, 2011 21:54:35
Reloader
Уважаемые Коты, не ругайтесь шибко, если не в тему, но!
Сам мощными контроллерами пока не занимался, но попалась мне на глаза сия весч :
http://starterkit.ru/html/index.php?nam ... view&id=53
покорило - LINUX на борту. полноценный, блин...
Поймите правильно - не лучше ли будет начать отталкиваться от такой платы?
Судя по всему мощностей там достаточно, все, что нужно - на борту....
Re: AT91SAM7 старт с коленки
Добавлено: Чт ноя 24, 2011 22:46:35
Satyr
Мм... начать отталкиваться в каком направлении ?
И зачем такой промежуточный вариант, почему не NanoITX на атоме ? -))