
ARM7 с нуля
Re: ARM7 с нуля
Вот кстати проект- может кто то проверит. А можно ли подать на индикатор 5 в и подключить к мк или выходы индикатора могут сжечь порты ?
- Вложения
-
- LCD.rar
- (87.22 КБ) 171 скачивание
Re: ARM7 с нуля
они сами могут погореть от нагрузки...
1) ставьте буфферы тристабильные, например, 74HCT125.
2) Линии PIO 3,3В в AT91SAM7 питаются от линии питания VCCIO - и толерантны к напряжению 5...5,5В.
Но это для AT91SAM7 - на ваш микроконтроллер лучше все-таки посмотреть даташит.
1) ставьте буфферы тристабильные, например, 74HCT125.
2) Линии PIO 3,3В в AT91SAM7 питаются от линии питания VCCIO - и толерантны к напряжению 5...5,5В.
Но это для AT91SAM7 - на ваш микроконтроллер лучше все-таки посмотреть даташит.
Не умеешь - не берись, но не взявшись не научишься...
Re: ARM7 с нуля
romazan писал(а):Через буфер 74lvc245
Извиняюсь, но что-то кто в лес, кто по дрова...
Подключить надо 5в индикатор к 3.3в контролеру. BC1602, наверное 2 строки на 16 символов, стандартный, наверняка чип на нём по КПОМ (CMOS) технологии сделан. Если делать только запись с контролера на индикатор, т.е. все сигналы всегда направлены от контролера к индикатору, то посмотрите в спецификации индикатора уровень логической "1" на его входах, если не выше 3в, то можно подключать на прямую к сигнальным линиям с амплитудой 3.3в.
Если вам обязательно читать статус индикатора или содержимое его памяти, то нужен двунаправленный буфер на шину данных. Можно взять что-то типа 74LVC241, для 4-битного режима хватит одной микрухи. Запитать от 3.3в, к индикатору можно подключать на прямую. Даже 74HC241 пойдёт, только поставить резисторы по 1к между индикатором и буфером. Ну, и, в конце концов, можно применить буферы с двойным питанием и трансляцией уровней типа 74LVC2T45 или 74LVC8T245.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: ARM7 с нуля
Stalker46 писал(а):1) ставьте буфферы тристабильные, например, 74HCT125.
74HCT при 3.3в работать не будет - смотрите спецификацию, а если и будет, то с характеристиками далёкими от заявленных.
74HC - будет, и обычно имеет рабочее напряжение 2-6 вольт.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: ARM7 с нуля
В даташите написано- 5 V tolerant pad providing digital I/O functions with TTL levels and hysteresis.
Значит можно не боясь подавать на индикатор 5 в и подключить к мк ?
Работать будет только на запись.Хотя какая разница если толерантен.
Значит можно не боясь подавать на индикатор 5 в и подключить к мк ?
Работать будет только на запись.Хотя какая разница если толерантен.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: ARM7 с нуля
Надо ещё смотреть, чтобы МК выдал достаточно высокий уровень 1 для индикатора: вдруг не будет дотягивать? Или медленно будет из-за паразитных ёмкостей.
Re: ARM7 с нуля
Ну насчет этого не должно быть проблем- INPUT min-2,2v написано в даташите на дисплей, мне главное не сжечь порты мк.
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: ARM7 с нуля
... если еще актуально...ARM7 писал(а):Хм, и на железе не проверить, и в Протеусе- на все LPC-ы Протеус ругается- ......
ЗЫ. первая проба с ARM, так что "не пинать"
- Вложения
-
- LPC.rar
- (96.41 КБ) 150 скачиваний
Re: ARM7 с нуля
-еще долго актуально будет наверно, не могу победить этот жк индикатор-и инициализацию по разному пробовал,кстати расчеты выше PLL ни вп...- с такими вообще ножки не дрыгаются-работает с такими,какие компилятор первоначально ставит- 12 и 1,и в протеусе тупит-на ножках вместо единиц-должны красные квадратики быть- на некоторых желтые,т.е. это не выс.уровень,типа индикатор сажает чтоли,если индикатор отключаешь-красные...... если еще актуально...
Re: ARM7 с нуля
На работе цифровым осциллом посмотрю задержки и частоту,тогда ясно будет..
Re: ARM7 с нуля
Тоесть с такими чтоли ? -)))
Satyr писал(а):на pll Mul = 11 (+1), Div 0 (+1)
на clk делитель 4
Re: ARM7 с нуля
Ага,с такими. Блин-нашел косяк-я же соединял через переходную плату с клеммами,там на печатке пронумеровал, начал по отдельности дергать за ножки- 3 не совпадают,смещение на 1,ошибочка т.е., ну щас посмотрим 
Re: ARM7 с нуля
Может ли кто нибудь мне сказать-какие значения ставить ,чтобы ядро работало на 72 мгц, на указанных стрелками пунктах? Кварц-12 мгц.

