CVAVR + SPI + hc 4094 (Решено!)
CVAVR + SPI + hc 4094 (Решено!)
Здравствуйте.
Проблемма выбора регистра (CS), или передачи 24 бита.
Пример.
PORTB=0x00;
DDRB=0xB0;
.......
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 921,600 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: High
// SPI Data Order: MSB First
SPCR=0x5C;
SPSR=0x00;
//***************
DDRB.1=1; //Тут сидит ОЕ
PORTB.1=1;
spi(0x07); //Вывести на 7-ми сегментник цифру 7 НО --->
PORTB.1=0;
------
Выводится 7-ка сразу на 3-и индикатора.
Включение сдвиговых каскадное...
CS сидит на PD.4 (к примеру)
Вопрос. Как организовать выбор CS (нужного 4094), или как передать 24 бита...
Прошу пинать. Спасибо!
Проблемма выбора регистра (CS), или передачи 24 бита.
Пример.
PORTB=0x00;
DDRB=0xB0;
.......
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 921,600 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: High
// SPI Data Order: MSB First
SPCR=0x5C;
SPSR=0x00;
//***************
DDRB.1=1; //Тут сидит ОЕ
PORTB.1=1;
spi(0x07); //Вывести на 7-ми сегментник цифру 7 НО --->
PORTB.1=0;
------
Выводится 7-ка сразу на 3-и индикатора.
Включение сдвиговых каскадное...
CS сидит на PD.4 (к примеру)
Вопрос. Как организовать выбор CS (нужного 4094), или как передать 24 бита...
Прошу пинать. Спасибо!
Последний раз редактировалось krysun Сб ноя 13, 2010 23:34:05, всего редактировалось 1 раз.
Это лыжи не едут!!!
Re: CVAVR + SPI + hc 4094
И еще:
К устройству подключены 3 табло (2 - по 3 цифры и 1 - 11 сегментов (2-а сдвиговых)).
Так же уместен вопрос о "передаче двухбайтового значения".
ЗЫ: Где-то кто-то выкладывал функцию для передачи 16 бит... Посеял ссылку... ((
Спасибо.
К устройству подключены 3 табло (2 - по 3 цифры и 1 - 11 сегментов (2-а сдвиговых)).
Так же уместен вопрос о "передаче двухбайтового значения".
ЗЫ: Где-то кто-то выкладывал функцию для передачи 16 бит... Посеял ссылку... ((
Спасибо.
Это лыжи не едут!!!
Re: CVAVR + SPI + hc 4094
Вопрос все еще открыт. Есть каие-нить функции для вывода 16/24 бит?
Это лыжи не едут!!!
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: CVAVR + SPI + hc 4094
ну а в чем разница ?
char arr[3];
spi(arr[0]);
spi(arr[1]);
spi(arr[2]);
char arr[3];
spi(arr[0]);
spi(arr[1]);
spi(arr[2]);
Re: CVAVR + SPI + hc 4094
Спасибо. Попробую.
---
Попробовал, результата 0.
ЗЫ: Дата Клоки поштучно толкаю без проблем... Но они на СПИ подвешены (регистры), хочеться так и использовать.
ЗЫЫ: Сигнал к регистрам идет через буфера НС244, ДДРБ.1 вешаю на 1
Только так и выводит... Но все равно на всех 3-х индикаторах одинаковые цифры
ЗЫЫЫ: Масиву разные значения дать не забыл
---
Попробовал, результата 0.
ЗЫ: Дата Клоки поштучно толкаю без проблем... Но они на СПИ подвешены (регистры), хочеться так и использовать.
ЗЫЫ: Сигнал к регистрам идет через буфера НС244, ДДРБ.1 вешаю на 1
Код: Выделить всё
DDRB.1=1;
PORTB.1=1;
spi(arr[0]);
spi(arr[1]);
spi(arr[2]);
PORTB.1=0;Только так и выводит... Но все равно на всех 3-х индикаторах одинаковые цифры
ЗЫЫЫ: Масиву разные значения дать не забыл
Это лыжи не едут!!!
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: CVAVR + SPI + hc 4094
да ну. дичь какая то.
Вот проект в проте, все меняется.
Вот проект в проте, все меняется.
- Вложения
-
- serg_pwm.zip
- (58.29 КБ) 290 скачиваний
Re: CVAVR + SPI + hc 4094
Мой Прот 7.4 SP3 не открывает (на версию матерится)... Ща сам набросаю... Посмотрю.
А, да... Чип Мега 162, Клок=3,6864 ничего не кажет по приведенному примеру (
А, да... Чип Мега 162, Клок=3,6864 ничего не кажет по приведенному примеру (
Это лыжи не едут!!!
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: CVAVR + SPI + hc 4094
сохранил в ранней версии - для меги 162 все то же.
- Вложения
-
- serg_pwm162.zip
- (78.25 КБ) 220 скачиваний
Re: CVAVR + SPI + hc 4094
А схему картинкой можно?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: CVAVR + SPI + hc 4094
krysun писал(а):Вопрос. Как организовать выбор CS (нужного 4094), или как передать 24 бита...
Если я правильно понял, то вопрос в том как делать вывод на несколько групп индикаторов разной разрядности (в смысле разного количества 7-ми сегментных индикаторов), и при этом посадить вывод на SPI.
...пусть каждая группа индикаторов будет сделана как на рисунке выложенном urry. Данные включены в каскад. Стробы микросхем внутри группы соединены вместе. Нужно стробы каждой группы управлялись отдельно, т.е. подключить их на отдельные выводы контроллера. Цепляем SCK и MOSI на все группы параллельно.
Выбор CS тут, как бы, ненужен.
Например, пусть будет 2 группы индикаторов. Группа 1 имеет 2 разряда, а группа 2 имеет 4 разряда.
Да, ещё, пусть, 7-ми сегментники подключены без дешифраторов, т.е. по SPI надо выводить код, который будет соответствовать начертанию цифр или символов (!!!). И пусть сегмент на индикаторе будет гореть при 1 в соответствующем бите.
Тогда для очистки всех групп надо по SPI закачать количество нулевых байт равное максимальной разрядности имеющихся групп, т.е. 4 в нашем примере. А затем "дёрнуть" строб каждой группы.
При выводе на 1-ю группу индикаторов, записываем в SPI два байта (с кодами индикации) и дёргаем строб первой группы. Индикация на второй группе не измениться.
При выводе на вторую группу надо выводить 4 байта и дёргать строб второй группы.
PS: Делал как-то на 74hc595 индикатор на 4 разряда по SPI. Если интересно - поищу схемку.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Re: CVAVR + SPI + hc 4094
Получается, у меня 3 табло (по 3 регистра) и линейка (2 регистра) на 2-х табло и линейки MOSI и SCK соединены между собой (короче, все на 10pin шлейфе... OE и СТРОБ раздельно подключены.... Срисую схему и выложу.... Пока вот фотка стенда и ближе индикатора... + пример разводки самого индикатора и буфера на мамке... Спс.
- Вложения
-
- tvister.zip
- (13.19 КБ) 199 скачиваний
-
- IMG_0109.jpg
- (147.89 КБ) 642 скачивания
-
- IMG_0102.jpg
- (130.93 КБ) 587 скачиваний
-
- tvister.jpg
- (92.32 КБ) 632 скачивания
Это лыжи не едут!!!
Re: CVAVR + SPI + hc 4094
В общем... Что-то так и не выходит... Обидно, досадно, но ладно...
Это лыжи не едут!!!
Re: CVAVR + SPI + hc 4094
Заголовок: CVAVR + SPI + hc 4094
Проблема решилась. Ваши примеры и советы работают 100%. Это у меня лыжи не едут.
В mega162 в FUSE-ах было выставлено M161C=0 (режим совместимости с mega161 МК).
При вызове SPI("что-то") несколько раз, зацикливался только 1-й вызов.
Потому и выводились на все индикаторы одинаковые цыфры.
Как FUSE снял, так сразу все и заработало.
Возьмите на заметку.
Спасибо большое за помощь!
Проблема решилась. Ваши примеры и советы работают 100%. Это у меня лыжи не едут.
В mega162 в FUSE-ах было выставлено M161C=0 (режим совместимости с mega161 МК).
При вызове SPI("что-то") несколько раз, зацикливался только 1-й вызов.
Потому и выводились на все индикаторы одинаковые цыфры.
Как FUSE снял, так сразу все и заработало.
Возьмите на заметку.
Спасибо большое за помощь!

Это лыжи не едут!!!
Re: CVAVR + SPI + hc 4094 (Решено!)
Благадарю за имходник он оказался именно самым простым про SPI то как послать данные