Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

SAM4 - Настройка портов и SMC

Непрочитано 30.05.2014, 20:55  
JerryI
Временная регистрация
 
Регистрация: 05.05.2013
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JerryI на пути к лучшему
Восклицание SAM4 - Настройка портов и SMC

Добрый день.
Имеется контроллер ATSAM4C08(ARM Cortex M4) в минимальной обвязке. С Blink-ами разобрался, хочу задействовать SMC(Static Memory Controller) контроллер внешней шины (EBI).
Мучаюсь с документацией уже третий день - ничего не работает. Я взял один пин шины данных D0 и посылаю на адрес внешней памяти числа, а на порту ничего нет.
Код:
#include "sam.h"
/**
 * \brief Application entry point.
 *
 * \return Unused (ANSI-C compatibility).
 */
uint8_t* ebi = (uint8_t*)0x03000000; //Адрес внешнего устройства CS0

#define SMC ((Smc *)0x400E0000U) //Баг AtmelStudio. SMC есть в подсказках, но не объявлен. 

int main(void)
{
    /* Initialize the SAM system */
    SystemInit();
	
	PMC-›PMC_WPMR = 0x504D43; //Ключ для PMC контроллера
	
	PMC-›CKGR_MOR = CKGR_MOR_MOSCXTEN; //Внешний кварц
	PMC-›CKGR_PLLAR = CKGR_PLLAR_MULA(254) | CKGR_PLLAR_PLLAEN(1); //PLLA умножаем частоту на 254. (частота берется с кварца)
	PMC-›CKGR_PLLBR = CKGR_PLLBR_MULB(28) | CKGR_PLLBR_DIVB(1) | CKGR_PLLBR_SRCB_PLLA_IN_PLLB; //PLLB умножаем частоту на 28. (частоту берем с PLLa)
	PMC-›PMC_MCKR = PMC_PCK_CSS_PLLB_CLK | PMC_PCK_PRES_CLK_1; //Master clock = PLLB
	
	PMC-›PMC_PCER0 = PMC_PCER0_PID10; //Подаем питание на SMC контроллер
	
	PIOB-›PIO_WPMR = 0x50494F; //Ключ для контроллера I/O
	PIOB-›PIO_OER = PIO_OER_P6; //6 пин - выход. (DATAPIN0 для SMC)
	PIOB-›PIO_ABCDSR[0] &= (~PIO_ABCDSR_P6 & PIOB-›PIO_ABCDSR[0]); //Мультиплексирование пина на "C" функцию...
	PIOB-›PIO_ABCDSR[1] = (PIO_ABCDSR_P6 | PIOB-›PIO_ABCDSR[1]); //...(не знаю как описать. Есть четыре положения пина A, B, C, D. SMC контроллер занимает C.)
	
	SMC-›SMC_WPMR = 0x534D43; //Ключ для SMC
	SMC-›SMC_CS_NUMBER[0].SMC_MODE = SMC_MODE_DBW_8_BIT | SMC_MODE_EXNW_MODE_DISABLED; //Настройки
	SMC-›SMC_CS_NUMBER[0].SMC_CYCLE = SMC_CYCLE_NRD_CYCLE(1) | SMC_CYCLE_NWE_CYCLE(1);
	SMC-›SMC_CS_NUMBER[0].SMC_PULSE = SMC_PULSE_NCS_RD_PULSE(0) | SMC_PULSE_NCS_WR_PULSE(0) | SMC_PULSE_NRD_PULSE(1) | SMC_PULSE_NWE_PULSE(1);
	SMC-›SMC_CS_NUMBER[0].SMC_SETUP = SMC_SETUP_NCS_RD_SETUP(0) | SMC_SETUP_NCS_WR_SETUP(0) | SMC_SETUP_NRD_SETUP(1) | SMC_SETUP_NWE_SETUP(1);
	

	
	
    while (1) 
    {
		  ebi[0] = 255; //Пишем в ячейку 0 - 255. По идее, вся шина данных должна быть в лог.единицах.
    }
}
SMC запустил, порт настроил, шлю адрес на "EBI Device CS0", а результат никакой. Если кто-нибудь работал с подобным, подскажите: в чем дело, куда копать?
Заранее спасибо.
PS: Пишу в Atmel Studio.
Реклама:
JerryI вне форума  
Непрочитано 30.05.2014, 21:25  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