Вот с такими значениями и с таким кодом-
на осцилле следующее-тут близко к 72 мгц не пахнет, 1,66 мкс, 285 кГц


Вот с такими значениями и с таким кодом-
Код: Выделить всё
#include <LPC23xx.H>
void delay(int count)
{
int j=0,i=0;
for(j=0;j<count;j++)
{
for(i=0;i<1;i++);
}
}
int main(void)
{
IODIR0= (1<<7);
while(1){
IOSET0= (1<<7);
delay(1);
IOCLR0= (1<<7);
delay(1);
}
}на осцилле следующее-тут близко к 72 мгц не пахнет, 1,66 мкс, 285 кГц

Re: ARM7 с нуля
если cclksel = 6 допустим, а мне казалось там 1, 2,4, 8 и т.п., то у тебя сейчас получается 48Мгц
ставь как я тебе пписал на 2 или 3 странице - 12/1/4 - будет 72Мгц
а осцилографом ты чего меряешь ? Если это
while(1){
IOSET0= (1<<7);
delay(1);
IOCLR0= (1<<7);
delay(1);
}
то там никаких 48 (72) мгц и близко быть не должно. Обращение по IO, а не FIO тредует чтото типа десятка тактов, да еще задержки между ними.
ставь как я тебе пписал на 2 или 3 странице - 12/1/4 - будет 72Мгц
а осцилографом ты чего меряешь ? Если это
while(1){
IOSET0= (1<<7);
delay(1);
IOCLR0= (1<<7);
delay(1);
}
то там никаких 48 (72) мгц и близко быть не должно. Обращение по IO, а не FIO тредует чтото типа десятка тактов, да еще задержки между ними.
Re: ARM7 с нуля
Да, на 12/1/4 у меня получилось самая минимально возможная длительность- ~1 мкс. Ну ладно-значит 72 мгц. Кстати FIO на нулевом порте не работает, пробовал этот код с FIO на 2 порту- незначительная разница,почти одинаково. А без delay ровно в 2 раза меньше просто. Ну ладно с осциллом хоть узнал какая задержка,ато так нихрена не расчитаешь оказывается..
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: ARM7 с нуля
.. хотя быстро "дрыгать пинами" не основная задача ARM, но 1 мкс явно не пределARM7 писал(а):у меня получилось самая минимально возможная длительность- ~1 мкс. Ну ладно-значит 72 мгц.
как видно загрузка константы занимает 2 инструкции, а дерганье тем-же выводом - всего одну! Инструкция перехода конечно сбросит конвейер, но видно цикл переключения занимает не так много...
- Вложения
-
- lpc2101.PNG
- (5.5 КБ) 692 скачивания
Re: ARM7 с нуля
Все таки напрашивается вопрос-если ногами дрыгать быстро не может,то что же он там делает этот проц на 72 мгц(это же радиоволна почти-УКВ диапазон!),к примеру- а если таймер настроить на шим и с выхода взять сигнал- сможет дать мегагерцы?
Т.е. где видно его быстродействие на 72 мгц?
Т.е. где видно его быстродействие на 72 мгц?
Re: ARM7 с нуля
Подскажите,как присвоить к какому нибудь пину значение переменной, типа пин(1<<10)=x;
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: ARM7 с нуля
.. ну почему-же не может? получить программный меандр на частоте 4..6 МГц думаю вполне реально, только зачем....ARM7 писал(а):Все таки напрашивается вопрос-если ногами дрыгать быстро не может,то что же он там делает этот проц на 72 мгц
номер пина - просто число ( и для переключения состояния пина это число выводится либо в IOCLR, либо в IOSET порты)ARM7 писал(а):как присвоить к какому нибудь пину значение переменной