чисто из любопытства глянул - а cmsis для атмела не существует? или я не догоняю
еще вопрос (как всегда) - а где вы разрешаете запись наружу?
Hives вне форума  
Непрочитано 30.05.2014, 22:18  
JerryI
Временная регистрация
 
Регистрация: 05.05.2013
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JerryI на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

Сообщение от Hives Посмотреть сообщение
чисто из любопытства глянул - а cmsis для атмела не существует? или я не догоняю
еще вопрос (как всегда) - а где вы разрешаете запись наружу?
Простите за мои скудные познания, а CMSIS это что? В Atmel объявлена куча define-ов и структур для удобной работы (которые есть в коде), это оно?
Насчет записи, единственное, где ее можно включить (для SMC контроллера):
Код:
SMC-›SMC_CS_NUMBER[0].SMC_MODE = SMC_MODE_WRITE_MODE;
Но она должна быть включена по-дэфолту. Все же пробовал с ней и без нее - та же проблема.

Последний раз редактировалось JerryI; 30.05.2014 в 22:18. Причина: SMC
JerryI вне форума  
Непрочитано 31.05.2014, 09:31  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

Сообщение от JerryI Посмотреть сообщение
а CMSIS это что?
Cortex Microcontroller Software Interface Standard

http://www.arm.com/products/processo...e-standard.php
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 31.05.2014, 10:14  
JerryI
Временная регистрация
 
Регистрация: 05.05.2013
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JerryI на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

Сообщение от dosikus Посмотреть сообщение
CMSIS
Да, эта штука уже прикручена к Atmel Studio, но как работать с SMC контроллером (в примерах) там информации по-прежнему нет.
JerryI вне форума  
Непрочитано 31.05.2014, 10:36  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

JerryI, Естесно , для этого есть либы с примерами от вендора .
CMSIS это в основном ядро и хэдеры с описанием регистров периферии от вендора.
На сайте ATMEL я вижу только SAM4S Software Package .
Оно ли это - ХЗ .
Если стоит Keil, то все просто - в Pack Installer качаешь пак SAM4_DFP .
Там будет все что нужно, и доки и либы...

Вай , наврал . Там нет либ .
Ищи на сайте ATMEL , только сдается мне там все еще сырое и кривое .

В чем смысл юзать кривые ARM'ы от AVR ????
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 31.05.2014 в 10:43.
dosikus вне форума  
Непрочитано 31.05.2014, 11:15  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

ARM'ы от AVR
даже звучит неприлично
Hives вне форума  
Сказали "Спасибо" Hives
dosikus (31.05.2014)
Непрочитано 31.05.2014, 11:29  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

Сообщение от JerryI Посмотреть сообщение
но как работать с SMC контроллером (в примерах) там информации по-прежнему нет.
Зато есть в том же даташите,
параграф 27. Static Memory Controller (SMC)
Со схемами и таймингами ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 31.05.2014, 11:53  
JerryI
Временная регистрация
 
Регистрация: 05.05.2013
Сообщений: 75
Сказал спасибо: 20
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
JerryI на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

Сообщение от dosikus Посмотреть сообщение
Зато есть в том же даташите,
параграф 27. Static Memory Controller (SMC)
Со схемами и таймингами ...
Это я уже смотрел. Там много условностей: мол, эта штука работает, если другая штука включена, а другая штука будет работать только когда третья штука переведена в режим первой штуки, но вообще ничего не будет работать если четвертая штука работает, а вторая не работает...
Хотелось бы полноценный пример использования или просто кусок кода. Причем таковые примеры имеются, но только для самого ядра, а не периферии.
Что ж, буду разбираться.
JerryI вне форума  
Непрочитано 31.05.2014, 12:27  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: SAM4 - Настройка портов и SMC.

банальный совет - в гугле поиском по слову "SMC_MODE_WRITE_MODE" (и подобным) вываливается ооочень много исходников с "кусками кода", бери и копипасть.
Hives вне форума  
Сказали "Спасибо" Hives
JerryI (31.05.2014)
 

Метки
arm, fsmc, pio, smc
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уходит настройка ТВ Samsung CK 5051M damirus Видеотехника 7 31.08.2013 20:17
Один компьютер - много СОМ портов dimonbest Микроконтроллеры, АЦП, память и т.д 11 24.03.2008 12:54


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.